Správa místních uživatelů a skupin pomocí prostředí PowerShell

Microsoft nedávno přidal do systému Windows standardní modul PowerShell pro správu místních uživatelů a skupin s názvem Windows. Microsoft.PowerShell.LocalAccounts. Dříve musela být tato rutina stažena a importována do PowerShell samostatně. V systémech Windows Server 2016 a Windows 10 je LocalAccounts nyní ve výchozím nastavení k dispozici, protože Je součástí PowerShell 5.1. V dřívějších verzích systému Windows musíte použít modul pro správu místního účtu, musíte nainstalovat Windows Management Framework 5.1.

Obsah:

  • Modul LocalAccounts
  • Správa místních uživatelů Windows pomocí PowerShell
  • Správa místních skupin Windows pomocí prostředí PowerShell

Modul LocalAccounts

Celkově modul obsahuje 15 cmdlets. Kompletní seznam rutin v modulu LocalAccounts lze zobrazit takto:

Get-Command - Modul Microsoft.PowerShell.LocalAccounts

  • Add-LocalGroupMember - přidání uživatele do místní skupiny
  • Disable-LocalUser - zakáže místní účet
  • Enable-LocalUser - povolit účet (odemknout)
  • Get-LocalGroup - získejte informace o místní skupině
  • Get-LocalGroupMember - získejte seznam uživatelů v místní skupině
  • Get-LocalUser - získejte informace o místním uživateli
  • New-LocalGroup - vytvoří novou místní skupinu
  • New-LocalUser - vytvoření uživatele
  • Remove-LocalGroup - odebere skupinu
  • Remove-LocalGroupMember - odebere člena ze skupiny
  • Remove-LocalUser - odebrání místního uživatele
  • Přejmenovat-LocalGroup - přejmenovat skupinu
  • Přejmenovat-LocalUser - přejmenovat uživatele
  • Set-LocalGroup - změna skupiny
  • Set-LocalUser - změna uživatele

Dále se podíváme na několik typických úkolů pro správu místních uživatelů a skupin v počítači se systémem Windows 10 pomocí rutin PowerShell z modulu LocalAccounts.

Správa místních uživatelů Windows pomocí PowerShell

Uvádíme místní uživatele systému Windows v počítači:

Získejte místního uživatele

Jak vidíte, v počítači je 7 místních účtů, z nichž 3 jsou deaktivovány (Enabled = False).

Chcete-li zobrazit všechny vlastnosti konkrétního místního účtu (analog rutiny pro získání informací o uživateli z AD - Get-ADUser), spusťte:

Get-LocalUser - jméno 'root' | Vybrat objekt *

AccountExpires:
Popis:
Povoleno: Pravda
Celé jméno:
HesloChangeableDate: 3/4/2018 23:23:48 PM
PasswordExpires:
UserMayChangePassword: True
PasswordRequired: False
PasswordLastSet: 22/22/2018 23:23:48 PM
LastLogon: 15/15/2018 21:04:32 PM
Jméno: root
SID: S-1-5-21-3650440056-3766451173-3310994491-1001
Hlavní zdroj: místní
ObjectClass: User

Chcete-li získat například konkrétní atribut uživatele, například čas, kdy bylo heslo naposledy změněno, postupujte takto:

Get-LocalUser - jméno 'root' | Vyberte objektové hesloLastSet

Vytvořte nového místního uživatele pomocí rutiny New-LocalUser. Tato rutina vám umožňuje vytvořit následující typy účtů:

  • Windows Local Accounts
  • Účty společnosti Microsoft
  • Azure AD účty

Při vytváření uživatelského účtu pomocí nástroje New-LocalUser nemůžete zadat jeho heslo jako argument hesla v prostém textu. Dříve musí být heslo převedeno na zabezpečenou linku interaktivním vyžádáním hesla:

$ UserPassword = Read-Host -AsSecureString

Nebo zadáním hesla přímo v konzole PoSh:

$ UserPassword = ConvertTo-SecureString "Pa $$ word !!" -AsPlainText -Force

