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!

  • Dopo aver rinominato il nome della macchina ancora in grado di ping il vecchio nome macchina?
  • ripristino delle autorizzazioni allo schema AD
  • Esportre tutti gli host di DNS Manager utilizzando Powershell
  • System.Security.AccessControl.PropagationFlags Powershell Utilizzo GUI equivalente?
  • Audit del server file per più tipi di file
  • Cluster failover e strano comportmento arp gratuito
  • Riga di command di Windows 2008 Server R2 / Power Shell Scorrimento lento
  • Scopri quale account è disabilitato UAC
  • 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.