Uruchom zdalny PowerShell jako administrator


14

Zanim zagłębiłem się w to pytanie, znalazłem kilka innych pytań, które wydają się podobne do moich, ale nie były w stanie rozwiązać mojego problemu. Oto linki do nich:

Zdalnie uruchom skrypt wywołujący „Uruchom jako administrator”

/programming/10724591/how-to-remote-execute-an-elevated-remote-script-in-powershell

Teraz pytanie: muszę uruchomić skrypt Windows Update na zdalnym komputerze za pomocą programu Powershell. Jeśli zdalnie połączę się z maszyną za pośrednictwem mstsc, uruchom Powershell jako administrator i uruchom skrypt Windows Update, wszystko działa poprawnie. Jeśli zdalnie połączę się z maszyną za pomocą mstsc, uruchom Powershell BEZ wyboru uruchomienia jako administrator i uruchom skrypt, otrzymam kilka błędów wzdłuż tego wiersza: „Wyjątek wywołuje„ Pobierz ”z argumentami„ 0 ”:„ Wyjątek od HRESULT: 0x80240044 „”

Dzieje się tak tylko wtedy, gdy uruchomię go BEZ uprawnień administratora.

Skrypt, który uruchamiam jest następujący: http://www.ehow.com/how_8724332_use-powershell-run-windows-updates.html

Teraz, gdy zdalnie uruchamiam komputer za pomocą Enter-PSSession i próbuję uruchomić skrypt, dostaję błędy, ale są one nieco inne. Są wzdłuż tej linii: „Wyjątek wywołuje„ CreateUpdateDownloader ”z argumentami„ 0 ”:„ Odmowa dostępu. (Wyjątek od HRESULT: 0x80070005 (E_ACCESSDENIED)) „”

Jestem otwarty na sugestie dotyczące tego, co może być przyczyną tego problemu, ale myślę, że już to zrozumiałem. Uważam, że sesję PowerShell należy uruchamiać z podwyższonymi uprawnieniami. Wiem, jak to zrobić, gdy jestem zdalnie za pośrednictwem mstsc, ale nie byłem w stanie znaleźć sposobu, aby to zrobić za pomocą Enter-PSSession. Googlowałem i googlowałem, ale niczego nie znalazłem. Byłoby to bardzo mile widziane, gdyby ktokolwiek mógł pomóc rzucić nieco światła na to.


Nie testuję konsoli, ale jeśli otrzymasz zdalną sesję etsn (Enter-PSSession), możesz wpisać „Start-Process PowerShell –Verb RunAs” i nacisnąć Enter. Czy to wyświetla monit dla administratora? Jeśli tak, zmienię to na odpowiedź, którą możesz zaakceptować. Jeśli nie, przetestuję, kiedy wrócę do swojego biurka.
TheCleaner 30.01.2013

Możliwa odpowiedź tutaj serverfault.com/a/474031/23300
Nic.

Odpowiedzi:


3

Podczas wykonywania poleceń zdalnie są one uruchamiane z uprawnieniami administracyjnymi, ponieważ tylko administratorzy mogą zdalnie wykonywać polecenia w programie PowerShell. Błąd „Wyjątek wywołujący” CreateUpdateDownloader ”z argumentami„ 0 ”:„ Odmowa dostępu. (Wyjątek od HRESULT: 0x80070005 (E_ACCESSDENIED)) „” nie jest rodzimym błędem powłoki PowerShell, wskazuje, że ten wiersz nie działa: $ UpdatesDownloader = $ UpdateSession.CreateUpdateDownloader (), ten wiersz próbuje utworzyć obiekt updatedownloader za pomocą $ UpdateSession = Nowy obiekt -ComObject Obiekt Microsoft.Update.Session.

Nie wiedząc, GDZIE osoba pobierająca próbuje się skontaktować, mogę jedynie założyć statek-matka, może to wskazywać, że dane uwierzytelniające, które masz, gdy jesteś zdalnie podłączony do serwera, mogą być przedmiotem proxy. Jest to powszechna praktyka bezpieczeństwa, użytkownicy zdalnie podłączeni do maszyn nie mogą pobierać elementów bezpośrednio z Internetu (bez względu na to, jak zaufane jest źródło).

Mam nadzieję, że to pomaga, Chris



2

Aby uruchomić zdalne polecenia PowerShell, musisz uruchomić jako administrator na komputerze, z którego uruchamiasz polecenia, przynajmniej w konfiguracji od razu po wyjęciu z pudełka. Jest to udokumentowane ograniczenie zdalnego przenoszenia programu PowerShell, chociaż można je rozluźnić, jeśli zostaniesz określony, ale będzie to wymagało wprowadzenia zmian w konfiguracji programu PowerShell.

Czy do zdalnego wykonywania przekazujesz poświadczenia za pomocą parametru -credentials? na przykład

Enter-PSSession -Credential(Get-Credential) -ComputerName <remotehost>

W systemie Windows 2012 Server i bez konfiguracji AD spróbuj użyć „MicrosoftAccount \ Administrator” jako poświadczeń i użyj hasła zdalnego administratora. Używanie w pełni kwalifikowanej nazwy użytkownika bez reklam zawsze wydawało mi się niepotrzebnym kłopotem.
fuero

1

Jeśli chodzi o aktualizacje systemu Windows na zdalnych serwerach, udało mi się go uruchomić, konfigurując punkt końcowy JEA na zdalnym serwerze, aby działał jako lokalne konto wirtualne.

Od https://docs.microsoft.com/en-us/powershell/scripting/learn/remoting/jea/session-configurations :

Lokalne konto wirtualne

Jeśli wszystkie role obsługiwane przez ten punkt końcowy JEA są używane do zarządzania komputerem lokalnym, a konto administratora lokalnego wystarcza do pomyślnego uruchomienia poleceń, należy skonfigurować JEA do korzystania z lokalnego konta wirtualnego. Konta wirtualne to konta tymczasowe, które są unikalne dla konkretnego użytkownika i trwają tylko przez czas trwania ich sesji PowerShell. Na serwerze członkowskim lub stacji roboczej konta wirtualne należą do grupy Administratorzy komputera lokalnego i mają dostęp do większości zasobów systemowych. Na kontrolerze domeny Active Directory konta wirtualne należą do grupy Administratorzy domeny.

Szybka poprawka¹:

(1.) Utwórz nową nieograniczoną (i trwałą!) Konfigurację sesji na komputerze B (serwer zdalny):

New-PSSessionConfigurationFile -RunAsVirtualAccount -Path .\VirtualAccount.pssc
# Note this will restart the WinRM service:
Register-PSSessionConfiguration -Name 'VirtualAccount' [-ShowSecurityDescriptorUI] -Path .\VirtualAccount.pssc -Force
# Check the Permission property:
Get-PSSessionConfiguration -Name 'VirtualAccount'
# Those users will have full unrestricted access to the system!

(2.) Z ComputerA (lokalny klient) połącz się z naszą nieograniczoną konfiguracją sesji na ComputerB:

New-PSSession -ComputerName 'ComputerB' -ConfigurationName 'VirtualAccount' | Enter-PSSession
[ComputerB]: new-object -com "Microsoft.Update.Downloader" # Yay!

¹ skopiowane z /programming//a/60046097/1322112


To mi pomogło! Dzięki za przypomnienie mi, że JEA jest świetna!
B_Dubb42
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.