New-LocalUser "SIvanov" -Password $ UserPassword -FullName "Sergey Ivanov" -Popis "Local Account dlya udalennogo vhoda"

Chcete-li vytvořit uživatele v doméně AD, použijte rutinu New-ADUser.

Chcete-li změnit uživatelské heslo, použijte příkaz Set-LocalUser (za předpokladu, že jste již nové heslo převedli na SecureString):

Set-LocalUser - jméno sivanov -Password $ UserPassword -Verbose

Chcete-li nastavit příznak „Heslo nikdy nevypršelo“, spusťte:

Set-LocalUser - jméno sivanov -PasswordNeverExpires $ False

Jak vidíte, nemusíte převádět hodnotu UserAccountControl, jako při správě vlastností účtu v AD.

Jak si pamatujete, můžete se přihlásit k systému Windows 10 pod účty Microsoft. Pokud potřebujete vytvořit nového uživatele přidruženého k účtu Microsoft, spusťte následující příkaz (mějte na paměti, že není nutné zadávat heslo účtu, protože je uloženo v Microsoft).

New-LocalUser - Jméno "MicrosoftAccount \ [email protected]" - Popis "Toto je účet v Microsoft"

Chcete-li vytvořit místní účet, který je přidružen k vašemu účtu v Azure AD (například používáte Office 365), spusťte příkaz:

New-LocalUser - Jméno "AzureAD \ [email protected]" -Popis "Toto je účet v Azure AD"

Chcete-li tohoto místního uživatele odebrat, postupujte takto:

Remove-LocalUser - jméno sivanov -Verbose

Správa místních skupin Windows pomocí prostředí PowerShell

Nyní uvádíme seznam místních skupin v počítači:

Získejte místní skupinu

Vytvořit novou skupinu:

New-LocalGroup - Jméno 'RemoteSupport' - Popis 'Remote Support Group'

Nyní do nové skupiny přidejte několik místních účtů a skupinu místních správců:

Add-LocalGroupMember -Group 'RemoteSupport' -Member ('SIvanov', 'root', 'Administrators') -Verbose

Tip. Chcete-li vytvořit, odstranit nebo přidat uživatele do skupin domén, přečtěte si článek Práce se skupinami Active Directory pomocí PowerShell.

Pokud je počítač součástí domény, můžete přidat účty nebo skupiny místní skupiny a domény. Chcete-li to provést, musí být zadány ve formátu DomainName \ user2 nebo DomainName \ 'domain admins'.

Můžete také přidat uživatele do skupin pomocí následujícího potrubí (přidat uživatele k místním správcům):

Get-Localuser - jméno 'sivanov' | Add-LocalGroupMember -Group 'Administrators'

Seznam uživatelů v místní skupině:

Get-LocalGroupMember -Group 'RemoteSupport'

Jak vidíte, používáme pouze místní účty (PrincipalSource - Local). Mohou však existovat účty domény (doména), účty Microsoft (MicrosoftAccount) a účty Azure (AzureAD).

Chcete-li uvést skupiny, ve kterých je konkrétní uživatel členem, musíte projít všechny místní skupiny v počítači:

foreach ($ LocalGroup v Get-LocalGroup)

if (Get-LocalGroupMember $ LocalGroup -Member 'sivanov' -ErrorAction SilentlyContinue)

$ LocalGroup.Name

Chcete-li odebrat uživatele ze skupiny, postupujte takto:

Remove-LocalGroupMember -Group 'RemoteSupport' -Member 'sivanov'

Chcete-li spravovat místní uživatele ve vzdáleném počítači, musíte se k němu nejprve připojit pomocí WinRM pomocí rutiny Invoke-Command nebo Enter-PSSession..

Například musíme shromažďovat seznam účtů v místní skupině na vzdálených počítačích:

$ s = new-pssession - computer pc01, pc02, pc03
invoke-command -scriptblock Get-LocalGroupMember -Group 'RemoteSupport' -session $ s -hidecomputername | vyberte * -Exclude RunspaceID | out-gridview - title "LocalAdmins"