Skrypty programu PowerShell często wymagają podwyższonych uprawnień do działania. Chociaż nie stanowi to problemu w przypadku skryptów interaktywnych, ponieważ w razie potrzeby mogą one poprosić administratora o wprowadzenie hasła, w przypadku skryptów automatycznych wymagających poświadczeń staje się to trudniejsze.
W większości przypadków zautomatyzowane skrypty wymagające podwyższonych uprawnień działają w bezpiecznych systemach. Jednak szyfrowanie hasła w skrypcie to zły pomysł. chwila Szyfrowanie hasła W pliku jest opcja, takie pliki są tylko nieznacznie lepsze niż wbudowane hasło w postaci zwykłego tekstu. Dzieje się tak, ponieważ każda osoba mająca dostęp do pliku może użyć go do uwierzytelnienia bez konieczności znajomości prawdziwego hasła.
Aby zapewnić bezpieczniejszy sposób dostarczania poświadczeń do zautomatyzowanych skryptów programu PowerShell, można zaprojektować skrypt tak, aby miał uprawnienia Menedżera poświadczeń systemu Windows.
Zanim wyjaśnię, jak to działa, warto zauważyć, że zakładam, że omawiany skrypt PowerShell będzie działał w systemie przyłączonym do domeny. Chociaż Menedżer poświadczeń systemu Windows istnieje w systemach autonomicznych, czasami może to być trochę dziwne. Na przykład, jeśli samodzielny system jest skonfigurowany bez hasła (bez żadnego uwierzytelniania), poświadczenia buforowane w menedżerze poświadczeń często nie zapewniają dostępu do zmapowanych dysków sieciowych, nawet jeśli przechowywane poświadczenia są prawidłowe.
Użyj niestandardowych kont reklamowych dla skryptów PowerShell
Pierwszym krokiem w tym procesie jest otwarcie Użytkownicy i komputery usługi Active Directory Konsola i utwórz niestandardowe konto dla danego skryptu PowerShell, aby uzyskać niezbędne uprawnienia. Chociaż niektóre organizacje tworzą dedykowane konto, z którego mogą korzystać wszystkie skrypty PowerShell, praktyka ta może osłabić bezpieczeństwo.
Powodem tego jest to, że korzystanie z konta PowerShell ogólnego przeznaczenia narusza zasadę najmniejszego dostępu użytkownika. Minimalny dostęp użytkownika nakazuje, aby konto miało tylko uprawnienia wymagane do wykonania przypisanego mu zadania — nie więcej, nie mniej. Ponieważ skrypty PowerShell często wykonują różne operacje, utworzenie jednego konta do obsługi wszystkich skryptów zasadniczo spowoduje utworzenie konta administratora globalnego. Jeśli osoba atakująca złamie skrypt i uzyska dostęp do takiego konta, konsekwencje mogą być katastrofalne dla organizacji.
Zamiast tego radzę stworzyć osobne Konta Active Directory Według skryptu PowerShell. Zawsze możesz przechowywać te konta w dedykowanym folderze Active Directory, aby uniknąć zaśmiecania folderu Użytkownicy. Pamiętaj tylko, aby nazwać i opisać każde konto w sposób wyraźnie wskazujący jego cel.
Skonfiguruj Menedżera poświadczeń systemu Windows
W związku z tym przyjrzyjmy się, jak korzystać z Menedżera poświadczeń systemu Windows. Na potrzeby tego artykułu utworzyłem standardowe konto użytkownika o nazwie [email protected] Logujesz się do systemu przyłączonego do domeny z systemem Windows 11. Następnie próbujesz utworzyć użytkownika Active Directory, ale jak widać na rysunku 1, proces ten kończy się niepowodzeniem z powodu niewystarczających uprawnień.
Rysunek 1. Polecenie nie powiodło się z powodu niewystarczających uprawnień.
Aby skonfigurować PowerShell do korzystania z przechowywanych poświadczeń, musisz otworzyć sesję z podwyższonym poziomem uprawnień (tymczasowo zalogowany z uprawnieniami administratora) i zainstalować moduł Credential Manager. Aby zainstalować moduł, użyj następującego polecenia:
Install-Module CredentialManager
Rysunek 2. Zainstalowałeś moduł Credential Manager.
Dodaj poświadczenia do Menedżera poświadczeń systemu Windows
Po zainstalowaniu modułu możesz dodać zapisane poświadczenia do Menedżera poświadczeń systemu Windows. W celach demonstracyjnych robię to w niepodwyższonym oknie PowerShell, używając standardowego konta użytkownika. Polecenia, których użyłem, które możesz zobaczyć na rysunku 3, są następujące:
$Username = [email protected] $Password = ConvertTo-SecureString “P@ssw0rd” -AsPlainText -Force $Credential = New-Object -TypeName PSCredential -ArgumentList $UserName, $Password New-StoredCredential -Target PowerShell -Credential $Credential -Type Generic -Persist LocalMachine
Należy zauważyć, że parametr docelowy użyty w ostatnim poleceniu zasadniczo ustawia przyjazną nazwę referencji. Możesz nazwać cel jak chcesz. Jednakże ważne jest, aby zapamiętać niestandardową nazwę docelową, ponieważ będzie trzeba się do niej odwoływać za każdym razem, gdy będziesz korzystać z przechowywanych poświadczeń.
Rysunek 3. Poświadczenia są zapisywane w Menedżerze poświadczeń systemu Windows.
Odzyskanie przechowywanych danych uwierzytelniających polega po prostu na użyciu tego polecenia:
Get-StoredCredential -Target
Utwórz użytkownika Active Directory
Na początku tego artykułu próbowałeś utworzyć nowe konto użytkownika Active Directory z sesji PowerShell bez podwyższonych uprawnień, używając standardowego konta użytkownika. Naturalnie operacja ta nie powiodła się. Teraz powtórzmy test, używając zapisanych poświadczeń. Jedyną rzeczą, którą robię inaczej, jest dodanie parametru -Credential do polecenia cmdlet New-ADUser, aby określić przechowywane poświadczenia. Polecenia, których użyłem to:
$Cred = Get-StoredCredential -Target PowerShell
New-ADUser -Credential $Cred -Name “TestUser” -SamAccountName “TestUser” -UserPrincipalName [email protected] -AccountPassword (ConvertTo-SecureString “P@ssw0rd” -AsPlainText -Force) -Enabled $True
Należy szybko zauważyć, że chociaż w poleceniu New-ADUser pojawia się hasło w postaci zwykłego tekstu, jest to hasło ustawione dla nowego konta użytkownika, które tworzę. Nie służy do podnoszenia moich uprawnień, więc mogę utworzyć konto. Podniesienie uprawnień odbywa się za pomocą parametru -Credential.
Po utworzeniu nowego konta potwierdziłem powodzenie procesu za pomocą tego polecenia:
Get-ADUser -Filter {SamAccountName -eq “TestUser”}
Ostateczne wyniki można zobaczyć na rysunku 4.
Rysunek 4. Nowe konto Active Directory zostało utworzone.
„Nieuleczalny myśliciel. Miłośnik jedzenia. Subtelnie czarujący badacz alkoholu. Zwolennik popkultury”.
More Stories
Ding! Christopher Ward ogłasza nowe Bel Canto
Najlepszą reklamą podczas wydarzenia Apple Mac była bezpłatna aktualizacja pamięci RAM dla MacBooka Air
Startup zajmujący się obserwacją Ziemi wychodzi z zapomnienia z 12 milionami dolarów