로컬 Linux 시스템의 원격 Windows 시스템에서 bash 스크립트를 실행할 계획입니다. 이렇게 하려면 Windows 시스템에 로컬로 로그인한 다음 bash 스크립트를 실행해야 합니다.
우선 이게 가능한가요? 그렇다면 어떻게 해야 합니까?
답변1
이는 Windows 시스템에 Cygwin 및 openssh 서버를 설치하여 수행할 수 있습니다. Cygwin에는 스크립트를 실행할 수 있는 bash가 함께 제공되며, openssh를 Cygwin에 설치하여 Windows 시스템에 원격으로 로그인할 수 있습니다. 로그인하기 전에 scp를 사용하여 스크립트를 Windows 시스템으로 전송한 다음 SSH를 사용하여 직접 실행할 수 있습니다.
openssh는 cygwin 설치 프로그램을 사용하여 설치할 수 있습니다. 자세한 지침은 다음을 참조하세요.http://www.howtogeek.com/howto/41560/how-to-get-ssh-command-line-access-to-windows-7-using-cygwin/
답변2
나는 이것이 사소한 문제라는 @slm에 동의합니다. 실제로 Unix 시스템에 자체 원격 액세스 프로토콜이 포함되어 있는 것처럼 Windows에는 자체 원격 액세스 프로토콜이 포함되어 있습니다. Microsoft Powershell은 Vista에 도입된 이후로 많이 발전했으며 Windows 시스템에서 셸 스크립트가 수행할 것으로 기대하는 작업의 전부는 아니더라도 대부분을 수행할 수 있습니다. 예를 들어,기술 네트워크:
Windows PowerShell 원격 기능은 WS-Management 프로토콜과 Windows에서 WS-Management를 구현하는 WinRM(Windows 원격 관리) 서비스에서 지원됩니다. Windows 7 이상을 실행하는 컴퓨터에는 WinRM 2.0 이상이 포함되어 있습니다. 이전 버전의 Windows를 실행하는 컴퓨터에서는 WinRM 2.0 이상(지원되는 경우)을 설치해야 합니다. 현재 원격 기능은 Windows Vista 서비스 팩 1 이상, Windows 7, Windows Server 2008 및 Windows Server 2008 릴리스 2에서 지원됩니다.
물론 Linux 클라이언트에서 이를 사용하면 몇 가지 문제가 발생할 수 있지만 가상 머신이 이러한 문제 중 대부분 또는 일부만 해결해주기를 바랍니다.netcat
또는ssh
대리인. 호기심에 5분 정도 검색을 해보니 이제 알겠더군요.파쉬 프로젝트, 비록 그 유용성을 주장하지는 않겠습니다.
고쳐 쓰다:
그 가벼운 호기심을 다시 한 번 충족시키는 과정에서 나는 다시 한 번Pash sourceforge page
그리고 조금 찾아보았습니다. 이 작업을 수행하면서 관련 내용을 발견했습니다.추천상품포함할 뿐만 아니라winexe
@slm이 추천했지만, 제가 들어본 적이 없는 또 다른 이름은 다음과 같습니다.win-bash
. 설명에서:
남들과 다르다
bash
Windows 포트(예:cygwin bash
), 이것win-bash
특별한 환경이나 DLL이 필요하지 않습니다.가지다바이너리 파일이 하나뿐입니다.그게 다야.목표
win-bash
이 프로젝트는 Windows 이식을 완료하는 것입니다.완벽한 기능을 제공합니다bash.exe
Windows NT 및 그 파생물용 바이너리.win-bash
입력 쉘로 사용될 수 있을 뿐만 아니라UN*X 쉘 스크립트 실행을 위한 인터프리터.
위에서 이 문제에 대해 중요하다고 생각하는 것은 독립형 특성입니다. 라이브러리 또는 레지스트리 종속성이 없는 경우 Windows 실행 파일일 수 있습니다.원격 실행- 예를 들어 파일 공유에서 - 설치가 필요하지 않습니다. 따라서 기본 Windows 프로토콜을 사용하여(아마도 Windows 프로토콜을 사용하거나 포함하여) 컴퓨터에 원격으로 액세스할 수 있다고 생각할 수 있습니다.winexe
),달리다powershell
또는net use
쉘 스크립트를 실행하여 파일 공유를 매핑하는 명령win-bash,
그런 다음 공유 매핑을 해제하고 연결을 종료합니다.개별 파일을 복사할 필요도 없습니다.원격 호스트에.
나는 그것이 가능하다고 말하지만,효과적인가요?모르겠어요. 알아낼 수도 있겠지만요.
나는 현상 유지를 좋아한다윈 페이내 시스템의 이미지EFI사용할 수 있도록 파티션을 나눈다.rEFInd
(그리고 부팅도 가능합니다. 감사합니다iPXE
하나 또는 두 개를 깨뜨립니다.) 지금까지는 기본 Windows 설치가 시작되지 않도록 사용자 정의하고 켜짐으로 설정했습니다.cmd
상담원의 프롬프트netcat,
왜냐하면cygwin
나에게 그것은 보상이 거의 없는 잡일처럼 보였지만 이제는 이전에 가벼운 호기심이 커지고 있으므로... 내 경험을 보고서에 추가한 후 리뷰를 가지고 돌아올 수 있습니다.입다영상.
업데이트 종료
@slm이 언급됨winexe
, 지금은 관심이 있지만 이전에는 들어본 적이 없습니다. 그는 또한 언급했다wmic
여러분이 사용할 수 있는 도구로서 이것은 나 자신도 많이 사용하는 도구입니다. 이는 SQL과 유사한 구문을 사용하여 레지스트리 백엔드에 대한 매우 강력한 액세스를 제공합니다.
당신이 처형하고 싶은지 알아요.cmd
특정 규칙을 기반으로 하는 스크립트는 Windows 작업 관리자 및 Windows 그룹 정책에서 사용할 수 있으며, 이 두 가지 모두에 어느 정도 영향을 미칠 수 있다고 생각합니다.wmic.
한 운영 체제에서 다른 운영 체제로 코드를 이식하는 일이 원하는 만큼 자주 발생하지 않는 데는 이유가 있다는 말로 마무리하겠습니다. 본질적으로 문제가 있기 때문입니다. 서로 다른 운영 체제는 서로 다르기 때문에 다르게 동작합니다.ssh
예를 들어, 적어도 내 경험상 Windows의 계층적 권한은 처리할 수 없으며 시스템 수준 액세스가 필요하거나 전혀 작동하지 않지만,netcat
내가 실행 중인 사용자 계정의 권한 수준을 수락하는 것 같습니다. 위에서 언급했듯이 Powershell은 기본적으로 모든 것을 개체로 처리하기 때문에 Unix 환경에서 사용했던 것처럼 문자열을 구문 분석하는 데 사용되는 경우 매우 지루한 도구가 될 수 있습니다. 행운을 빌어요.
답변3
이를 사용하여 ssh
원격 SSH 서버에 액세스하고 명령을 실행합니다.
예를 들어
ssh [email protected] command
Windows 컴퓨터를 SSH 서버로 설정하는 방법이 궁금하다면 Windows 포럼 질문입니다. 그러나 모든 사람들의 조언은 cygwin을 사용하고 SSH를 여는 것이 좋은 생각이라는 것입니다.
답변4
아마도 Bash 스크립트에서 사용하기 위해 Cygwin을 사용하지 말라고 설득하고 싶습니다. 어쨌든 스크립트는 Cygwin + Windows 위에서 실행될 수 있도록 고도로 사용자 정의되어야 할 것입니다. 이거 많이 닮은 것 같아XY 문제.
대신 Windows 기본 스크립팅 언어로 작성된 스크립트 실행을 지시하는 것이 더 좋습니다. Windows에는 다양한 옵션이 있으며 .cmd
간단한 파일부터 VB 스크립트까지 무엇이든 사용할 수 있습니다.
그런 다음 다음 명령을 사용하여 Linux 시스템에서 이러한 솔루션을 실행할 수 있습니다.winexe
, 스크립트에 액세스할 수 있는지 확인하는 것 외에는 Windows 시스템에 아무것도 설치할 필요가 없습니다.
예
$ winexe -U "<user>%<pwd>" //192.168.1.2 'wmic bios get serialnumber'
$ winexe -U "<user>%<pwd>" //192.168.1.2 'C:\path\to\script.cmd'