Linux 터미널에서 Windows Powershell 관리


31

Windows Server 2012 서버를 관리합니다. 커맨드 라인을 통해 이러한 서버를 관리하는 PowerShell을 배우고 있습니다. 내 워크 스테이션은 Ubuntu를 실행하며 일반적으로 SSH를 통해 연결하여 Linux 서버를 관리합니다.

Linux의 SSH 액세스와 같은 명령 줄을 통해 Linux 워크 스테이션의 Windows Server에서 Windows PowerShell을 사용할 수있는 방법이 있습니까?


powershell을 기본 쉘로 사용하여 Windows 용 SSH 서버를 제공하는 타사 제품이 있습니다. 예 : powershellserver.com
Zoredache

6
개인적으로 저는 Windows (가상) 시스템에서 Windows를, Linux 시스템에서 Linux를 관리하는 것을 선호합니다. 이것은 내 정신의 남은 것을 보존하는 데 도움이되는 것 같습니다.
Michael Hampton

달성하려는 것을 얻었지만 한 Windows 호스트에서 powershell 명령을 실행할 수있는 한 해당 PS 세션에서 다른 호스트를 관리 할 수 ​​없었습니까?
Andy

@ 앤디-정확히 내 요점.
mfinni

Pash 프로젝트 ( github.com/Pash-Project/Pash )에 관심이 있습니다. Linux에서 PowerShell을 다시 구현하려고합니다. 나는 지금은 원격으로 종료 명령을 실행할 수 있는지 확인하기 위해 라즈베리 파이 컴퓨터에서 컴파일하려고
USR-로컬 ΕΨΗΕΛΩΝ

답변:


15

일부 옵션 :

  1. Windows 시스템에 SSH 서버 설치, SSH 입력, Windows 상자에서 Powershell 실행
  2. Linux에서 RDP 클라이언트 실행, RDP 입력, Windows 상자에서 Powershell 실행
  3. Powershell 웹 액세스를 사용하고, 브라우저로 POSH WA 게이트웨이 서버를 누르고, 브라우저를 통해 Powershell을 실행하십시오.

http://technet.microsoft.com/en-us/library/hh831611.aspx

Linux 용 POSH 실행 파일에 대해 잘 모르므로 Linux의 쉘에서 직접 POSH 명령을 실행할 수 없습니다. 먼저 RDP, 원격 콘솔 (DRAC, iLO), SSH, 또는 POSH 웹 액세스.

/ Edit- 옵션이있는 것 같습니다. http://sharpcodenotes.blogspot.com/2014/01/running-powershell-commands-from-linux.html

OpenWSMan이 원하는 것을 수행하도록 시도 할 수는 있지만 올바른 Powershell 명령을 발행하기보다는 URL 요청과 같은 모든 명령을 작성해야한다고 생각합니다. 실제로 Linux 용 Powershell은 없습니다. 모든 Windows 시스템에 WinRB ruby ​​gem을 설치 한 다음 Linux 상자에서 Ruby 코드를 실행하여 Powershell 명령을 호출 할 수 있습니다.

두 경우 모두 탭 완성, 도움말 등과 같은 대화식 Powershell 환경을 얻는 것처럼 보이지 않습니다. 이들은 스크립트 또는 단일 명령을 실행하는 것으로 보이며, 오류 또는 기타 피드백을 캡처해야 할 것입니다 스스로. Linux에서 일류 솔루션을 얻지 못할 것입니다.

/ 편집 다시-예, MSDN는 이것이 추악하고 성가신 경향이 있다고 말합니다 . 그가 제공하는 간단하고 효과적인 솔루션조차도 재미없는 것처럼 보입니다.

Powershell 원격 기능은 WS-Management를 기반으로 구축되었지만 실제로는 프로토콜 내 프로토콜이며 PSRP (Powershell Remoting Protocol)와 직접 상호 작용하려면 본질적으로 클라이언트에서 Powershell 복제가 필요합니다.


이것은 작업을 수행 할 수 있지만 모든 Windows Server에 SSH 서버를 설치해야합니다. 내가 아는 한 PowerShel은 공개 표준 인 WS-Management를 사용합니다. 이런 종류의 연결을 만드는 Linux 클라이언트가 있습니까?
Ederson

