Správa miestnych používateľov a skupín pomocou PowerShell

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 vytvoriť používateľa v doméne AD, použite rutinu New-ADUser.

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

rada. Ak chcete vytvoriť, odstrániť alebo pridať používateľov do skupín domén, prečítajte si článok Práca so skupinami Active Directory pomocou PowerShell.

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“