我正在尝试使用powershell在web服务器上远程设置网站。我尝试配置的web服务器是Windows Server2008PowerShell SP1,它默认安装了powershell v2。
为了简单起见,我使用了管理单元"WebAdministration“。
每当我尝试调用以下命令时:
PS C:\p4\eacp4wireframe\ReleaseEngineering\DL_Powershell\Infrastructure\PowerShell\IIS> Invoke-Command -ComputerName web4 -Credential $admin -ScriptBlock {add-pssnapin WebAdministration; Get-Website}
No snap-ins have been registered for Windows PowerShell version 2.
+ CategoryInfo : InvalidArgument: (WebAdministration:String) [Add-PSSnapin], PSArgumentException
+ FullyQualifiedErrorId : AddPSSnapInRead,Microsoft.PowerShell.Commands.AddPSSnapinCommand我收到可怕的“没有为Windows PowerShell版本2注册管理单元”的错误。
从逻辑上讲,我通过运行以下命令检查powershell的版本:
PS C:\ Invoke-Command -ComputerName web4 -Credential $admin -ScriptBlock {(Get-Host).version}
Major Minor Build Revision PSComputerName
----- ----- ----- -------- --------------
1 0 0 0 web4 我可以远程登录到web服务器并正常运行Powershell命令。
有什么想法吗?
发布于 2012-10-24 09:37:35
该版本号是远程处理使用的主机实现的版本号,例如:
C:\PS> Invoke-Command . {Get-Host | Get-Member}
TypeName: System.Management.Automation.Internal.Host.InternalHost您必须至少使用PowerShell 2.0引擎,因为那是引入PowerShell远程处理的时候。更有可能的情况是,您正在调用64位PowerShell远程处理端点,并且您的管理单元要么没有注册到64位PowerShell,要么不能在64位PowerShell中运行(反之亦然)。
如果您需要调用32位远程处理端点,请尝试执行以下操作:
C:\PS> Invoke-Command . {[intptr]::size} -ConfigurationName Microsoft.PowerShell32
4https://stackoverflow.com/questions/13041183
复制相似问题