从 Linux 终端管理 Windows Powershell

Ede*_*son 32 remote-access powershell windows-server-2012

我管理 Windows Server 2012 服务器。我正在学习 PowerShell 通过命令行管理这些服务器。我的工作站运行 Ubuntu,我通常通过 SSH 连接来管理 Linux 服务器。

有没有一种方法可以让我从 Linux 工作站通过命令行(如 Linux 上的 SSH 访问)在 Windows 服务器上使用 Windows PowerShell?

mfi*_*nni 16

一些选项:

  1. 在Windows机器上安装SSH服务器,SSH进去,在Windows机器上运行Powershell
  2. 在 Linux 上运行 RDP 客户端,在 RDP 中运行,在 Windows 机器上运行 Powershell
  3. 使用Powershell Web Access,用浏览器点击POSH WA网关服务器,通过浏览器运行Powershell

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

我不知道 Linux 的任何 POSH 可执行文件,所以你不能直接从 Linux 的 shell 运行 POSH 命令——你必须首先以某种方式进入 Windows 机器,比如 RDP、远程控制台(DRAC、iLO)、SSH,或 POSH 网络访问。

/Edit- 看起来有一些选项。 http://sharpcodenotes.blogspot.com/2014/01/running-powershell-commands-from-linux.html

你可以尝试让 OpenWSMan 做你想做的事,但我认为你必须像 URL 请求一样制作每个命令,而不是简单地发出正确的 Powershell 命令 - 正如我所说,Linux 没有实际的 Powershell。您可以在每台 Windows 机器上安装 WinRB rub​​y​​ gem,然后在您的 Linux 机器上运行 Ruby 代码以调用 Powershell 命令。

在这两种情况下,您似乎都不会获得交互式 Powershell 体验,例如制表符完成、帮助等。这些似乎用于运行脚本或单个命令,您可能必须捕获任何错误或其他反馈靠你自己。您不会在 Linux 上获得一流的解决方案。

/再次编辑 - 是的,MSDN 说这往往会很丑陋/笨拙。即使他给出的简单/有效的解决方案看起来也没什么乐趣。

尽管 Powershell 远程处理构建在 WS-Management 之上,但它实际上是协议中的一个协议,并且尝试直接与 PSRP(Powershell 远程处理协议)互操作本质上需要在客户端上复制 Powershell。

  • 不,先生。一旦在 Windows 机器上安装了 shell(假设它与其他 Windows 机器在同一个域中),您就可以使用 Powershell Remoting。或者您可以使用 DSC,Desired State Config。或者,您可能正在处理 AD 或 MS Exchange 之类的东西,它们无论如何都不会在单个服务器上运行,而是使用任何可用的 DC 或 CAS 服务器连接到目录。 (2认同)
  • `一旦你在 Windows 机器上有一个 shell,你就可以使用 Powershell Remoting。` - 请注意,你几乎肯定会遇到 2-hop 身份验证问题。您几乎肯定需要使用 CredSSP 身份验证。 (2认同)

Sam*_*hke 6

微软正式在 Linux 和 OSX 上发布 Powershell。请参阅 2016 年 8 月的公告:PowerShell 是开源的,可在 Linux 上使用

它目前处于 alpha 阶段。官方支持 Ubuntu 和 Centos,更多支持。如果您喜欢冒险,可以在此处获得安装说明:https : //github.com/PowerShell/PowerShell/blob/master/docs/installation/linux.md