Odpowiedzi:
$^
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-History
zamiast tego (domyślnie jest to ostatnie pełne polecenie w całości).
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 -
.
$^
jest to pierwszy token poprzedniego polecenia. Jeśli skryptu otrzymuję za pomocą kropki,. ./foo.ps1
to$^
jest.
. Oznacza to również, że argumenty nie są zawarte. Robienie czegokolwiek, co przekracza jeden token, nie zadziała w ten sposób.