2013-03-06 16 views
6

ciao,Accesso doppio per copiare i file senza CredSSP

Abbiamo un ambiente di grandi dimensioni con centinaia di macchine virtuali. Durante l'implementazione dei nostri servizi è necessario copiare alcuni file da build drop su tutte queste macchine.

Così, abbiamo: macchina

  • utente, in cui script di distribuzione esecuzione
  • macchina Corporatura goccia, in cui i file sono macchina
  • target

PowerShell è usato come linguaggio di script. Qualcosa di simile:

$buildDrop  = "\\sourceMachine\Build" 
$machineTarget = "targetMachine" 

Invoke-Command -ComputerName $machineTarget -ArgumentList $buildDrop -ScriptBlock { 
    Param($buildDrop) 
    Test-Path $buildDrop # Will return False 
} 

Questo approccio porta a double hop issue, che io non sono in grado di risolvere a causa di funzionalità CredSSP non è supportata su XP e macchine 2k3. E la copia invocata sul computer dell'utente conduce al collo della bottiglia delle prestazioni (i dati viaggiano attraverso la macchina dell'utente).

Esiste un modo per rendere visibile la generazione sempre visibile da tutte le macchine di destinazione? Potrebbe essere in qualche modo aggiungerli alla posizione attendibile o qualcosa del genere?

Grazie in anticipo!

risposta

6

ho trovato la soluzione che funziona nel nostro ambiente.

Non è possibile trasferire le credenziali tramite doppio hop senza Cred-SSP, ma è possibile eseguire qualcosa sul computer di destinazione senza prima cosa.

Il modo più semplice è quello di utilizzare psexec con -s bandiera (gestito processo remoto in account di sistema), stringa finale è stato qualcosa di simile:

psexec \\someHost -s robocopy "\\stagingHost\Staging" "\\someHost\C$\Staging" /MIR 

Inoltre è possibile avviare alcuni script PS in stesso modo, basta assicurarsi che script execution is allowed sulla macchina remota:

psexec \\someHost -s "\\stagingHost\Staging\Script.ps1" SomeArg1 SomeArg2 

Controllare this articolo, per capire come funziona PsExec. Mentre il servizio su alcuniHost

+0

+1. Inoltre, lo stesso effetto può essere ottenuto eseguendo questo lavoro all'interno di un'attività pianificata che viene creata ed eseguita immediatamente sul computer di destinazione. –

1

CredSSP è la soluzione al problema del doppio salto.

Rimuovere il desktop dell'utente dall'equazione. Configurare un build/servizio/applicazione di build & appropriato sul server di build e gestire tutto da lì. Redgate ha un nuovo prodotto che probabilmente vi aiuterà notevolmente con questo, Deployment Manager

+1

Abbiamo una soluzione personalizzata molto complessa con centinaia di casi d'uso, quindi non possiamo passare a qualcos'altro. Credo che ci debba essere una soluzione. Il token dell'account utente non può essere tradotto senza CredSSP. Ok. Ma deve esserci un altro modo. –

+0

Sono d'accordo. Ci deve essere una soluzione migliore.Sto provando i flussi di lavoro di PowerShell con CredSSP e il computer di riavvio smette di funzionare quando si utilizza CredSSP. È un vero peccato che non ci sia una soluzione semplice per questo scenario –

0

Se la macchina si sta utilizzando può arrivare a altre macchine basta copiare i file utilizzando la macchina:

$computers | % {copy '\\servershare\build' "\\$_\c`$\Temp"} 
$sb = {C:\Temp\Dosomething.txt args[0]} 
$computers | % {Invoke-command -comp $_ -scriptBlock $sb -argumentlist $arg} 
+0

Posso copiare i file dalla mia macchina, anche senza metterli in una cartella temporanea, ma in questo caso i dati passeranno dalla macchina di compilazione alla macchina dell'utente, e solo allora a destinazione. Quindi, se la macchina utente viene inserita in un'altra rete locale, ci vorranno ore, quando la copia diretta richiede solo cinque minuti. –