Esegui PowerShell remoto come amministratore


14

Prima di immergermi nella domanda, ho trovato molte altre domande che sembrano simili alle mie, ma non sono state in grado di risolvere il mio problema. Ecco i link a loro:

Esegui in remoto uno script invocando "Esegui come amministratore"

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

Ora sulla domanda: ho bisogno di eseguire uno script di Windows Update su una macchina remota tramite Powershell. Se eseguo il controllo remoto della macchina tramite mstsc, eseguo Powershell come amministratore ed eseguo lo script di Windows Update, funziona perfettamente. Se eseguo il controllo remoto della macchina tramite mstsc, eseguo Powershell SENZA scegliere l'esecuzione come amministratore ed eseguo lo script, visualizzerò un sacco di errori su questa linea: "Eccezione che chiama" Download "con" 0 "argomento / i:" Eccezione da HRESULT: 0x80240044 ""

Questo succede solo se lo eseguo SENZA privilegi di amministratore.

Lo script che sto eseguendo è questo: http://www.ehow.com/how_8724332_use-powershell-run-windows-updates.html

Ora, quando accedo in remoto alla macchina usando Enter-PSSession e provo ad eseguire lo script, ottengo errori, ma sono un po 'diversi. Sono lungo questa linea: "Eccezione che chiama" CreateUpdateDownloader "con argomenti" 0 ":" Accesso negato. (Eccezione da HRESULT: 0x80070005 (E_ACCESSDENIED)) ""

Sono aperto a suggerimenti su cosa potrebbe causare questo problema, ma penso di averlo capito. Credo che la sessione Powershell debba essere eseguita con privilegi elevati. So come farlo mentre remoto in via mstsc, ma non sono stato in grado di trovare un modo per farlo tramite Enter-PSSession. Ho cercato su Google e su Google, ma non ho trovato nulla. Se qualcuno potesse aiutare a far luce su questo, ciò sarebbe molto apprezzato.


Non sono su una console per testare, ma se si ottiene una sessione etsn remota (Enter-PSSession) è possibile digitare "Start-Process PowerShell –Verb RunAs" e premere Invio. Questo ti dà la richiesta di amministratore? In tal caso, lo cambierò in una risposta che puoi accettare. Altrimenti, proverò quando sarò di nuovo alla mia scrivania.
TheCleaner

Possibile risposta qui serverfault.com/a/474031/23300
Nic

Risposte:


3

Quando si eseguono comandi in remoto, vengono eseguiti con privilegi di amministratore poiché solo gli amministratori possono eseguire comandi in remoto in PowerShell. Errore "Eccezione che chiama" CreateUpdateDownloader "con argomenti" 0 ":" Accesso negato. (Eccezione da HRESULT: 0x80070005 (E_ACCESSDENIED)) "" non è un errore nativo di PowerShell, indica che questa riga non funziona: $ UpdatesDownloader = $ UpdateSession.CreateUpdateDownloader (), questa riga sta tentando di creare l'oggetto updateownloader utilizzando $ UpdateSession = New-Object -ComObject Oggetto Microsoft.Update.Session.

Senza sapere DOVE il downloader cerca di raggiungere, posso solo assumere la nave madre, potrebbe indicare che le credenziali che hai mentre sei connesso in remoto a un server potrebbero essere oggetto di un proxy. Questa è una pratica di sicurezza comune, gli utenti connessi in remoto alle macchine non possono scaricare elementi direttamente da Internet (indipendentemente dalla provenienza della fonte).

Spero che questo aiuti, Chris



2

Per eseguire comandi remoti PowerShell DEVI eseguire come amministratore sulla macchina da cui avvii i comandi, almeno nella configurazione predefinita. Questa è una limitazione documentata del remoting di PowerShell, sebbene sia possibile allentare le impostazioni predefinite se si è determinati, ma ciò comporterà la modifica della configurazione di PowerShell.

Per l'esecuzione remota stai passando credenziali usando il parametro -credentials? per esempio

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

Con Windows 2012 Server e senza un AD configurato, prova a utilizzare "Account Microsoft \ Amministratore" come credenziali e utilizza la password dell'amministratore remoto. L'uso del nome utente completo senza annuncio automatico mi è sempre sembrato una seccatura inutile.
fuero,

1

Per quanto riguarda gli aggiornamenti di Windows sui server remoti, sono stato in grado di farlo funzionare impostando un endpoint JEA sul server remoto per l'esecuzione come account virtuale locale.

Da https://docs.microsoft.com/en-us/powershell/jea/session-configurations :

Account virtuale locale

Se i ruoli supportati da questo endpoint JEA sono tutti utilizzati per gestire il computer locale e un account amministratore locale è sufficiente per eseguire correttamente i comandi, è necessario configurare JEA per utilizzare un account virtuale locale. Gli account virtuali sono account temporanei unici per un utente specifico e durano solo per la durata della sessione di PowerShell. Su un server membro o workstation, gli account virtuali appartengono al gruppo Administrators del computer locale e hanno accesso alla maggior parte delle risorse di sistema. Su un controller di dominio Active Directory, gli account virtuali appartengono al gruppo Domain Admins del dominio.


Questo mi ha aiutato! Grazie per avermi ricordato che JEA è fantastico!
B_Dubb42
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.