Helyi felhasználók és csoportok kezelése a PowerShell segítségével

A közelmúltban a Microsoft hozzáadott egy szabványos PowerShell modult a Windowshoz a Windows nevű helyi felhasználók és csoportok kezelésére. Microsoft.PowerShell.LocalAccounts. Korábban ezt a parancsmagot külön kellett letölteni és importálni a PowerShell-be. A Windows Server 2016 és a Windows 10 rendszerben a LocalAccounts alapértelmezés szerint már elérhető, mert A PowerShell 5.1-hez tartozik. A Windows korábbi verzióiban a helyi fiókkezelő modul használatához telepítenie kell a Windows Management Framework 5.1-et.

Tartalom:

  • LocalAccounts modul
  • Helyi Windows felhasználók kezelése a PowerShell segítségével
  • A Windows helyi csoportok kezelése a PowerShell segítségével

LocalAccounts modul

Összességében a modul 15 cmdletet tartalmaz. A parancsmagok teljes listája a LocalAccounts modulban így jeleníthető meg:

Get-Command -modul Microsoft.PowerShell.LocalAccounts

  • Add-LocalGroupMember - felhasználó hozzáadása egy helyi csoporthoz
  • Disable-LocalUser - a helyi fiók letiltása
  • Enable-LocalUser - fiók engedélyezése (feloldás)
  • Get-LocalGroup - információt szerezhet egy helyi csoportról
  • Get-LocalGroupMember - a helyi csoport felhasználói listájának beszerzése
  • Get-LocalUser - információt szerezhet a helyi felhasználótól
  • New-LocalGroup - hozzon létre egy új helyi csoportot
  • New-LocalUser - felhasználó létrehozása
  • Eltávolítás - Helyi csoport - egy csoport eltávolítása
  • Remove-LocalGroupMember - egy tag eltávolítása a csoportból
  • Eltávolítás - LocalUser - eltávolít egy helyi felhasználót
  • Átnevezés - Helyi csoport - átnevez egy csoportot
  • Átnevezés - LocalUser - a felhasználó átnevezése
  • Set-LocalGroup - csoportváltás
  • Set-LocalUser - felhasználó módosítása

Ezután néhány tipikus feladatot vizsgálunk meg a Windows 10 számítógépen lévő helyi felhasználók és csoportok kezelésére a LocalAccounts modul PowerShell-parancsmagjaival..

Helyi Windows felhasználók kezelése a PowerShell segítségével

Felsoroljuk a számítógép helyi Windows felhasználóit:

Get-helyi_felhasználó

Mint láthatja, a számítógépen 7 helyi fiók van, amelyek közül 3 le van tiltva (Engedélyezve = Hamis).

Egy adott helyi fiók összes tulajdonságának megjelenítéséhez (a cmdlet analógja a felhasználói információkhoz az AD-ből - Get-ADUser):

Get-LocalUser -Name 'root' | Objektum kiválasztása *

AccountExpires:
Leírás:
Engedélyezve: Igaz
FullName:
PasswordChangeableDate: 2018.03.03. 11:23:48 PM
PasswordExpires:
UserMayChangePassword: Igaz
Jelszó szükséges: hamis
PasswordLastSet: 2018.04.22. 11:23:48 PM
Utolsó bejelentkezés: 2018.07.15. 9:04:32
Név: gyökér
SID: S-1-5-21-3650440056-3766451173-3310994491-1001
PrincipalSource: Helyi
ObjectClass: Felhasználó

Egy adott felhasználói attribútum, például a jelszó legutóbbi megváltoztatásának idejére, tegye a következőket:

Get-LocalUser -Name 'root' | Select-Object PasswordLastSet

Hozzon létre új helyi felhasználót a New-LocalUser parancsmag segítségével. Ez a parancsmag lehetővé teszi a következő fióktípusok létrehozását:

  • Windows helyi fiókok
  • Microsoft-fiókok
  • Azure AD-fiókok

Amikor felhasználói fiókot hoz létre a New-LocalUser használatával, nem adhatja meg a jelszavát a Jelszó argumentumként egyértelmű szövegben. Korábban a jelszót biztonságos sorba kell konvertálni, a jelszó interaktív igénylésével:

$ UserPassword = Olvasás-fogadó -AsSecureString

