Microsoft tillhandahöll flera Active Directory PowerShell-cmdlets med Windows Server 2008 R2 (och nyare) vilket kraftigt förenkla uppgifter som tidigare krävde att sätta ihop långa kodrader som involverar ADSI.
På en Windows-klient installerar du Remote Sever Administration Tools (RSAT) och ser till att Active Directory PowerShell-modulen är installerad.
På en Windows-server (2008 R2 eller senare) kör du följande kommandon i en PowerShell-konsol (som administratör):
Import-Module ServerManager; Add-WindowsFeature RSAT-AD-PowerShell
Här är mitt (dåliga) ADSI-exempel:
Här är samma sak med AD PowerShell-cmdlet:
Importmodul ActiveDirectory
$ UserID = ”JoeUser”
Get-ADUser $ UserID –property *
Observera att med PowerShell version 3 och senare behöver du inte köra den första raden eftersom Powershell kommer att identifiera den nödvändiga modulen och ladda den automatiskt.
När du har laddat Active Directory PowerShell-modulen kan du göra coola saker som att bläddra i AD som ett filsystem
Hitta användbara kommandon (Cmdlets):
Upptäck tillgängliga PowerShell-moduler: Get-Module -ListAvailable
Upptäck cmdlets i en PowerShell modul: Get-Command -modul ActiveDirectory
PowerShell AD-modul Cmdlets:
- Windows Server 2008 R2: 76 cmdlets
- Windows Server 2012: 135 cmdlets
- Windows Server 2012 R2: 147 cmdlets
- Windows Server 2016: 147 cmdlets
(Get-Command -module ActiveDirectory).count
Hitta Active Directory Flexible Master Single Operation (FSMO) -roller:
Active Directory Module:
.NET Call:
Active Directory PowerShell Module Cmdlet Exempel:
Get-RootDSE får information om LDAP-servern (domänkontrollanten) och visar den. Det finns lite intressant information i resultaten som vilket operativsystem DC körs.
Get-ADForest ger information om Active Directory skogen datorn du kör kommandot är i.
Get-ADDomain ger information om den aktuella domänen du befinner dig i.
Get-ADDomainController tillhandahåller datorinformation som är specifik för domänkontrollanter.
Denna cmdlet gör det enkelt att hitta alla DC-enheter i en specifik webbplats eller kör en OS-version.
Get-ADComputer ger det mesta av det du vill veta om ett datorobjekt i AD.
Kör med ”-Prop *” för att visa alla standardegenskaper.
Get-ADUser ger mest av vad du vill veta om en AD-användare.
Kör med ”-Prop *” för att visa alla standardegenskaper.
Get-ADGroup ger information om en AD-grupp. Hitta alla säkerhetsgrupper genom att köra:
Get-ADGroup -Filter {GroupCategory -eq ’Security}
Get- ADGroupMember räknar upp och returnerar gruppmedlemmarna. Använd parametern Rekursiv för att inkludera alla medlemmar i kapslade grupper.
Get-ADGroupMember ’Administrators’ -Recursive
Dessa cmdlets är användbara för att identifiera situationer som tidigare krävde köp av en produkt eller anpassat skript.
Följande exempel hittar inaktiva (inaktuella) datorer och användare – konton som inte har ändrat sina lösenord under de senaste tio dagarna. Observera att detta är ett labbexempel. För verkliga kontroller, ändra detta till 60 till 90 dagar för datorer och 180 – 365 dagar för användare.
Hitta inaktiva datorer.
Hitta inaktiva användare.
Räkna upp domänförtroende
Få AD-webbplatsinformation.
Observera att Windows 2012-modulen innehåller cmdlet för webbplatser (Get-ADReplicationSite *).
GPO för säkerhetskopieringsdomän
Observera att detta kräver att PowerShell-modulen för grupprincip är installerad, vilken är separat från Active Directory-modulen.
Hitta AD Kerberos servicekonton
Inventory Domain Controllers – Get-ADDomainController – filter * | `välj värdnamn, IPv4Address, IsGlobalCatalog, IsReadOnly, OperatingSystem | `format-tabell -auto
Get-ADReplicationPartnerMetadata (Windows Server 2012 och senare)
Get-ADReplicationPartnerFailure ger information om status för DC-replikeringsfel.