【发布时间】:2021-06-29 16:59:12
【问题描述】:
我遇到了一个奇怪的问题,所以我自然而然地来到了这里。我正在尝试管理 100 台左右的 IIS Web 服务器(2008R2,值得庆幸的是技术更新,2012R 和 2016)。在几台服务器上,我收到以下错误:
Exception : System.Management.Automation.ProviderNotFoundException: Cannot find a provider with the name
'WebAdministration'.
at System.Management.Automation.SessionStateInternal.GetProvider(PSSnapinQualifiedName
providerName)
at System.Management.Automation.SessionStateInternal.GetSingleProvider(String name)
at System.Management.Automation.SessionStateInternal.GetNamespaceCurrentLocation(String
namespaceID)
at System.Management.Automation.PSCmdlet.CurrentProviderLocation(String providerId)
at Microsoft.IIs.PowerShell.Provider.IIsCommandBase.ProcessRecord()
at Microsoft.IIs.PowerShell.Provider.GetConfigurationPropertyCommand.ProcessRecord()
at System.Management.Automation.CommandProcessor.ProcessRecord()
TargetObject : WebAdministration
CategoryInfo : ObjectNotFound: (WebAdministration:String) [Get-WebConfigurationProperty],
ProviderNotFoundException
FullyQualifiedErrorId : ProviderNotFound,Microsoft.IIs.PowerShell.Provider.GetConfigurationPropertyCommand
ErrorDetails :
InvocationInfo : System.Management.Automation.InvocationInfo
ScriptStackTrace : at ConfigureIISLogging,
D:\NSI\AutoSPInstaller-master\SP\Automation\AutoSPInstallerModule.psm1: line 3887
at Start-Install, D:\NSI\AutoSPInstaller-master\SP\Automation\AutoSPInstallerMain.ps1: line 196
at <ScriptBlock>, D:\NSI\AutoSPInstaller-master\SP\Automation\AutoSPInstallerMain.ps1: line 409
at <ScriptBlock>, <No file>: line 1
PipelineIterationInfo : {}
PSMessageDetails :
如果我在其中一台直接运行的服务器上执行 Get-PSProvider,它会显示 WebAdministration {IIS}。显示错误的服务器缺少此内容。大多数时候,如果我手动导入 WebAdministration 模块,它会加载,Get-Command 会显示所有命令,但如果我尝试运行一个命令,我会得到PSProvider Not Found - WebAdministration。 IIS 已安装并在所有服务器上运行。我错过了什么?
【问题讨论】:
-
您使用什么 PowerShell 版本?您只能在 Windows PowerShell (5.1) 或 PowerShell 7.x 的兼容模式中使用它。
-
我正在使用 Major Minor Build Revision ----- ----- ----- -------- 5 1 19041 1023
-
通常重新启动 Powershell 会话或提升(或不提升)运行它可以解决此类问题。但是,我确实记得之前在 2008 R2 上看到过这个问题仍然存在。我认为我们在停用 VM 之前从未确定原因。我们正处于下一个合乎逻辑的步骤是删除并重新安装 IIS,这基本上意味着无论如何都要重建服务器。
-
如果它是 only 2008 年的服务器,我不会关心(很多),但它也会发生在 2012 年的一些服务器上。这就是让我发疯的原因。
标签: powershell iis