V tomto článku se podíváme na to, jak získat seznam uživatelů a skupin, kteří mají práva místního správce na pracovních stanicích a serverech Windows ve vaší síti.
Obsah:
- Najděte místní správce v místním počítači
- Získejte člena skupiny místních správců ze vzdáleného počítače
- Odebrání uživatelů ze skupiny Local Administrators
Najděte místní správce v místním počítači
V systému Windows můžete použít modul snap-in Správa počítače (compmgmt.msc), chcete-li zobrazit, přidat nebo odebrat uživatele v místní skupině Administrators. RozšířitSpráva počítače->Místní uživatelé a skupina->Skupiny. Poté vyberteSprávciskupina.
Ve výchozím nastavení, když je počítač se systémem Windows připojen k doméně Active Directory, jsou práva správce udělena uživatelům místního správce a uživatelůmSprávci doménybezpečnostní skupina.
Všichni ostatní uživatelé nebo skupiny jsou přidáni do skupiny Administrators samostatně (manuálně, prostřednictvím zásad skupiny, skriptů atd.).

Seznam členů místní skupiny Administrators pomocí PowerShellu:
Get-LocalGroupMember -Group "Administrators"


Upozorňujeme, že parametr Principal obsahuje zdroj tohoto uživatele/skupiny, což může být místní doména, doména Active Directory nebo Azure AD.
Takto můžete uvést pouze místní uživatele, kteří mají oprávnění správce:
Get-LocalGroupMember Administrators | Where-Object { (Get-LocalUser $_.SID -ErrorAction SilentlyContinue).Enabled }
Seznam můžete filtrovat tak, aby zahrnoval pouze uživatele AD:
Get-LocalGroupMember Administrators | Where-Object {$_.PrincipalSource -eq "ActiveDirectory"} | select PrincipalSource,class,name,SID
Pokud je na vašem počítači nainstalován modul Active Directory for Windows PowerShell z balíčku RSAT, můžete získat další informace o uživatelích nebo skupinách AD podle jejich SID.
V tomto příkladu skript najde členy všech skupin služby Active Directory, kteří jsou místními správci na tomto počítači (tGet-ADGroupMembercmdlet se používá k získání seznamu uživatelů skupiny AD). Poté se Get-ADUser použije k získání SamAccountName a stavu účtu (Enabled= Pravda/nepravda).
$admins=Get-LocalGroupMember Administrators | Where-Object {$_.PrincipalSource -eq "ActiveDirectory"}
Foreach ($admin in $admins)
{
If ($admin.objectclass –eq "User") {get-aduser $admin.sid|select SamAccountName,enabled }
If ($admin.objectclass –eq "Group") {Get-ADGroupMember $admin.sid | foreach { Get-ADUser $_ |Select-Object SamAccountName,enabled }}
}


Podobně můžete získat jakékoli další uživatelské atributy ze služby Active Directory.
Získejte člena skupiny místních správců ze vzdáleného počítače
Výše uvedený příklad získá seznam uživatelů s právy správce na místním počítači. Nyní se podíváme na to, jak získat členy místní skupiny Administrators ze vzdáleného počítače se systémem Windows.
Chcete-li spouštět příkazy na vzdálených počítačích, musíte nakonfigurovat PowerShell Remoting a otevřít port brány firewall TCP 5985. Můžete povolit a nakonfigurovat službu WinRM (PSRemoting) pomocí GPO a poté změnit nastavení zásad skupiny brány Windows Defender Firewall, abyste otevřeli další port.
Pomocí rutiny Invoke-Command PowerShell spusťte příkaz na vzdáleném počítači. Chcete-li zobrazit seznam správců na vzdáleném počítači s názvem wsk-m2211, použijte následující příkaz:
Invoke-Command -ComputerName wsk-m2211 -ScriptBlock {Get-LocalGroupMember -Name 'Administrators'|select Name,ObjectClass,PrincipalSource|ft}
Nyní se podívejme, jak získat seznam správců z více počítačů. Pro usnadnění vyřadíme z výsledků skupinu Domain Admins:
$results = Invoke-Command wsk-m2211,srv-sql01,srv-rds02 -ScriptBlock {Get-LocalGroupMember -Name 'Administrators'|where {$_.name –notlike "*Domain Admins*"}|select Name,ObjectClass,PrincipalSource}
$results | Select-Object PSComputerName,Name,ObjectClass,PrincipalSource
Doporučené čtení:Jak uvolnit místo na disku na počítačích Mac a Windows


