Какая разница в способе запуска консоли powershell?

Я работаю с Sharepoint, и мне нужно, чтобы оснастка Sharepoint присутствовала на моем хосте консоли. Когда я запускаю powershell из меню "Пуск" Windows, я запускаю команду

Add-PSSnapin Microsoft.Sharepoint.Powershell

оснастка добавлена ​​нормально, и все работает хорошо.

Кроме того, все в порядке, когда я запускаю cmd.exe, и введите powershell.exe к нему и нажмите ввод. Поэтому я думаю, что в эту проблему не вовлечены никакие параметры быстрого доступа (но я не уверен на 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 и вопрос не об этом)

1 ответ

Решение

Не уверен 100%, но у вас могут быть проблемы с PowerShell 32 битами по сравнению с PowerShell 64 битами.

Например, если ваш SnapIn равен 64 битам, его можно использовать только с PowerShell 64 бит. Если Launchy и Enso 32-битные, они запускают PowerShell 32-битные, которые ищут 32-битную SnapIn. То же самое с другой стороны.

Из 64-разрядного процесса вы можете принудительно использовать 64-разрядную версию PowerShell, используя:

c:\windows\system32\WindowsPowerShell\v1.0\powershell.exe

Из 64-битного процесса вы можете принудительно использовать 32-битную PowerShell, используя:

c:\windows\syswow64\WindowsPowerShell\v1.0\powershell.exe

Из 32-разрядного процесса вы можете принудительно использовать 64-разрядную версию PowerShell, используя (Читать это):

c:\windows\sysnative\WindowsPowerShell\v1.0\powershell.exe
Другие вопросы по тегам