A PowerShell 5.1-ben jelent meg a Microsoft.PowerShell.LocalAccounts modul, ami nagy könnyebbséget jelent a helyi felhasználók és csoportok kezelésében, hiszen nem kell ADSI objektumokkal és azok metódusaival bajlódnunk, hanem egyszerű, intuitív PowerShell cmdleteket használhatunk immár.
Ez a modul alaphelyzetben részét képezi a PowerShell 5.1-nek:
PS C:\> Get-Module -ListAvailable -Name *local*
Directory: C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules
ModuleType Version Name ExportedCommands
---------- ------- ---- ----------------
Manifest 1.0.0.0 Microsoft.PowerShell.LocalAccounts {Add-LocalGroupMe...
És a benne található cmdletek:
PS C:\> Import-Module Microsoft.PowerShell.LocalAccounts
PS C:\> Get-Command -Module Microsoft.PowerShell.LocalAccounts | Sort-Object -P
roperty noun
CommandType Name Version
----------- ---- -------
Cmdlet Get-LocalGroup 1.0.0.0
Cmdlet Rename-LocalGroup 1.0.0.0
Cmdlet New-LocalGroup 1.0.0.0
Cmdlet Set-LocalGroup 1.0.0.0
Cmdlet Remove-LocalGroup 1.0.0.0
Cmdlet Remove-LocalGroupMember 1.0.0.0
Cmdlet Add-LocalGroupMember 1.0.0.0
Cmdlet Get-LocalGroupMember 1.0.0.0
Cmdlet Rename-LocalUser 1.0.0.0
Cmdlet Set-LocalUser 1.0.0.0
Cmdlet Remove-LocalUser 1.0.0.0
Cmdlet Enable-LocalUser 1.0.0.0
Cmdlet Disable-LocalUser 1.0.0.0
Cmdlet New-LocalUser 1.0.0.0
Cmdlet Get-LocalUser 1.0.0.0
A kezelt objektumok: LocalUser, LocalGroup, LocalGroupMember, a tevékenységek ezekkel: Add, Get, Set, New, Rename, Remove, Enable, Disable. Nem minden objektummal lehet az összes tevékenységet elvégezni, de észszerűen állnak össze a lehetőségek.
A lekérdezés egyszerű:
PS C:\> Get-LocalUser
Name Enabled Description
---- ------- -----------
Administrator False Built-in account for administering the computer/domain
DefaultAccount False A user account managed by the system.
Guest False Built-in account for guest access to the computer/do...
Tibi True
PS C:\> Get-LocalGroup
Name Description
---- -----------
Access Control Assistance Operators Members of this group can remotely quer...
Administrators Administrators have complete and unrest...
Backup Operators Backup Operators can override security ...
Cryptographic Operators Members are authorized to perform crypt...
Distributed COM Users Members are allowed to launch, activate...
Event Log Readers Members of this group can read event lo...
Guests Guests have the same access as members ...
Hyper-V Administrators Members of this group have complete and...
IIS_IUSRS Built-in group used by Internet Informa...
Network Configuration Operators Members in this group can have some adm...
Performance Log Users Members of this group may schedule logg...
Performance Monitor Users Members of this group can access perfor...
Power Users Power Users are included for backwards ...
Remote Desktop Users Members in this group are granted the r...
Remote Management Users Members of this group can access WMI re...
Replicator Supports file replication in a domain
System Managed Accounts Group Members of this group are managed by th...
Users Users are prevented from making acciden...
Az új felhasználó és csoport létrehozása szintúgy. Ehhez rendszergazda jogosultság szükséges. A jelszó megadásához SecureString-et kell képezzünk:
PS C:\> New-LocalUser -Name UjJúzer -FullName "Új Júzer" -Description "Ez egy p
élda felhasználó" -Password (ConvertTo-SecureString -String Kakukk -AsPlainText
-Force)
Name Enabled Description
---- ------- -----------
UjJúzer True Ez egy példa felhasználó
PS C:\> New-LocalGroup -Name SajátCsoport -Description "Ez egy példa csoport"
Name Description
---- -----------
SajátCsoport Ez egy példa csoport
Tag hozzáadása csoporthoz:
PS C:\> Add-LocalGroupMember -Group Sajátcsoport -Member UjJúzer
Felhasználó átnevezése:
PS C:\> Rename-LocalUser -Name UjJúzer -NewName ÚjJúzer
Természetesen az alaphelyzet szerinti táblázat itt sem mutatja meg az összes tulajdonságot, így a fl * szükséges lehet a részletesebb adatok megjelenítéséhez:
PS C:\> Get-LocalUser -Name Ú* | fl *
AccountExpires :
Description : Ez egy példa felhasználó
Enabled : True
FullName : Új Júzer
PasswordChangeableDate : 2017.03.25. 13:57:59
PasswordExpires : 2017.05.06. 14:57:59
UserMayChangePassword : True
PasswordRequired : False
PasswordLastSet : 2017.03.25. 13:57:59
LastLogon :
Name : ÚjJúzer
SID : S-1-5-21-2156952311-2926033462-1066486086-1003
PrincipalSource : Local
ObjectClass : User
Miért érdemes mégis tudni a hagyományos, ADSI alapú megközelítésről? Azért, mert ezek az új cmdletek sajnos nem működnek „remoting”, azaz távoli módban, így nem tudjuk másik gép helyi fiókjait kezelni közvetlenül, csak ha használjuk a PowerShell remoting-ot, vagy az előző fejezetben használt hagyományos módszert.