Powershell New-WebApplication

时间:2011-07-28 21:46:08

标签: iis-7 powershell

[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:无法检索的动态参数   小命令。使用CLSID检索组件的COM类工厂   {688EEEE5-6A7E-422F-B2E1-6AF00DC944A6}由于以下原因而失败   错误:80040154。在C:\ code \ work \ users \ mchevett \ test.ps1:6 char:19   + New-WebApplication<<<< -Name'testApp'-Site'默认网站'   -PhysicalPath c:\ test -ApplicationPool DefaultAppPo ol       + CategoryInfo:InvalidArgument:(:)   [New-WebApplication],ParameterBindingException       + FullyQualifiedErrorId:   GetDynamicParametersException,Microsoft.IIs.PowerShell.Provider.NewWebApplicationCommand

此错误消息对我没有任何帮助。任何想法如何获得更好的错误消息?谢谢你的阅读!

2 个答案:

答案 0 :(得分:46)

我遇到了完全相同的问题,因为我从我的程序中调用了错误版本的PowerShell。我不确定这一点,但我认为当你有一个x86程序时,它会调用PowerShell的x86版本,但失败了。

要专门使用 32位版本,请从您的程序中调用此方法:

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

要使用 64位版本(在64位操作系统上),请从您的程序中调用此版本:

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

在32位进程中使用C:\Windows\SysNative\WindowsPowerShell\v1.0\powershell.exe将为您提供64位PowerShell。在64位进程中使用它会给你一个文件未找到的错误。

答案 1 :(得分:0)

在项目解决方案构建属性中将平台目标更改为“ x64”对我有用:

screenshot of configuration page