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"
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
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