Użycie PSexec do uruchomienia sesji PowerShell jako systemu z określonymi atrybutami okna

-1

Próbuję uruchomić sesję PowerShell za pomocą PSexec z alternatywnymi kolorami i niektórymi atrybutami okna. Powodem, dla którego musiałbym uruchomić PowerShell za pośrednictwem PSExec, jest to, że mogę mieć gotowy skrót jednym kliknięciem, aby uruchomić okno terminala w kontekście systemu lokalnego. Ma to sens codziennego testowania skryptów i kodu w pakietach MDT / SCCM. Wydaje się to bezcelowe, ale mam wiele otwartych okien poleceń, więc trudno mi rozróżnić, które okna terminali działają jako system, użytkownik, lokalny administrator itp. Kolory ułatwiłyby natychmiastowe zauważenie tej różnicy .

Do tej pory próbuję tego, ale eksplorator ulega awarii po uruchomieniu:

C:\SysinternalsSuite\psexec.exe /i /s "PowerShell.exe -NoExit -Command "& $HOST.UI.RawUI.ForeGroundColor = cyan"

Mogę dobrze uruchomić PowerShell, tak jak to:

C:\SysinternalsSuite\psexec.exe /i /s powershell.exe

Jestem pewien, że ma to coś wspólnego ze sposobem analizowania cytatów.

Montag
źródło
Prawdopodobnie mógłbym powiedzieć PSExec, aby uruchomił skrypt jako system, który również zdefiniowałby atrybuty okna, ale nie jestem pewien, co byłoby łatwiejsze.
mont
3
Twoja ścieżka / cytaty nie wyglądają dobrze. Czy otrzymujesz jakieś komunikaty o błędach, które możesz udostępnić?
Tim Ferrill,
Wiem, że ścieżka jest właściwa. W tym przypadku tak naprawdę nie ma znaczenia cytowanie w ścieżce, ale w przypadku folderu takiego jak Program Files będziesz go potrzebować. Zaktualizuję moje pytanie, aby trochę rozwinąć.
mont
Co się dzieje? Czy uruchamia Powershell z niewłaściwą czcionką koloru? Zwrócić błąd? Jaki jest problem?
Spamwich,

Odpowiedzi:

1

Rozgryzłem to. Oto co zrobiłem:

1) Utworzono 2 pliki nietoperzy w folderze o nazwie C: \ Launchers - jeden do uruchamiania CMD jako systemu, a drugi do PS

2) Pobrałem najnowszą wersję SysinternalsSuite i umieściłem folder w C: \

3) Przypiąłem skrót do paska zadań, a następnie wykonałem następujące czynności: A) ustawiłem pole „Cel:” na: C: \ Windows \ System32 \ cmd.exe / C "C: \ Launchers \ Launch_PS_As_Sys.bat" B) ustaw pole „Rozpocznij w:” na „C: \ Launchers”. C) kliknął „Zaawansowane” i zaznaczył „Uruchom jako administrator”

Plik nietoperza zawiera następujący wiersz dla programu uruchamiającego PowerShell System:

C:\SysinternalsSuite\psexec.exe /dis powershell.exe -NoExit -Command "& {cd C:\Users\<yourusername>\Desktop; $HOST.UI.RawUI.ForeGroundColor='Cyan'}"

I ta linia dla CMD Monit:

C:\SysinternalsSuite\psexec.exe /dis cmd.exe /k "cd C:\Users\<yourusername>\Desktop & Color 0A"

Okazuje się, że sposób, w jaki cytaty .bat i / lub PSExec w jakiś sposób są ze sobą sprzeczne, dlatego musisz używać pojedynczych cudzysłowów zamiast podwójnych. Prawdopodobnie mój błąd. W każdym razie mam nadzieję, że ktoś uzna to za przydatne.

Montag
źródło
1

Dwie rzeczy:

  1. Możesz użyć profili PowerShell, aby dostosować powłokę
  2. Możesz po prostu zmienić właściwości powłoki (kolor, rozmiar czcionki, bufor) - w końcu pozostają

Oba działają bez konieczności korzystania z zewnętrznych narzędzi, takich jak psexec.

Twoje podejście jest zbyt skomplikowane. Po prostu utwórz skrót do programu Powershell, a następnie otwórz właściwości łącza i ustaw wartość „Rozpocznij w” w katalogu, w którym chcesz uruchomić program Powershell, i dostosuj kolory powłoki za pomocą karty kolorów. To samo działa z cmd.exe.

megamorf
źródło
Przeformułowałem to pytanie, aby lepiej odzwierciedlić to, co próbowałem zrobić. Przepraszamy za zamieszanie
mont