Trudno mi znaleźć rozwiązanie polegające na rozszerzeniu frameworka zaprojektowanego dla komputerów * nix na Windows. Framework działa obecnie z jednego serwera * nix i ssh wychodzi na inne serwery * nix i wykonuje kilka różnych poleceń, takich jak sprawdzanie plików dziennika, synchronizowanie plików z kontroli źródła, przekazywanie dzienników z powrotem do kontroli źródła itp. utknąłem, jak połączyć się ze zdalnymi komputerami z systemem Windows i uzyskać dostęp do wiersza poleceń. Połączenie może pochodzić również z innego komputera z systemem Windows, nie musi zaczynać się od komputera z systemem UNIX, może przechodzić z systemu Windows do Windows zamiast z systemu UNIX do Windows.
Oto przykład, w jaki sposób polecenia są obecnie uruchamiane w systemach uniksowych. Coś takiego znajduje się w pętli, która przechodzi przez listę nazw serwerów. Potrzebuję coś takiego do uruchomienia na komputerach z systemem Windows.
ssh ${user}@${server} "cd /app/app_name/logs; <export source control params>; <submit logs to source control>" >> Log.txt
Ponadto wolałbym nie używać narzędzia innej firmy (mój budżet wynosi około 0 USD). Sprawdziłem PsExec i kilka innych, ale wygląda na to, że potrzebujesz dostępu administratora lub musisz przekazać użytkowników / przekazać zwykłym tekstem.
Odpowiedzi:
Użyj Powershell Remoting: https://msdn.microsoft.com/en-us/powershell/scripting/core-powershell/running-remote-commands
Bezwstydnie wklejone:
źródło
Wypróbuj tunnellier od Bitvise. To jest klient ssh. Istnieje również serwer ssh do łączenia się z komputerem z systemem Windows. Oba umożliwiają nawiązanie bardzo bezpiecznych połączeń wraz z bardziej zaawansowanymi rzeczami, takimi jak serwer proxy sieci Web lub tunelowanie portów.
źródło
Zainstaluj port OpenSSH dla Windows - jest bezpłatny i zapewnia zarówno klienta, jak i serwer.
źródło
Możesz spróbować psexec, który daje zdalną powłokę nad usługą udostępniania plików (lub jak się to nazywa). Istnieje również winexe, jeśli chcesz używać Linuksa jako klienta.
źródło
Naprawdę podoba mi się pomysł PowerShell, chociaż konfiguracja może potrwać kilka minut na serwerze i kliencie.
Oprócz pełnej odpowiedzi Shanteva, która sugeruje użycie PowerShell, powinieneś również rzucić okiem na Tutaj na stronie howtogeek, w jaki sposób faktycznie włączyć (i Zezwól) na zdalne połączenie z serwerem PowerShell. Na serwerze jest wymagana niewielka konfiguracja.
Dwie ważne rzeczy, które musisz zrobić: (Nie muszę wspominać, że musisz wykonać każdą konfigurację „jako administrator”, prawda? Wystarczy otworzyć PowerShell / cmd „Jako administrator”)
Na komputerze serwera otwórz PowerShell i uruchom:
Można to zrobić również w inny sposób. Możesz otworzyć wiersz polecenia i uruchomić:
Może być o wiele więcej konfiguracji do zmiany. Na razie nie ma takiej potrzeby.
Jeśli oba komputery znajdują się w tej samej „domenie” (grupie komputerów, do których wszyscy mają przypisane inne reguły i role), procedura wydaje się prosta (nie próbowałem tego).
ALE, ponieważ prawdopodobnie chcesz uzyskać dostęp do serwera przez Internet (technicznie nazywany siecią WAN), istnieją pewne komplikacje i musisz zmienić konfigurację, aby umożliwić połączenie ze zdalnym serwerem. Na komputerze KLIENTA włącz usługę WINRM. Procedura jest podobna do tej, którą zrobiliśmy dla serwera powyżej. Po prostu uruchom polecenie:
(Znowu warte uwagi! Niektóre odniesienia mówią, że komputer kliencki i serwer musi znajdować się w sieci „prywatnej”, inaczej wszystko nie będzie działać. Otrzymuję komunikaty o błędach po uruchomieniu powyższego polecenia, ale wszystko działa Nie jestem tego pewien. Sprawdź wyżej wspomnianą stronę internetową).
Następnie uruchom na komputerze KLIENTA w PowerShell:
Co oznacza, że klient będzie ufał wszystkim serwerom (hostom). Na koniec uruchom to ( ponownie podkreślam na KLIENCIE ):
Jesteś gotowy do pracy. Sprawdź resztę odpowiedzi Shantevy. Na komputerze KLIENTA uruchom na przykład:
Poprosi o hasło i otworzy się zdalna konsola, która wygląda następująco:
Następnie po prostu wprowadź polecenia takie jak w przypadku SSH.
źródło