我尝试在 Windows Server 2016 上使用 powershell cmdlet Restore-WebConfiguration,但出现此错误:
PS > Restore-WebConfiguration name
get-webconfiguration : Retrieving the COM class factory for component with CLSID
{688EEEE5-6A7E-422F-B2E1-6AF00DC944A6} failed due to the following error: 80040154 Class not registered (Exception
from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).
At line:1 char:1
+ get-webconfiguration /system.applicationHost/configHistory
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Get-WebConfiguration], COMException
+ FullyQualifiedErrorId : System.Runtime.InteropServices.COMException,Microsoft.IIs.PowerShell.Provider.GetConfigurationCommand
我认为我一定是在“添加角色和功能”向导中遗漏了某些内容。或者也许需要执行其他操作才能使 cmdlet 正常工作。Cmdlet 名称显然已找到,但我没想到会出现此错误,我以为它会正常工作或未找到,而不是像这样损坏。
IIS 管理脚本和工具已安装。
答案1
这些 cmdlet 仅作为 64 位 .net 程序集提供。启动 64 位 powershell 并重试。
在必须运行这些脚本的顶部添加如下内容:
if ([IntPtr]::Size -eq 4 ) {
Write-Host "This script must be run from a 64 bit powershell."
Exit
}