Vagy közvetlenül a PoSh konzolban adja meg a jelszót:

$ UserPassword = ConvertTo-SecureString "Pa $ $ szó !!" -AsPlainText -Force

New-LocalUser "SIvanov" -Password $ UserPassword -FullName "Sergey Ivanov" -Leírás "Local Account dlya udalennogo vhoda"

Felhasználó létrehozásához AD tartományban használja a New-ADUser parancsmagot.

A felhasználói jelszó megváltoztatásához használja a Set-LocalUser parancsot (feltételezve, hogy már konvertálta az új jelszót SecureString-re):

Set-LocalUser -Név sivanov -Password $ UserPassword -Verbose

A "Jelszó soha nem járt le" jelző beállításához futtassa:

Set-LocalUser -Name sivanov -PasswordNeverExpires $ False

Mint láthatja, nem kell konvertálnia a UserAccountControl értékét, mivel fióktulajdonságok kezelésekor az AD-ben.

Amint emlékszik, Microsoft fiókokon keresztül jelentkezhet be a Windows 10 rendszerbe. Ha új felhasználót kell létrehoznia egy Microsoft-fiókhoz társítva, futtassa a következő parancsot (vegye figyelembe, hogy nem kell megadnia a fiók jelszavát, mert a Microsoft tárolja).

New-LocalUser -Név "MicrosoftAccount \ [email protected]" -Leírás "Ez egy Microsoft-fiók"

A fiókjához társított helyi fiók létrehozásához az Azure AD-ben (például Office 365-et használ), futtassa a következő parancsot:

New-LocalUser -Name "AzureAD \ [email protected]" -Leírás "Ez egy fiók az Azure AD-ben"

A helyi felhasználó eltávolításához tegye a következőket:

Remove-LocalUser -Name sivanov -Verbose

A Windows helyi csoportok kezelése a PowerShell segítségével

Most felsoroljuk a helyi csoportokat a számítógépen:

Get-localgroup

Hozzon létre egy új csoportot:

New-LocalGroup -Név 'RemoteSupport' -Leírás 'Remote Support Group'

Most adjon hozzá néhány helyi fiókot és egy helyi rendszergazdák egy csoportját az új csoporthoz:

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

tanács. A felhasználók létrehozásához, törléséhez vagy felvételéhez a tartománycsoportokhoz olvassa el az Active Directory csoportok kezelése a PowerShell használatával című cikket.

Ha a számítógép egy domain része, akkor hozzáadhat a helyi csoporthoz és a tartományi fiókokhoz vagy csoportokhoz. Ehhez a DomainName \ user2 vagy DomainName \ 'domain admins' formátumban kell megadni őket..

A következő csővezeték segítségével felhasználót is felvehet a csoportokba (hozzáadhatja a felhasználót a helyi rendszergazdákhoz):

Get-Localuser -Név 'sivanov' Add-LocalGroupMember -Grupp 'Administrators'

Sorolja fel a helyi csoport felhasználóit:

Get-LocalGroupMember -Grupp 'RemoteSupport'

Mint láthatja, csak helyi fiókokat használunk (PrincipalSource - Local). Lehetnek azonban domain fiókok (domain), Microsoft fiókok (MicrosoftAccount) és fiókok az Azure-ból (AzureAD).

A csoportok felsorolásához, amelyekbe egy adott felhasználó tartozik, be kell lépnie a számítógép összes helyi csoportján:

foreach ($ LocalGroup a Get-LocalGroupban)

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

$ LocalGroup.Name

A felhasználó eltávolításához egy csoportból tegye a következőket:

Remove-LocalGroupMember -Grupp 'RemoteSupport' -Member 'sivanov'

A távoli számítógépen lévő helyi felhasználók kezeléséhez először WinRM-en kell csatlakoznia ehhez az Invoke-Command vagy az Enter-PSSession parancsmagokkal..

Például össze kell gyűjtenünk a távoli számítógépeken található helyi csoportbeli fiókok listáját:

$ s = új pszekciószámú számítógép pc01, pc02, pc03
invoke-command -scriptblock Get-LocalGroupMember -Grupp 'RemoteSupport' -session $ s -bidecomputername | válassza a * -kizárja a RunspaceID | lehetőséget out-gridview - "LocalAdmins" cím