Emissione di autorizzazioni? Putty + Plink + Pageant + Powershell + Task pianificato

background

Ho i seguenti componenti:

  • Casella di Windows Server 2008 R2
  • Un conto amministratore (mine)
  • Un account di servizio nel dominio che è un amministratore della casella
  • Un'installazione di Putty (tra cui plink per row di command e Pageant come generazione di chiavi pubbliche ssh)
  • Un file di text per i comandi da utilizzare durante una session SSH
  • Uno script powershell che gestisce plink che utilizza Start-Process per invocare plink con linee di command che lo dicono di utilizzare Ageant per la connessione PuTTy e comandi.txt per il command.
  • Un'attività pianificata che viene eseguita come mio account utente

L'objective

Infine, per get l'esecuzione dell'attività pianificata come account di servizio, che chiama powerhell come account di servizio, che esegue il process e esegue i comandi ssh.

Il problema

  • Quando eseguo questo script da un prompt dei comandi powershell come mio account utente, viene eseguito.
  • Quando eseguo questo script da un'attività pianificata come mio account utente, con le autorizzazioni più alte, e lo dico per salvare le mie credenziali, "non funziona".
  • Con "non funziona", significa che sembra spawn un'istanza di plink.exe, where è where penso che il problema sta accadendo (qualcosa di appeso che non riesco a vedere sulla console).

Le domande

  • Qualcuno ha una soluzione complessiva che è un po 'più elegante ma utilizza gli strumenti stessi o simili?
  • Il mio script powershell invece invoca cmd.exe in modo che possa catturare lo stdout nel mio file di registro alless?

Il copione

Nel caso in cui aiuti:

#Starts the vcenter2 server. #if the server is already started, it will tell you so. #Stop an error from occurring when a transcript is already stopped $ErrorActionPreference="SilentlyContinue" Stop-Transcript | out-null #Reset the error level before starting the transcript $ErrorActionPreference="Continue" Start-Transcript -path C:\Scripts\logs\StartTheVCenter2Server.log -append #Run plink and reference the commands file to start up the server Start-Process "C:\Program Files (x86)\PuTTY\plink.exe" -Argumentlist "-agent -m C:\Scripts\idrac_powerup_commands.txt root@[servernameredacted]" -wait -RedirectStandardOutput "C:\Scripts\logs\plinklog.log" #Clean-up Stop-Transcript 

Pensieri? Probabilmente giocherò con Invoke-Command per vedere se posso farlo ridirezionare l'output nel mio log alless.

Grazie!

  • 2008 R2 TLS 1.2 abilitato nel Registro di sistema, riavviato, ma non funzionante
  • ZFS come alternative in Windows
  • Come posso verificare che gli spedizioni DNS di Windows funzionano?
  • Windows Server in ESXi 100% di CPU a rollover di anno
  • Gli ospiti VM in una networking privata distribuiti su host cluster
  • Come controllare chi reimposta la password per un determinato utente nella directory triggers in un server di Windows?
  • Posso autorizzare il server W2K8 DHCP per la networking privata, anche quando vietato nella networking aziendale?
  • Come impostare la configuration automatica del proxy tramite il server r2 del server di file pac
  • 3 Solutions collect form web for “Emissione di autorizzazioni? Putty + Plink + Pageant + Powershell + Task pianificato”

    La causa generale di plink.exe "appeso" che ho visto sono i prompt per aggiungere la chiave host al Registro di sistema. Penso che la chiave host sia già nel tuo registro. Vorrei aggiungere l'argomento -batch a plink e vedere se si ottiene un fallimento fuori diritto rispetto ad un appendino. Quella dovrebbe iniziare giù il giusto path, alless.

    La tua chiamata Plink sta usando -agent (concorso) per l'authentication, ma non hai esplicitamente avviato il servizio, quindi potrebbe essere il problema, esportre la chiave privata a una password less file chiave e fare riferimento direttamente a una identity framework; -i ), per vedere se è l'authentication che è in colpa. Inoltre, aggiungere temporaneamente un'opzione -v (verbose) e controllare il registro degli events dopo.

    Per quello che vale, ho avuto un problema molto simile – psftp non functionrebbe in uno script che era stato pianificato in Windows 7 per eseguire se l'utente era connesso o no. Nel mio caso, stavo usando una session salvata dalla pagina che si riferiva alla row di command; e poiché il concorso non è in esecuzione nello stesso context dell'operazione pianificata, si bloccherà. Ho risolto il problema utilizzando il flag -i in psftp e facendo riferimento alla posizione della chiave privata nello script stesso.

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.