Z výsledků můžete vyloučit vestavěného správce nebo jiné účty.
Pomocí příkazu Export-CSV exportujte výsledný seznam uživatelů a skupin do souboru CSV:
$results | Export-CSV "C:PSadmins.CSV" -NoTypeInformation -Encoding UTF8
Můžete se dotazovat na více počítačů nebo serverů z domény současně. V tomto příkladu chci získat seznam správců na všech hostitelích Windows Server v AD. Použijte rutinu Get-ADComputer k zobrazení seznamu povolených počítačů se systémem Windows Server ve službě Active Directory:
$computers = (Get-ADComputer -Filter 'operatingsystem -like "*Windows server*" -and enabled -eq "true"').Name
Dále získejte seznam členů místní skupiny Administrators na každém hostiteli:
$results = Invoke-Command -ComputerName $computers -ScriptBlock {Get-LocalGroupMember -Name 'Administrators'|where {$_.name –notlike "*Domain Admins*"}|select Name,ObjectClass,PrincipalSource} -ErrorAction SilentlyContinue
Odebrání uživatelů ze skupiny Local Administrators
Podnikoví administrátoři musí mít přehled o členech místní skupiny Administrators na počítačích v doméně. Hlavní myšlenkou je minimalizovat počet uživatelů s právy místního správce.
K automatickému přidávání uživatelů do místní skupiny Administrators se doporučuje použít Předvolby zásad skupiny nebo Omezené skupiny. Tyto GPO automaticky přidají požadované uživatele do skupiny Administrators a vyloučí všechny ostatní uživatele (kteří jsou přidáni ručně).
Uživatele můžete ručně odebrat ze skupiny místních administrátorů pomocí příkazu:
Remove-LocalGroupMember -Group Administrators -Member username
Uživatele můžete odebrat ze skupiny na vzdáleném počítači:
Invoke-Command -ComputerName wsk-m2211 –ScriptBlock {Remove-LocalGroupMember -Group Administrators -Member username}
Existuje však pokročilejší metoda, kterou můžete použít. Předpokládejme, že jste vytvořili seznam uživatelů s administrátorskými právy na počítačích a uložili jej do proměnné $results.
$results = Invoke-Command wsk-m2211,wsk-m2233 -ScriptBlock {Get-LocalGroupMember -Name 'Administrators'|where {$_.name –notlike “*Domain Admins*”}|select Name,ObjectClass,PrincipalSource,SID}
Poté zobrazte seznam uživatelů a počítačů ve formě seznamu Out-GridView:
$principals_to_remove=$results | Out-GridView -Title "Select principal to remove from local admins" -OutputMode Multiple
Další věc, kterou musíte udělat, je vybrat uživatele, které chcete odebrat ze skupiny Administrators (stiskněte a podržteCTRLvyberte více řádků v tabulce) a spusťte kód:
foreach ($principal in $principals_to_remove)
{
Invoke-Command $principal.PSComputerName -ScriptBlock {Remove-LocalGroupMember -Group Administrators -Member $using:principal.name}
}


Poznámka. The$using:principal.namekonstrukt vám umožňuje předat hodnotu lokální proměnné z vašeho počítače do vzdálené relace PSRemoting.
Tímto odeberete uživatele, které jste vybrali, z místní skupiny Administrators na vzdálených počítačích.


![Jak vypnout omezení na jakýkoli iPad [Air/Pro/9. Gen a další]](https://elsefix.com/tech/afton/wp-content/uploads/cache/2025/07/turn-off-restrictions-ipad-1.jpg)
![Formátování/příkazy textu Discord: Strikethrough, Bold & další [průvodce]](https://elsefix.com/tech/afton/wp-content/uploads/cache/2025/04/A-Complete-Guide-On-Discord-Text-Formatting-Strikethrough-Bold-amp-More.jpg)










