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

jum*_*mbo 2 powershell module launcher launch snap-in

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

Add-PSSnapin Microsoft.Sharepoint.Powershell
Run Code Online (Sandbox Code Playgroud)

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

此外,一切正常,当我运行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
Run Code Online (Sandbox Code Playgroud)

使用启动器启动PowerShell有什么区别?

我认为这不是与sharepoint相关的问题,而是PowerShell问题.

(注意:我知道Sharepoint管理shell和问题不是关于它)

JPB*_*anc 9

不确定100%但是你可能遇到PowerShell 32位与PowerShell 64位的问题.

例如,如果您的SnapIn是64位,则它只能用于PowerShell 64位.如果LaunchyEnso是32位,则启动powerShell 32位,寻找32位SnapIn.另一方面也是如此.

从64位进程,您可以使用PowerShell 64位强制使用:

c:\windows\system32\WindowsPowerShell\v1.0\powershell.exe
Run Code Online (Sandbox Code Playgroud)

从64位进程,您可以使用PowerShell 32位强制使用:

c:\windows\syswow64\WindowsPowerShell\v1.0\powershell.exe
Run Code Online (Sandbox Code Playgroud)

从32位进程,您可以强制使用PowerShell 64位(阅读本文):

c:\windows\sysnative\WindowsPowerShell\v1.0\powershell.exe
Run Code Online (Sandbox Code Playgroud)