Какая разница в способе запуска консоли 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