Chciałbym ponownie uruchomić komputer zdalny należący do domeny. Mam konto administratora, ale nie wiem, jak go używać z PowerShell.
Wiem, że istnieje polecenie Restart-Computer
cmdlet i że mogę przekazać poświadczenia, ale jeśli na przykład moja domena to mydomain
moja nazwa użytkownika, myuser
a moje hasło jest mypassword
właściwą składnią, aby go używać?
Muszę zaplanować ponowne uruchomienie, więc nie muszę wpisywać hasła.
powershell
powershell-remoting
wszystkie oczy na mnie
źródło
źródło
Odpowiedzi:
Problem
Get-Credential
polega na tym, że zawsze zapyta o hasło. Jest jednak na to sposób, ale wymaga to przechowywania hasła jako bezpiecznego ciągu w systemie plików.Poniższy artykuł wyjaśnia, jak to działa:
Podsumowując, tworzysz plik do przechowywania hasła (jako zaszyfrowany ciąg). Następujący wiersz poprosi o hasło, a następnie zapisze je
c:\mysecurestring.txt
jako zaszyfrowany ciąg. Musisz to zrobić tylko raz:Gdziekolwiek zobaczysz
-Credential
argument w poleceniu PowerShell, oznacza to, że możesz przekazać plikPSCredential
. Więc w twoim przypadku:Możesz potrzebować innej
-Authentication
wartości przełącznika, ponieważ nie znam Twojego środowiska.źródło
ConvertTo-SecureString "password" -AsPlainText -Force
.$password = ConvertTo-SecureString "password" -AsPlainText -Force
Jest inny sposób, ale ...
NIE ROBIĆ TEGO, JEŚLI NIE CHCESZ HASŁA W PLIKU SKRYPTU (przechowywanie haseł w skryptach nie jest dobrym pomysłem, ale niektórzy z nas po prostu lubią wiedzieć, jak to zrobić).
Ok, to było ostrzeżenie, oto kod:
$cred
będzie mieć poświadczenia od Johna Doe z hasłem „ABCDEF”.Alternatywne sposoby przygotowania hasła do użycia:
źródło
Jeśli chodzi o przechowywanie poświadczeń, używam dwóch funkcji (które zwykle znajdują się w module ładowanym z mojego profilu):
I ten:
Używasz tego w ten sposób:
Jeśli plik poświadczeń nie istnieje, za pierwszym razem zostanie wyświetlony monit, w tym momencie będzie przechowywać poświadczenia w zaszyfrowanym ciągu w pliku XML. Przy drugim uruchomieniu tej linii plik xml jest dostępny i zostanie otwarty automatycznie.
źródło
Muszę uruchomić funkcje SCOM 2012 ze zdalnego serwera, który wymaga innego poświadczenia. Unikam haseł w postaci zwykłego tekstu, przekazując dane wyjściowe funkcji deszyfrowania hasła jako dane wejściowe do ConvertTo-SecureString. Dla jasności nie pokazano tego tutaj.
Lubię mocno wpisywać swoje deklaracje. Deklaracja typu dla $ strPass działa poprawnie.
źródło
Oto dwa sposoby, aby to zrobić, jeśli planujesz ponowne uruchomienie.
Najpierw możesz utworzyć zadanie na jednym komputerze, używając poświadczeń, które mają uprawnienia potrzebne do połączenia i ponownego uruchomienia innego komputera. To powoduje, że planista jest odpowiedzialny za bezpieczne przechowywanie poświadczeń. Polecenie ponownego uruchomienia (jestem facetem z Powershell, ale to jest czystsze) to:
SHUTDOWN /r /f /m \\ComputerName
Wiersz poleceń służący do utworzenia zaplanowanego zadania na komputerze lokalnym, aby zdalnie zrestartować inny, wyglądałby następująco:
SCHTASKS /Create /TN "Reboot Server" /TR "shutdown.exe /r /f /m \\ComputerName" /SC ONCE /ST 00:00 /SD "12/24/2012" /RU "domain\username" /RP "password"
Wolę drugi sposób, w którym używasz swoich bieżących poświadczeń do tworzenia zaplanowanego zadania uruchamianego z kontem systemowym na zdalnym komputerze.
SCHTASKS /Create /TN "Reboot Server" /TR "shutdown.exe /r /f" /SC ONCE /ST 00:00 /SD "12/24/2012" /RU SYSTEM /S ComputerName
Działa to również przez GUI, wystarczy wpisać SYSTEM jako nazwę użytkownika, pozostawiając puste pola hasła.
źródło
Zachowaj ostrożność podczas przechowywania haseł w ten sposób ... nie jest to tak bezpieczne, jak ...
źródło
Widziałem jeden przykład, który używa Import / Export-CLIXML.
To są moje ulubione polecenia dotyczące problemu, który próbujesz rozwiązać. Najprostszym sposobem ich użycia jest.
Jeśli więc plik nie istnieje lokalnie, zapyta o poświadczenia i zapisze je. To zajmie
[pscredential]
bezproblemowe obiektu i ukrycie poświadczeń jako bezpieczny ciąg.Na koniec użyj poświadczeń, tak jak zwykle.
Uwaga dotycząca bezpieczeństwa :
Bezpiecznie przechowuj poświadczenia na dysku
Edycja: po prostu ponownie przeczytaj oryginalne pytanie. Powyższe będzie działać tak długo, jak zainicjujesz
[pscredential]
na dysku twardym. To znaczy, jeśli upuścisz to w swoim skrypcie i uruchomisz go, gdy utworzy on ten plik, a następnie uruchomienie skryptu bez nadzoru będzie proste.źródło
Rozwiązanie
Maszyny budujące
W poprzednim kodzie zastąp wartości nazwy użytkownika i hasła tajnymi („ukrytymi w dziennikach”) zmiennymi środowiskowymi maszyny budującej
Wyniki testów wg
i zobaczysz
źródło
dlaczego nie spróbujesz czegoś bardzo prostego?
użyj psexec z poleceniem „shutdown / r / f / t 0” i listą komputerów z CMD.
źródło