我使用Sharepoint,我需要在控制台主机中显示Sharepoint管理单元。当我从Windows开始菜单运行PowerShell时,我运行命令
Add-PSSnapin Microsoft.Sharepoint.Powershell
管理单元添加正常,一切正常。
此外,当我运行cmd.exe并输入powershell.exe
并按Enter键时,一切正常。所以我认为这个问题没有涉及快捷参数(但我不是100%肯定:))。
但是当我通过某个启动器启动PowerShell时(我已经测试了Launchy和Enso)并尝试添加相同的管理单元,它会失败,并显示以下错误消息:
Add-PSSnapin : No snap-ins have been registered for Windows PowerShell version 2.
At somefile.ps1:7 char:14
+ Add-PSSnapin <<<< Microsoft.Sharepoint.Powershell
+ CategoryInfo : InvalidArgument:(Microsoft.Sharepoint.Powershell:String)
[Add-PSSnapin], PSArgumentException
+ FullyQualifiedErrorId :
AddPSSnapInRead,Microsoft.PowerShell.Commands.AddPSSnapinCommand
使用启动器启动PowerShell时有什么区别?
我认为这不是与sharepoint相关的问题,而是PowerShell的问题。
(注意:我知道Sharepoint管理shell和问题不是关于它)
答案 0 :(得分:9)
不确定100%但是PowerShell 32位与PowerShell 64位相比可能有问题。
例如,如果您的SnapIn是64位,则它只能用于PowerShell 64位。如果 Launchy 和 Enso 为32位,则启动powerShell 32位,寻找32位SnapIn。另一方面也是如此。
从64位进程,您可以强制使用PowerShell 64位:
c:\windows\system32\WindowsPowerShell\v1.0\powershell.exe
从64位进程,您可以强制使用PowerShell 32位:
c:\windows\syswow64\WindowsPowerShell\v1.0\powershell.exe
从32位进程,您可以强制使用PowerShell 64位(阅读this):
c:\windows\sysnative\WindowsPowerShell\v1.0\powershell.exe