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