Upravljanje lokalnih uporabnikov in skupin s programom PowerShell

Pred kratkim je Microsoft v sistem Windows dodal standardni modul PowerShell za upravljanje lokalnih uporabnikov in skupin, imenovanih Windows. Microsoft.PowerShell.LocalAccounts. Pred tem je bilo treba ta cmdlet naložiti in uvoziti v PowerShell posebej. V sistemih Windows Server 2016 in Windows 10 je LocalAccounts zdaj privzeto na voljo, ker Priložen je s programom PowerShell 5.1. Za uporabo lokalnega modula za upravljanje računa morate v prejšnjih različicah sistema Windows namestiti sistem Windows Management Framework 5.1.

Vsebina:

  • Modul LocalAccounts
  • Upravljanje lokalnih uporabnikov sistema Windows s programom PowerShell
  • Upravljanje lokalnih skupin Windows s programom PowerShell

Modul LocalAccounts

Skupaj modul vključuje 15 cmdletov. Popoln seznam cmdlet v modulu LocalAccounts se lahko prikaže takole:

Get-Command -Module Microsoft.PowerShell.LocalAccounts

  • Add-LocalGroupMember - dodajte uporabnika v lokalno skupino
  • Disable-LocalUser - onemogoči lokalni račun
  • Omogoči-LocalUser - omogoči račun (odkleni)
  • Get-LocalGroup - pridobite informacije o lokalni skupini
  • Get-LocalGroupMember - dobite seznam uporabnikov v lokalni skupini
  • Get-LocalUser - pridobite informacije o lokalnem uporabniku
  • New-LocalGroup - ustvarite novo lokalno skupino
  • New-LocalUser - ustvarite uporabnika
  • Remove-LocalGroup - odstrani skupino
  • Remove-LocalGroupMember - odstrani člana iz skupine
  • Remove-LocalUser - odstrani lokalnega uporabnika
  • Preimenuj-lokalno skupino - preimenujte skupino
  • Preimenuj-LocalUser - preimenuj uporabnika
  • Set-LocalGroup - sprememba skupine
  • Set-LocalUser - spremeni uporabnika

Nato si bomo ogledali nekaj značilnih nalog za upravljanje lokalnih uporabnikov in skupin v računalniku z operacijskim sistemom Windows 10 s pomočjo ukaznih oken PowerShell iz modula LocalAccounts.

Upravljanje lokalnih uporabnikov sistema Windows s programom PowerShell

V računalniku prikazujemo lokalne uporabnike sistema Windows:

Get-lokalni uporabnik

Kot vidite, je v računalniku 7 lokalnih računov, od katerih so 3 onemogočeni (omogočeno = napačno).

Če želite prikazati vse lastnosti določenega lokalnega računa (analogni ukaznik za pridobivanje informacij o uporabniku od AD - Get-ADUser), zaženite:

Get-LocalUser -Name 'root' | Izberi predmet *

AccountExpires:
Opis:
Omogočeno: Res
Polno ime:
Datum zamenjave gesla: 3.4.2018 23:23:48
PasswordExpires:
UserMayChangePassword: Res
Zahtevano geslo: napačno
PasswordLastSet: 22.4.2018 23:23:48
LastLogon: 15.7.2018 21:04:32
Ime: root
SID: S-1-5-21-3650440056-3766451173-3310994491-1001
Glavni vir: Lokalno
ObjectClass: Uporabnik

Če želite dobiti določen uporabniški atribut, na primer čas zadnjega spreminjanja gesla, naredite:

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

Ustvarite novega lokalnega uporabnika z ukaznim ukazom New-LocalUser. Ta cmdlet vam omogoča ustvarjanje naslednjih vrst računov:

  • Lokalni računi Windows
  • Microsoftovi računi
  • Azure AD računi

Pri ustvarjanju uporabniškega računa z uporabo New-LocalUser ne morete v jasnem besedilu določiti gesla kot argument gesla. Pred tem je treba geslo pretvoriti v varno vrstico tako, da interaktivno zahteva geslo:

