2013-03-06 59 views
6

Witaj,Podwójny dostęp do kopiowania plików bez usługi CredSSP

Mamy duże środowisko z setkami wirtualnych maszyn. Podczas wdrażania naszych usług musimy skopiować niektóre pliki z dropu kompilacji na wszystkie te komputery.

Więc mamy: maszyny

  • użytkownika, gdzie skrypty wdrażania wykonującemu
  • maszynę Budowa drop, gdzie pliki są
  • docelowa maszyna

PowerShell jest używany jako język skryptowy. Coś jak:

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

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

To podejście prowadzi do double hop issue, których nie jestem w stanie rozwiązać ze względu na cechę CredSSP nie jest obsługiwana w XP i maszyn 2K3. Kopiowanie wywołane na komputerze użytkownika prowadzi do szyjki butelki wydajności (dane przechodzą przez maszynę użytkownika).

Czy jest jakiś sposób, aby spadek kompilacji był zawsze widoczny ze wszystkich maszyn docelowych? Może w jakiś sposób dodać je do zaufanej lokalizacji lub coś w tym stylu?

Z góry dziękuję!

Odpowiedz

6

znalazłem rozwiązanie który działa w naszym środowisku.

Nie można przenosić danych uwierzytelniających przez podwójny skok bez Cred-SSP, ale można uruchomić coś na maszynie docelowej bez pierwszego przeskoku.

Najprostszym sposobem jest użycie psexec z -s flagi (uruchomić zdalny proces w rachunku System), końcowy ciąg było coś takiego:

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

Ponadto można uruchomić jakiś skrypt PS w taki sam sposób, wystarczy upewnić się, że script execution is allowed na zdalnym komputerze:

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

Sprawdź this artykuł, aby zrozumieć, jak działa PsExec. Podczas gdy usługa na niektóreHost

+0

+1. Ten sam efekt można osiągnąć, wykonując tę ​​pracę wewnątrz zaplanowanego zadania, które tworzysz i uruchamiasz natychmiast na maszynie docelowej. –

1

CredSSP to rozwiązanie problemu z podwójnym hopem.

Usuń pulpit użytkownika z równania. Skonfiguruj prawidłową wersję serwera/usługi/aplikacji do wdrażania na swoim serwerze budowania i zarządzaj tym wszystkim. RedGate ma nowy produkt, który będzie prawdopodobnie pomóc w znacznym stopniu z tego, Deployment Manager

+1

Mamy bardzo złożone niestandardowe rozwiązanie z setkami przypadków użycia, więc nie możemy przejść do czegoś innego. Uważam, że musi istnieć rozwiązanie. Token konta użytkownika nie może być przetłumaczony bez CredSSP. Ok. Ale musi być inny sposób. –

+0

Zgadzam się. Musi być lepsze rozwiązanie.Próbuję przepływu pracy PowerShell za pomocą CredSSP i Restart - Komputer przestaje działać, gdy używany jest CredSSP. To wstyd, że nie ma prostego rozwiązania dla tego scenariusza. –

0

Jeżeli urządzenie używasz może dostać się do innych maszyn wystarczy skopiować pliki za pomocą urządzenia:

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

Mogę kopiować pliki z mojego komputera, nawet bez umieszczania ich w folderze tymczasowym, ale w tym przypadku dane będą przesyłane z komputera typu drop na maszynę użytkownika, a dopiero potem do miejsca przeznaczenia. Więc jeśli maszyna użytkownika umieszczona w innej sieci lokalnej zajmie kilka godzin, kiedy bezpośrednia kopia zajmie tylko pięć minut. –

Powiązane problemy