Iis 7 Powershell新Web应用程序

Iis 7 Powershell新Web应用程序,iis-7,powershell,Iis 7,Powershell,这就是test.ps1的内容。 当我运行。\test.ps1时,我得到以下错误 新建WebApplication:无法检索应用程序的动态参数 cmdlet。正在检索具有CLSID的组件的COM类工厂 {688EEEE5-6A7E-422F-B2E1-6AF00DC944A6}由于以下原因失败 错误:80040154。在C:\code\work\users\mchevett\test.ps1:6 char:19 +New WebApplication我遇到了完全相同的问题,因为我从程序中调用了错误

这就是test.ps1的内容。 当我运行。\test.ps1时,我得到以下错误

新建WebApplication:无法检索应用程序的动态参数 cmdlet。正在检索具有CLSID的组件的COM类工厂 {688EEEE5-6A7E-422F-B2E1-6AF00DC944A6}由于以下原因失败 错误:80040154。在C:\code\work\users\mchevett\test.ps1:6 char:19
+New WebApplication我遇到了完全相同的问题,因为我从程序中调用了错误版本的PowerShell。我不确定这一点,但我认为当你有一个x86程序时,它会调用x86版本的PowerShell,但失败了

要特别使用32位版本,请从程序中调用此版本:

[Void][Reflection.Assembly]::LoadWithPartialName("Microsoft.Web.Administration")

New-WebApplication -Name 'testApp' -Site 'Default Web Site' -PhysicalPath c:\test -ApplicationPool DefaultAppPool 
C:\Windows\SysWoW64\WindowsPowerShell\v1.0\powershell.exe
要使用64位版本(在64位操作系统上),请从程序中调用此版本:

[Void][Reflection.Assembly]::LoadWithPartialName("Microsoft.Web.Administration")

New-WebApplication -Name 'testApp' -Site 'Default Web Site' -PhysicalPath c:\test -ApplicationPool DefaultAppPool 
C:\Windows\SysWoW64\WindowsPowerShell\v1.0\powershell.exe

在32位进程中使用
C:\Windows\SysNative\WindowsPowerShell\v1.0\powershell.exe将获得64位powershell。从64位进程中使用它会给您一个文件未找到错误。

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


有最终解决方案吗?我运行了x86,它解决了我的问题-C:\Windows\System32\WindowsPowerShell\v1.0\On x64操作系统
System32
实际上不适用于32位组件,
SysWOW64
是。答案中指出的
SysNative
路径可用于64位系统上的32位进程,并允许它调用64位powershell。我建议您使用“%SystemRoot%\SysWoW64\WindowsPowerShell\v1.0\powershell.exe”运行64位版本的PowerShell。Tom Hall-SysWoW64目录包含32位版本的PowerShell。这也是我的问题,但不幸的是,我使用了在32位模式下运行的Jenkins来启动PowerShell命令。我需要安装64位Java运行时环境,以便Jenkins能够在64位模式下运行,这样它就可以选择64位版本的Powershell来运行。欢迎提供指向解决方案的链接,但请确保您的答案在没有它的情况下是有用的:这样您的其他用户就会知道它是什么以及它为什么存在,然后引用你链接到的页面最相关的部分,以防目标页面不可用@Alessio他们没有链接到外部资源,而是上传了一个与其解决方案相关的窗口的屏幕截图。这是一个有用的答案,我想,谢谢@Alessio,但因为我是新来的,StackOverflow限制我上传图片,直到我累积了10分或10票。随着这个平台的使用越来越多,我的答案也会越来越好。