我管理Windows Server 2012服务器。我正在学习PowerShell,以通过命令行管理这些服务器。我的工作站运行Ubuntu,我通常通过SSH连接来管理Linux服务器。
有什么方法可以通过Linux工作站上的命令行(例如Linux上的SSH访问)从Windows工作站在Windows Server上使用Windows PowerShell?
我管理Windows Server 2012服务器。我正在学习PowerShell,以通过命令行管理这些服务器。我的工作站运行Ubuntu,我通常通过SSH连接来管理Linux服务器。
有什么方法可以通过Linux工作站上的命令行(例如Linux上的SSH访问)从Windows工作站在Windows Server上使用Windows PowerShell?
Answers:
一些选项:
http://technet.microsoft.com/zh-CN/library/hh831611.aspx
我不知道任何适用于Linux的POSH可执行文件,因此您无法直接从Linux中的外壳运行POSH命令-您必须首先以某种方式进入Windows计算机,例如RDP,远程控制台(DRAC,iLO),SSH,或POSH Web访问。
/ Edit-似乎有一些选项。 http://sharpcodenotes.blogspot.com/2014/01/running-powershell-commands-from-linux.html
您可以尝试让OpenWSMan来做您想做的事,但是我认为您必须像URL请求一样编写每个命令,而不是简单地发出正确的Powershell命令-正如我说的那样,Linux上没有实际的Powershell。您可以在每台Windows机器上安装WinRB ruby gem,然后在Linux机器上运行Ruby代码来调用Powershell命令。
在两种情况下,您似乎都不会获得交互式Powershell体验,例如Tab键完成,帮助等。这些似乎是用于运行脚本或单个命令的,并且大概必须捕获任何错误或其他反馈靠你自己 您不会在Linux上获得一流的解决方案。
/再次编辑-是的,MSDN说这将很难看/笨拙。即使是他提供的简单/有效的解决方案,也看起来并不有趣。
尽管Powershell远程处理是基于WS-Management构建的,但实际上它是协议中的一个协议,要直接与PSRP(Powershell远程处理协议)进行互操作本质上需要在客户端上复制Powershell。
Once you have a shell on a Windows box you can use Powershell Remoting.
-请注意,您几乎肯定会遇到与此相关的2跳身份验证问题。几乎可以肯定,您将需要使用CredSSP身份验证。
微软正式在Linux和OSX上发布Powershell。请参阅2016年8月公告:PowerShell是开源的,可在Linux上使用
目前处于Alpha状态。正式支持Ubuntu和Centos,并且还会有更多支持。如果您喜欢冒险,可以在这里获得安装说明:https : //github.com/PowerShell/PowerShell/blob/master/docs/installation/linux.md
是的,您有两种选择:
您可以在Windows上以及在PowerShell的配置设置路径中安装SSHd服务器。
为此,您可以使用教程来安装SSHd和 配置 PowerShell路径。
简而言之:
PowerShell Web访问(仅Win Server 2012 R2)
在Technet上有一个教程-blogs.technet.com/b/canitpro/archive/2013/11/14/step-by-step-deploy-powershell-web-access.aspx
在Ubuntu 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
您还可以安装手动Win32的采用openSSH从https://github.com/PowerShell/Win32-OpenSSH或通过的巧克力https://chocolatey.org甚至来不及通过Boxstarter(它利用发动机罩下的巧克力)https://开头boxstarter.org(快速安装https://boxstarter.org/packages/nr/win32-openssh)。
它需要一些设置,但是它是本机(是的,确实是这样!)的win32端口,由执行PowerShell的Microsoft人员维护。
否则,就像有人提到的那样,您可以在Linux上安装WinRM gem,并通过WinRM协议获得一些连接,但这并不像启动PSSession那样好。
此外,WinRM gem(WinRb)背后的人们也正在考虑实现一种更本机的PowerShell交互,该交互将PowerShell跨WinRM传输,这对于上载将具有更大的功能,对于其他操作也将更快。请参阅此博客文章,http://www.hurryupandwait.io/blog/a-look-under-the-hood-at-powershell-remoting-through-a-ruby-cross-plaform-len