Powershell New-WebApplication - PullRequest
       0

Powershell New-WebApplication

29 голосов
/ 29 июля 2011
[Void][Reflection.Assembly]::LoadWithPartialName("Microsoft.Web.Administration")

New-WebApplication -Name 'testApp' -Site 'Default Web Site' -PhysicalPath c:\test -ApplicationPool DefaultAppPool 

Это содержимое test.ps1. Когда я запускаю. \ Test.ps1, я получаю следующую ошибку.

New-WebApplication: невозможно получить динамические параметры для Командлет. Получение фабрики класса COM для компонента с помощью CLSID {688EEEE5-6A7E-422F-B2E1-6AF00DC944A6} не удалось из-за следующих ошибка: 80040154. На C: \ code \ work \ users \ mchevett \ test.ps1: 6 char: 19 + New-WebApplication <<<< -Имя 'testApp' -Site 'Веб-сайт по умолчанию' -PhysicalPath c: \ test -ApplicationPool DefaultAppPool + CategoryInfo: InvalidArgument: (:) [New-WebApplication], ParameterBindingException + FullyQualifiedErrorId: GetDynamicParametersException, Microsoft.IIs.PowerShell.Provider.NewWebApplicationCommand </p>

Это сообщение об ошибке мне совсем не помогает. Есть идеи, как получить лучшее сообщение об ошибке? Спасибо за чтение!

1 Ответ

46 голосов
/ 29 июля 2011

У меня была точно такая же проблема, потому что я вызывал неправильную версию PowerShell из моей программы. Я не уверен в этом, но я думаю, что когда у вас есть программа для x86, она вызывает версию PowerShell для x86, которая не работает.

Чтобы конкретно использовать 32-битную версию , вызовите эту из своей программы:

C:\Windows\SysWoW64\WindowsPowerShell\v1.0\powershell.exe

Чтобы использовать 64-битную версию (в 64-битной ОС) , вызовите ее из вашей программы:

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe

Использование C:\Windows\SysNative\WindowsPowerShell\v1.0\powershell.exe из 32-битного процесса даст вам 64-битную PowerShell. Использование его из 64-битного процесса приведет к ошибке «файл не найден».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...