środa,
PowerShell: Użytkownicy lokalni
W PowerShell można zarządzać użytkownikami lokalnymi na różne sposoby. Do wykonania zdecydowanej większości prezentowanych przykładów są wymagane uprawnienia administratora. Ponadto zawsze sprawdzaj i testuj skrypty w bezpiecznym środowisku przed ich stosowaniem w produkcji.
Proste przykłady
Tworzenie nowego użytkownika lokalnego
Możesz utworzyć nowego użytkownika lokalnego za pomocą cmdletu New-LocalUser
. Na przykład, aby utworzyć użytkownika o nazwie "NowyUżytkownik" z hasłem, użyj następującego polecenia:
$Password = ConvertTo-SecureString "BezpieczneHaslo123" -AsPlainText -Force
New-LocalUser "NowyUżytkownik" -Password $Password
W tym przykładzie hasło jest konwertowane na bezpieczny ciąg i przypisywane do nowo utworzonego użytkownika.
Zmiana hasła użytkownika
Aby zmienić hasło istniejącego użytkownika, użyj Set-LocalUser
. Na przykład:
$NewPassword = ConvertTo-SecureString "NoweHaslo123" -AsPlainText -Force
Set-LocalUser -Name "NowyUżytkownik" -Password $NewPassword
Tutaj zmieniasz hasło dla użytkownika "NowyUżytkownik".
Dodawanie użytkownika do grupy
Możesz dodać użytkownika do grupy za pomocą Add-LocalGroupMember
. Na przykład, aby dodać "NowyUżytkownik" do grupy "Administratorzy":
Add-LocalGroupMember -Group "Administratorzy" -Member "NowyUżytkownik"
Wyświetlanie listy użytkowników lokalnych
Aby wyświetlić listę wszystkich użytkowników lokalnych, użyj Get-LocalUser
:
Get-LocalUser
Usuwanie użytkownika lokalnego
Aby usunąć użytkownika lokalnego, użyj Remove-LocalUser
. Na przykład:
Remove-LocalUser -Name "NowyUżytkownik"
Ten kod usuwa użytkownika "NowyUżytkownik".
Dodatkowe opcje
Dodawanie użytkownika lokalnego w PowerShell może obejmować różne aspekty, takie jak ustawienie statusu konta, wymuszenie zmiany hasła przy pierwszym logowaniu, ustawienie daty wygaśnięcia konta i inne opcje.
Tworzenie użytkownika lokalnego z dodatkowymi opcjami
# Uruchamianie PowerShell jako Administrator jest wymagane do wykonania tego skryptu
# Definiowanie nazwy użytkownika i hasła
$userName = "NowyUzytkownik"
$password = ConvertTo-SecureString "BezpieczneHaslo123!" -AsPlainText -Force
# Tworzenie nowego użytkownika
$u = New-LocalUser -Name $userName -Password $password -FullName "Nowy Użytkownik" -Description "Przykładowy użytkownik lokalny" -PasswordNeverExpires:$false -UserMayNotChangePassword:$false -AccountExpires (Get-Date).AddDays(30)
# Dodawanie użytkownika do grupy "Użytkownicy"
Add-LocalGroupMember -Group "Użytkownicy" -Member $userName
# Ustawienie wymuszenia zmiany hasła przy pierwszym logowaniu
$WinNT = [adsi]"WinNT://localhost/$($u.Name)"
$WinNT.PasswordExpired = 1
$WinNT.SetInfo()
# Wyświetlanie informacji o nowo utworzonym użytkowniku
Get-LocalUser -Name $userName | Select-Object Name, PasswordNeverExpires, UserMayNotChangePassword, AccountExpires
Uwagi
- Możesz zmienić wartości zmiennych
$userName
i$password
na odpowiadające potrzebom. - Skrypt ustawia różne opcje, takie jak data wygaśnięcia konta i wymóg zmiany hasła przy pierwszym logowaniu. Możesz dostosować te opcje według własnych wymagań.
- W przypadku wystąpienia błędów, PowerShell wyświetli odpowiednie komunikaty, które pomogą zdiagnozować problem.
Omówienie skryptu
Definiowanie nazwy użytkownika i hasła:
$userName = "NowyUzytkownik"
$password = ConvertTo-SecureString "BezpieczneHaslo123!" -AsPlainText -Force
New-LocalUser -Name $userName -Password $password -FullName "Nowy Użytkownik" -Description "Przykładowy użytkownik lokalny" -PasswordNeverExpires:$false -UserMayNotChangePassword:$false -AccountExpires (Get-Date).AddDays(30)
New-LocalUser
– tworzy nowego użytkownika z określonymi właściwościami.PasswordNeverExpires $false
– hasło będzie wymagało okresowej zmiany.UserMayNotChangePassword $false
– pozwala użytkownikowi na zmianę hasła.AccountExpires
– ustawia datę wygaśnięcia konta na 30 dni od obecnej daty.
Dodawanie użytkownika do grupy:
Add-LocalGroupMember -Group "Users" -Member $userName
Add-LocalGroupMember
dodaje użytkownika do grupy lokalnej.
Ustawienie wymuszenia zmiany hasła przy pierwszym logowaniu:
$WinNT = [adsi]"WinNT://localhost/$($u.Name)"
$WinNT.PasswordExpired = 1
$WinNT.SetInfo()
[adsi]
jest rzutowaniem, które informuje PowerShell, aby użył interfejsu ADSI do komunikacji z usługami katalogowymi."WinNT://localhost/$($u.Name)"
określa ścieżkę dostępu do interfejsu ADSI.$WinNT.PasswordExpired = 1
ustawia właściwośćPasswordExpired
obiektu użytkownika na1
, co oznacza, że hasło użytkownika zostało oznaczone jako wygasłe.$WinNT.SetInfo()
zatwierdza zmiany wykonane na obiekcie użytkownika, w tym przypadku aktualizując stan wygasłego hasła.
Sprawdzanie statusu nowo utworzonego użytkownika:
Get-LocalUser -Name $userName | Select-Object Name, PasswordNeverExpires, UserMayNotChangePassword, AccountExpires
Get-LocalUser
– pobiera informacje o użytkowniku.Select-Object
– wybiera konkretne właściwości do wyświetlenia.