Spoločnosť Microsoft nedávno pridala do systému Windows štandardný modul PowerShell na správu miestnych používateľov a skupín s názvom Windows. Microsoft.PowerShell.LocalAccounts. Predtým sa táto rutina musela sťahovať a importovať do PowerShell osobitne. V systéme Windows Server 2016 a Windows 10 sú teraz LocalAccounts predvolene k dispozícii, pretože Je súčasťou PowerShell 5.1. V starších verziách systému Windows je potrebné nainštalovať modul Windows Management Framework 5.1, aby ste mohli používať modul na správu miestneho účtu.
obsah:
- Modul LocalAccounts
- Správa lokálnych používateľov Windows pomocou PowerShell
- Správa lokálnych skupín Windows pomocou PowerShell
Modul LocalAccounts
Celkovo modul obsahuje 15 cmdlets. Kompletný zoznam cmdletov v module LocalAccounts je možné zobraziť takto:
Get-Command - Modul Microsoft.PowerShell.LocalAccounts
- Add-LocalGroupMember - pridanie používateľa do miestnej skupiny
- Disable-LocalUser - zakáže miestny účet
- Enable-LocalUser - povoliť účet (odomknúť)
- Get-LocalGroup - získajte informácie o miestnej skupine
- Get-LocalGroupMember - získajte zoznam používateľov v miestnej skupine
- Get-LocalUser - získajte informácie o miestnom používateľovi
- New-LocalGroup - vytvorte novú miestnu skupinu
- New-LocalUser - vytvorenie používateľa
- Remove-LocalGroup - odstráňte skupinu
- Remove-LocalGroupMember - odstráni člena zo skupiny
- Remove-LocalUser - odstráni lokálneho používateľa
- Premenovať-LocalGroup - premenovať skupinu
- Rename-LocalUser - premenovanie používateľa
- Set-LocalGroup - zmena skupiny
- Set-LocalUser - zmena používateľa
Ďalej sa pozrieme na niekoľko bežných úloh pre správu miestnych používateľov a skupín v počítači so systémom Windows 10 pomocou rutín cmdlet PowerShell z modulu LocalAccounts..
Správa lokálnych používateľov Windows pomocou PowerShell
V počítači uvádzame miestnych používateľov systému Windows:
Get-LocalUser
Ako vidíte, v počítači je 7 miestnych účtov, z ktorých 3 sú zakázané (Enabled = False).
Ak chcete zobraziť všetky vlastnosti konkrétneho miestneho účtu (analóg rutiny cmdlet na získanie informácií o používateľovi z AD - Get-ADUser), spustite:
Get-LocalUser - meno 'root' | Vybrať objekt *
AccountExpires:
Popis:
Povolené: Pravda
CeléJméno:
Dátum zmeny hesla: 3. 4. 1818 23:23:48
PasswordExpires:
UserMayChangePassword: True
Požadované heslo: Falošné
PasswordLastSet: 22/22/2018 23:23:48 PM
LastLogon: 15.7.2018 21:04:32 PM
Názov: root
SID: S-1-5-21-3650440056-3766451173-3310994491-1001
PrincipalSource: Local
ObjectClass: User
Ak chcete získať konkrétny atribút používateľa, napríklad čas poslednej zmeny hesla, postupujte takto:
Get-LocalUser - meno 'root' | Vyberte objektové hesloLastSet
Vytvorte nového miestneho používateľa pomocou rutiny New-LocalUser. Táto rutina vám umožňuje vytvoriť nasledujúce typy účtov:
- Lokálne účty Windows
- Účty spoločnosti Microsoft
- Azure AD účty
Pri vytváraní používateľského účtu pomocou programu New-LocalUser nemôžete zadať jeho heslo ako argument hesla v čistom texte. Predtým musí byť heslo prevedené na bezpečnú linku interaktívnym vyžiadaním hesla:
$ UserPassword = Read-Host -AsSecureString
Alebo zadaním hesla priamo do konzoly PoSh:
$ UserPassword = ConvertTo-SecureString "Pa $$ word !!" -AsPlainText -Force
New-LocalUser "SIvanov" -Password $ UserPassword -FullName "Sergey Ivanov" -Popis "Local Account dlya udalennogo vhoda"
Ak chcete zmeniť heslo používateľa, použite príkaz Set-LocalUser (za predpokladu, že ste už nové heslo premenili na SecureString):
Set-LocalUser - meno sivanov -Password $ UserPassword -Verbose
Ak chcete nastaviť príznak „Heslo nikdy nevypršalo“, spustite:
Set-LocalUser - meno sivanov -PasswordNeverExpires $ False
Ako vidíte, nemusíte prevádzať hodnotu UserAccountControl, ako pri správe vlastností účtu v AD.
Ako si pamätáte, môžete sa prihlásiť do systému Windows 10 pod účtami Microsoft. Ak potrebujete vytvoriť nového používateľa priradeného k účtu Microsoft, spustite nasledujúci príkaz (uvedomte si, že nemusíte zadávať heslo účtu, pretože je uložené v Microsoft).
New-LocalUser - meno „MicrosoftAccount \ [email protected]“ - Popis „Toto je účet v spoločnosti Microsoft“
Ak chcete vytvoriť miestny účet, ktorý je priradený k vášmu účtu v službe Azure AD (napríklad používate balík Office 365), spustite príkaz:
New-LocalUser - meno "AzureAD \ [email protected]" -Popis "Toto je účet v Azure AD"
Ak chcete odstrániť tohto miestneho používateľa, postupujte takto:
Remove-LocalUser - meno sivanov -Verbose
Správa lokálnych skupín Windows pomocou PowerShell
Teraz uvádzame miestne skupiny v počítači:
Get-localgroup
Vytvorenie novej skupiny:
New-LocalGroup - Názov 'RemoteSupport' -Description 'Remote Support Group'
Teraz do novej skupiny pridajte niekoľko miestnych účtov a skupinu miestnych správcov:
Add-LocalGroupMember -Group 'RemoteSupport' -Member ('SIvanov', 'root', 'Administrators') -Verbose
Ak je váš počítač súčasťou domény, môžete pridať do miestnej skupiny a účty alebo skupiny domén. Ak to chcete urobiť, musia byť uvedené vo formáte DomainName \ user2 alebo DomainName \ 'domain admins'.
Môžete tiež pridať používateľa do skupín pomocou nasledujúceho potrubia (pridajte používateľa do miestnych správcov):
Get-Localuser - meno 'sivanov' | Add-LocalGroupMember -Group 'Administrators'
Zoznam používateľov v miestnej skupine:
Get-LocalGroupMember -Group 'RemoteSupport'
Ako vidíte, používame iba miestne účty (PrincipalSource - Local). Môžu však existovať účty domén (domény), účty Microsoft (MicrosoftAccount) a účty Azure (AzureAD)..
Ak chcete uviesť zoznam skupín, ktorých je konkrétny používateľ členom, musíte prejsť všetkými miestnymi skupinami v počítači:
foreach ($ LocalGroup v Get-LocalGroup)
if (Get-LocalGroupMember $ LocalGroup -Member 'sivanov' -ErrorAction SilentlyContinue)
$ LocalGroup.Name
Ak chcete odstrániť používateľa zo skupiny, postupujte takto:
Remove-LocalGroupMember -Group 'RemoteSupport' -Member 'sivanov'
Ak chcete spravovať miestnych používateľov na vzdialenom počítači, musíte sa k nemu najprv pripojiť prostredníctvom WinRM pomocou cmdletov Invoke-Command alebo Enter-PSSession..
Napríklad musíme zhromažďovať zoznam účtov v miestnej skupine na vzdialených počítačoch:
$ s = new-pssession - computer pc01, pc02, pc03
invoke-command -scriptblock Get-LocalGroupMember -Group 'RemoteSupport' -session $ s -hidecomputername | vyberte * - vylúčiť RunspaceID | out-gridview -title „LocalAdmins“