[英]New-Item not working if use C# to call Powershell
最初的问题很大,现在我缩小到:
如果我在powershell控制台窗口中运行以下powershsell脚本,$ appPool是Microsoft.IIs.PowerShell.Framework.ConfigurationElement类型,并且可以在我的IIS中创建新的应用程序池。
Import-Module WebAdministration
$appPool = New-Item ("IIS:\AppPools\$iissitename")
但是,如果我使用C#运行我的脚本,$ appPool将为NULL,并且不会创建任何应用程序池。
任何想法? 谢谢堆!
--------- 更新 ------------
如果我使用其他Web服务器(IIS)管理Cmdlet,如:
Import-Module WebAdministration
Get-Website
我的C#项目将抛出异常,例如:找不到名为“WebAdministration”的提供程序
------ 更新更多 ------
从C#调用时,其他一些名为“Get-ChildItem IIS:\\ apppools”的powershell命令都无效。
WebAdministration
模块似乎只是64位 - 至少在我测试的64位系统上。 它所依赖的那个或一些COM组件尚未在32位注册表配置单元中注册。 确保将您的C#应用程序编译为x64。
我想我可能会找到答案。 看起来Powershell中的IIS相关命令需要管理员才能运行。 如果我使用C#来调用ps文件,ps中的命令应该是:
Start-Process powershell -Verb runAs -ArgumentList "Invoke-Command -ScriptBlock {Get-WebSite }"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.