【发布时间】:2015-10-16 01:17:32
【问题描述】:
我正在创建停止 IIS 默认网站的应用程序。我使用 PowerShell 脚本来停止网站,因为该脚本是从我的网站执行的。
这是我的脚本:
Import-Module C:\Windows\System32\WindowsPowerShell\v1.0\Modules\WebAdministration
Stop-Website 'Default Web Site'
my copy code
Start-Website 'Default Web Site'
这是我的 C# 代码:
PowerShell _PowerShell = PowerShell.Create();
Runspace rs = RunspaceFactory.CreateRunspace();
rs.Open();
_PowerShell.Runspace = rs;
_PowerShell.AddScript(@"Set-ExecutionPolicy RemoteSigned -scope LocalMachine").Invoke();
_PowerShell.AddScript(@"E:\DE.TEST\Power_Shell\Scripts\StopIISDefaultSite.ps1").Invoke();
if (_PowerShell.HadErrors)
{
Collection<ErrorRecord> errors = _PowerShell.Streams.Error.ReadAll();
foreach (var item in errors)
{
Console.WriteLine(item.ToString());
}
}
Console.ReadLine();
显示如下错误
由于以下错误,检索具有 CLSID {688EEEE5-6A7E-422F-B2E1-6AF00DC944A6} 的组件的 COM 类工厂失败:80040154 未注册类(HRESULT 异常:0x80040154 (REGDB_E_CLASSNOTREG))。
【问题讨论】:
-
我正在使用任何 CPU。我不是 powershell 的大师 :(
-
我将其更改为 x86。仍然发生错误。
-
显然某些东西没有在该机器上注册(即需要注册以便代码对其执行的 COM 组件)
-
@CodeCaster 好像反过来了,you need to target x64
-
我们可以使用任何 CPU 来执行这个东西吗?
标签: c# asp.net powershell iis iis-8