$ UserPassword = Read-Host -AsSecureString

Ali z vnosom gesla neposredno v konzolo PoSh:

$ UserPassword = PretvoriTo-SecureString "Pa $$ beseda !!" -AsPlainText -Force

New-LocalUser "SIvanov" -Password $ UserPassword -FullName "Sergey Ivanov" -Opis "Lokalni račun dlya udalennogo vhoda"

Če želite ustvariti uporabnika v AD domeni, uporabite ukazno vrstico New-ADUser.

Če želite spremeniti uporabniško geslo, uporabite ukaz Set-LocalUser (ob predpostavki, da ste novo geslo že pretvorili v SecureString):

Set-LocalUser -Name sivanov -Password $ UserPassword -Verbose

Če želite nastaviti zastavico »Geslo nikoli ni potekla«, zaženite:

Set-LocalUser -Name sivanov -PasswordNeverExpires $ False

Kot vidite, vam ni treba pretvoriti vrednosti UserAccountControl, kot pri upravljanju lastnosti računa v AD.

Kot se spomnite, se lahko prijavite v sistem Windows 10 prek Microsoftovih računov. Če morate ustvariti novega uporabnika, povezanega z Microsoftovim računom, zaženite naslednji ukaz (upoštevajte, da vam ni treba določiti gesla računa, ker je shranjeno v Microsoftu).

New-LocalUser -Name "MicrosoftAccount \ [email protected]" -Opis "To je račun v Microsoftu"

Če želite ustvariti lokalni račun, ki je povezan z vašim računom v Azure AD (na primer uporabljate Office 365), zaženite ukaz:

New-LocalUser -Name "AzureAD \ [email protected]" -Opis "To je račun v Azure AD"

Če želite odstraniti tega lokalnega uporabnika, storite:

Odstrani-LocalUser -Name sivanov -Verbose

Upravljanje lokalnih skupin Windows s programom PowerShell

Zdaj navajamo lokalne skupine v računalniku:

Pridobite lokalno skupino

Ustvari novo skupino:

New-LocalGroup -Name 'RemoteSupport' -Opis 'Skupina za oddaljeno podporo'

Zdaj dodajte nekaj lokalnih računov in skupino lokalnih skrbnikov v novo skupino:

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

Namig. Če želite ustvariti, izbrisati ali dodati uporabnike v domenske skupine, glejte članek Delo s skupinami Active Directory, ki uporabljajo PowerShell.

Če je vaš računalnik del domene, ga lahko dodate v lokalne račune in račune ali skupine domen. Če želite to narediti, morajo biti podane v obliki DomainName \ user2 ali DomainName \ 'domenska administracija'.

Uporabnika lahko dodate tudi v skupine z naslednjim cevovodom (dodajte uporabnika lokalnim skrbnikom):

Get-Localuser -Name 'sivanov' | Add-LocalGroupMember -Group 'Administratorji'

Seznam uporabnikov v lokalni skupini:

Get-LocalGroupMember -Group 'RemoteSupport'

Kot lahko vidite, uporabljamo samo lokalne račune (PrincipalSource - Lokalni). Lahko pa obstajajo domenski računi (domena), Microsoftovi računi (MicrosoftAccount) in računi Azure (AzureAD).

Če želite seznam skupin, v katere je določen uporabnik član, morate skozi vse lokalne skupine v računalniku:

foreach ($ LocalGroup v Get-LocalGroup)

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

$ LocalGroup.Name

Če želite uporabnika odstraniti iz skupine, naredite:

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

Če želite upravljati lokalne uporabnike na oddaljenem računalniku, se morate najprej povezati z njim prek WinRM z ukaznimi elementi Invoke-Command ali Enter-PSSession.

Na primer, na oddaljenih računalnikih moramo zbrati seznam računov v lokalni skupini:

$ s = nov-pssession-računalnik pc01, pc02, pc03
invoke-command -scriptblock Get-LocalGroupMember -Group 'RemoteSupport' -session $ s -hidecomputername | izberite * -izključi RunspaceID | naslov zunaj omrežja "LocalAdmins"