启动PowerShell控制台的方式有何不同?

时间:2012-05-28 16:53:06

标签: powershell module launch launcher snap-in

我使用Sharepoint,我需要在控制台主机中显示Sharepoint管理单元。当我从Windows开始菜单运行PowerShell时,我运行命令

Add-PSSnapin Microsoft.Sharepoint.Powershell

管理单元添加正常,一切正常。

此外,当我运行cmd.exe并输入powershell.exe并按Enter键时,一切正常。所以我认为这个问题没有涉及快捷参数(但我不是100%肯定:))。

但是当我通过某个启动器启动PowerShell时(我已经测试了LaunchyEnso)并尝试添加相同的管理单元,它会失败,并显示以下错误消息:

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和问题不是关于它)

1 个答案:

答案 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