2011-07-28 4 views
28
[Void][Reflection.Assembly]::LoadWithPartialName("Microsoft.Web.Administration") 

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

이는 test.ps1의 내용입니다. . \ test.ps1을 실행하면 다음 오류가 발생합니다.Powershell New-WebApplication

New-WebApplication : Cannot retrieve the dynamic parameters for the cmdlet. Retrieving the COM class factory for compon ent with CLSID {688EEEE5-6A7E-422F-B2E1-6AF00DC944A6} failed due to the following error: 80040154. At C:\code\work\users\mchevett\test.ps1:6 char:19 + New-WebApplication <<<< -Name 'testApp' -Site 'Default Web Site' -PhysicalPath c:\test -ApplicationPool DefaultAppPo ol + CategoryInfo : InvalidArgument: (:) [New-WebApplication], ParameterBindingException + FullyQualifiedErrorId : GetDynamicParametersException,Microsoft.IIs.PowerShell.Provider.NewWebApplicationCommand

이 오류 메시지는 전혀 도움이되지 않습니다. 어떤 아이디어를 더 나은 오류 메시지를 얻는 방법? 읽어 주셔서 감사합니다!

+0

그것에 관한 최종 해결책은 무엇입니까? – Kiquenet

답변

41

내 프로그램에서 잘못된 버전의 PowerShell을 호출했기 때문에 똑같은 문제가 발생했습니다. 나는 이것에 대해서는 잘 모르겠지만 x86 프로그램을 가지고있을 때 PowerShell의 x86 버전을 호출하면 실패 할 것이라고 생각합니다. 이것을 호출

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

는 (64 비트 OS에서) 64 비트 버전을 사용 :

는 특별히 프로그램이 하나를 호출한다 32 비트 버전을 사용 프로그램에서 :

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

는 당신에게 64 비트 PowerShell을 제공하는 32 비트 프로세스 내에서 C:\Windows\SysNative\WindowsPowerShell\v1.0\powershell.exe 사용. 64 비트 프로세스에서이 파일을 사용하면 파일을 찾을 수 없음 오류가 발생합니다.

+1

나는 x86을 실행하고 C : \ Windows \ System32 \ WindowsPowerShell \ v1.0 \ –

+3

의 문제를 해결했다. x64 운영 체제에서'System32'는 실제로 32 비트 구성 요소가 아니며 'SysWOW64'는 그렇습니다. 응답에서 지적한 'SysNative'경로는 64 비트 시스템에서 32 비트 프로세스에 사용할 수 있으며 64 비트 PowerShell을 호출 할 수 있습니다. – Mike

+0

"% SystemRoot % \ SysWoW64 \ WindowsPowerShell \ v1.0 \ powershell.exe"를 사용하여 64 비트 버전의 PowerShell을 실행하는 것이 좋습니다. –