有没有办法让PowerShell 2的远程function在Windows XP机器之间工作?

PowerShell 2.0有一些超级时髦的远程function。 但是,我不清楚是否可以在Windows XP机器之间进行操作,或者是否需要Windows Vista或Windows 7。

这是我有:

尽pipe如此,“Enable-PSRemoting”仍然会导致这个错误:

Enable-PSSessionConfiguration:此机器上未启用或不支持Windows PowerShell远程处理function。 这可能是因为您没有安装正确的WS-Management版本,或者此版本的Windows目前不支持远程处理。

通常情况下,我现在的反应是说:“好吧,我现在是时候下载Windows 7 RC了”,但是我已经看到关于人们在Windows XP中进行远程遥控的足够模糊的评论,让我觉得这是可能的。

我怎样才能使这个工作?

现在,您无法在Windows XP上使用PowerShell远程处理function,因为它依赖于WinRM 2.0 CTP3。 PowerShell V2(和WinRM 2.0)的最终版本后,Windows XP上的远程处理支持将可用。

我知道这不是你正在寻找的东西,而是一个可能的select,这几乎可以肯定在XP到Vista的工作,通过以下任一方法远程运行你的Powershell脚本:

psexec – 微软(由马克Russinovich,足够说!)
rctrlx (我的工具) – 在某些情况下比psexec更强大
Remcom – 开源

这样你就不需要在Powershell以外的任何一台机器上安装任何东西

我还没有能够使Vista和XP或XP和XP之间的PowerShell的工作。 看起来这是一个Vista和一个程序在这一点上。

我已经投入了10或15个小时…所以也许别人成功了..但是我没有能够实现这个需要。

你可以用WinRS 欺骗一些欺骗手段来使用V1。

function Invoke-RemoteCommand { param( $ComputerName, [SCRIPTBLOCK]$script ) $encodedScript = [System.Convert]::ToBase64String([System.Text.Encoding]::UNICODE.GetBytes($script)) $objects = Winrs "-r:$ComputerName" PowerShell -OutputFormat XML -NoProfile -NonInteractive -EncodedCommand $encodedScript Write-Output $objects } Invoke-RemoteCommand localhost {gps} |where {$_.handles -ge 500} |sort handles 

-encodedScript是V1中PowerShell.exe的未logging开关。 它只是告诉PowerShell以base64编码的string作为命令。 如果你的scriptblock变得长而丑陋,它会使分析等工作变得容易一些。

它还没有正式发布,但现在你可以通过微软的Connect网站获得Server 2003和Windows XP发行版的Powershell V2和WinRM V2。 这应该允许您在Windows XP中使用PowerShell的远程function。