Sudo !! odpowiednik w PowerShell

Odpowiedzi:

13

$^ jest zmienną, która rozwija się do ostatnio wykonanej komendy Powershell.

Możesz uruchomić polecenie za pomocą innego użytkownika runas, więc następujące działania:

runas /user:domain\administrator $^

Aby to nieco skrócić, możesz użyć magii z aliasami. Aby uzyskać więcej informacji, zapoznaj się z tym artykułem Technet .

EDYCJA: Jedno zastrzeżenie - $^wykonuje tylko pierwsze polecenie w potoku lub w linii z wieloma poleceniami. Jeśli chcesz powtórzyć całe polecenie z potokami lub średnikami, użyj Invoke-Historyzamiast tego (domyślnie jest to ostatnie pełne polecenie w całości).

Hippy
źródło
3
W rzeczywistości $^jest to pierwszy token poprzedniego polecenia. Jeśli skryptu otrzymuję za pomocą kropki, . ./foo.ps1to $^jest .. Oznacza to również, że argumenty nie są zawarte. Robienie czegokolwiek, co przekracza jeden token, nie zadziała w ten sposób.
Joey
ok, czy po tym pyta o hasło? Staram się unikać osadzania hasła w postaci zwykłego tekstu w moim skrypcie.
Starszy inżynier systemów
Tak. O ile nie uruchomisz skryptu jako administrator, musisz podać dane uwierzytelniające, aby zrobić wszystko, co wymaga uprawnień administratora. Możesz poszukać czegoś takiego jak Kixtart, aby tokenizować osadzone hasło
Hyppy
0

Zawsze myślałem o JEA (Just Enough Administration) jako próbie przybliżenia niektórych funkcji sudo. Możesz przeczytać o tym tutaj:

https://docs.microsoft.com/en-us/powershell/jea/overview

Różni się tym, że używa zdalnego sterowania PS, a nie aplikacji na komputerze lokalnym. To może być dość istotna różnica, wystarczająca, aby odepchnąć ją zbyt daleko od sudo.

Przechodzenie na konto Kontroli konta użytkownika, używanie run lub czegoś innego, tak naprawdę nie pasuje mi. To bardziej jak paralela su -.

Chris Dent
źródło
1
We're sorry, the page you requested cannot be found.. Wygląda na to , że już tu jestem.
GnP