2
아닙니다. Windows 상자에 쉘이 있으면 (다른 Windows 상자와 동일한 도메인에 있다고 가정) Powershell Remoting을 사용할 수 있습니다. 또는 DSC, Desired State Config를 사용할 수 있습니다. 또는 단일 서버에서 작동하지 않지만 사용 가능한 DC 또는 CAS 서버를 사용하여 디렉토리에 연결하는 AD 또는 MS Exchange와 같은 작업을 수행하고있을 수 있습니다.
mfinni

2
Once you have a shell on a Windows box you can use Powershell Remoting.-이 경우 2 홉 인증 문제가 거의 확실하게 발생합니다. 거의 확실하게 CredSSP 인증을 사용해야합니다.
Zoredache

처음 두 가지 방법 중 하나를 추구하면이 문제가 발생합니까? 나는 (당신이 RDP를 사용 하여이 문제가 없다는 것을 알고 있습니다.)
mfinni

1
참고로 Pash ( github.com/Pash-Project/Pash )는 어느 시점에서이 기능을 사용할 가능성이 있지만 앞으로는 훨씬 멀어 질 것입니다. 그들은 여전히 ​​현재 PowerShell의 기본 사항을 구현하려고합니다.
supercheetah


4

예, 두 가지 옵션이 있습니다.

  1. Windows 및 구성 설정에서 PowerShell에 대한 SSHd 서버를 설치할 수 있습니다.

    이를 위해 SSHd 설치 및 PowerShell 경로 구성에 대한 학습서를 사용할 수 있습니다 .

    한마디로 :

    1. freeSSHd 설치
    2. 새 사용자 계정 추가 및 SSH 액세스 허용
    3. Windows 방화벽에서 SSH 포트 활성화
    4. PowerShell.exe의 경로 구성
  2. PowerShell 웹 액세스 (Win Server 2012 R2 만 해당)

    Technet에 대한 하나의 자습서 ( blogs.technet.com/b/canitpro/archive/2013/11/14/step-by-step-deploy-powershell-web-access.aspx)가 있습니다.


이것은 일을 할 수 있지만 모든 Windows Server에서 SSH 서버를 설치하고 구성해야합니다. 내가 아는 한 PowerShell은 공개 표준 인 WS-Management를 사용합니다. 이런 종류의 연결을 만드는 Linux 클라이언트가 있습니까?
Ederson

링크가 포함 된 하나의 옵션을 추가했습니다. 2012 R2가 가능하면 도움이 될 수 있습니다. 그러나 여전히 "내장"된 것은 아니며 클라이언트와도 다릅니다. 브라우저를 통해 액세스합니다.
zorbon.cz

3

우분투 14.04 LTS에서 테스트

winexe를 다운로드하여 설치하십시오.

wget https://passing-the-hash.googlecode.com/files/winexePTH1.1.0-1.deb

dpkg -i winexePTH1.1.0-1.deb

기본 사용법

winexe -U DOMAIN/USERNAME%PASSWORD //MACHINEIP "cmd.exe"

예로서:

echo -ne '\n' | winexe -U DOMAIN/USERNAME%PASSWORD //IP 'powershell.exe -command "Get-Process | Select-Object Name, ProcessName"' | sort -u

2
이 답변을 설명하기 위해 더 자세한 내용을 추가하십시오 ...
Pierre.Vriens

2

https://github.com/PowerShell/Win32-OpenSSH에서 직접 또는 Chocolatey https://chocolatey.org를 통해 또는 Boxstarter (초콜렛 아래에서 Chocolatey를 사용함) https : //를 통해 더 빨리 win32-openSSH를 설치할 수도 있습니다 . boxstarter.org (빠른 설치 https://boxstarter.org/packages/nr/win32-openssh ).

약간의 설정이 필요하지만 PowerShell을 수행하는 Microsoft 직원이 유지 관리하는 기본 (예, 실제!) win32 포트입니다.

그렇지 않으면 누군가 언급했듯이 Linux에 WinRM gem을 설치하고 WinRM 프로토콜을 통해 약간의 연결을 얻을 수 있지만 PSSession을 시작하는 것만 큼 좋지는 않습니다.

또한 WinRM gem (WinRb)의 배후에있는 사람들은 WinRM을 통해 PowerShell을 터널링하여 업로드에 더 많은 기능을 제공하고 다른 작업에도 더 빠른 기본 PowerShell 상호 작용을 구현하려고합니다. 이 블로그 게시물을 참조하십시오 http://www.hurryupandwait.io/blog/a-look-under-the-hood-at-powershell-remoting-through-a-ruby-cross-plaform-len

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.