如何在 Powershell ISE 3 中加载带有 Powershell v2 的版本?

7

我刚在我的Windows 7电脑上安装了新的Powershell 3,然后发现新版本的Powershell与Sharepoint 2010不兼容。

我找到了一个解决方法(这里这里)。但是它只能解决标准powershell控制台的问题。由于我们大部分工作都是通过ISE进行的,我想知道是否可以在ISE中实现相同的操作?

我尝试添加“Version”参数,但ISE不支持它。我尝试在ISE的控制台中输入powershell -version 2,但没用。

如果不可能的话,我还有另一个问题:我需要使用ISE和Sharepoint 2010,那么我该如何卸载powershell 3和新的ISE?


你需要找出ISE是否足够可定制,以便在启动PowerShell会话时,可以向PowerShell命令提供命令行参数。我必须安装新的ISE并自己查看。否则,您可能会被困在使用ISE编辑脚本但手动启动控制台进行测试的情况下。 - Roman
我查看了设置,但是没有找到任何有用的东西。也许可以通过一些代码自定义来实现,在个人资料中可能会有相关选项。但是我对这样的自定义一无所知...目前似乎我被卡住了 :( - jumbo
我尝试根据强制应用程序...快速创建powershell_ise.exe.config文件。我认为该文件夹以某种方式受到保护。我会尽快进一步研究。 - Roman
2个回答

6
这是一个已知的问题,安装Windows管理框架3.0更新(包括PS 3.0),由于使用了.net 4.0,使得所有SP2010 cmdlets(这些都是3.5版本)不兼容。
控制台应用程序可以接受“-version 2”开关,但正如指出的那样,它与ISE不兼容。
这是一个已知问题,另一篇文章建议卸载WMF更新并重新启动服务器,我认为这是你问题的唯一真正答案。

1
你可以通过创建新的 PSSession 来实现这一点。
Register-PSSessionConfiguration -Name PS2 -PSVersion 2.0 –ShowSecurityDescriptorUI

# Please consult system admin when your run set-item and Enable-WSManCredSSP command
Set-Item wsman:localhost\client\trustedhosts -value * -Confirm:$false -Force
Enable-WSManCredSSP -Role Client –DelegateComputer * -Force
Enable-WSManCredSSP -Role Server -Force

# For test purpose
# Get-WSManCredSSP
# get-item wsman:localhost\client\trustedhosts

$cred = Get-Credential
$session = New-PSSession -ComputerName $env:COMPUTERNAME -authentication credssp -ConfigurationName PS2 -Credential $cred
Enter-PSSession $session

# 2.0 runtime
Add-PSSnapin microsoft.sharepoint.powershell
$web = Get-SPWeb http://SPSite/
$web.Url

Exit-PSSession

Unregister-PSSessionConfiguration -Name PS2

Disable-WSManCredSSP -Role Client
Disable-WSManCredSSP -Role Server

如果您不退出PSSession,您可以从Powershell ISE 3运行2.0运行时命令。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接