我需要在 Windows 7 上使用新的 IISAdministration PowerShell cmdlet 来开发和调试脚本。由于默认情况下 Windows 7 上不存在此模块,因此我尝试安装它。为此,我安装了 Windows Management Framework 5.1,以确保我拥有带有 PowerShellGet 模块的 PowerShell 5.1。
之后,我使用以下命令安装了 IISAdministration 模块:
Install-Module -Name IISAdministration
它没有报告任何错误,但是当我尝试列出可用的模块时,它没有显示已安装的任何 cmdlet:
PS D:\> get-module -ListAvailable
Directory: C:\Program Files\WindowsPowerShell\Modules
ModuleType Version Name ExportedCommands
---------- ------- ---- ----------------
Script 1.1.0.0 IISAdministration
Binary 1.0.0.1 PackageManagement {Find-Package, Get-Package, Get-PackageProvider, Get-Packa...
Script 1.0.0.1 PowerShellGet {Install-Module, Find-Module, Save-Module, Update-Module...}
当我在生产 Windows Server 2012 R2 机器上执行此命令时,我可以在 ExportedCommands 列中看到 cmdlet。
当我尝试在脚本中或直接在 PowerShell 控制台中导入模块时,出现此错误:
PS D:\> Import-Module IISAdministration
Import-Module : Could not load type 'Microsoft.Web.Administration.SslFlags' from assembly
'Microsoft.Web.Administration, Version=7.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'.
At line:1 char:1
+ Import-Module IISAdministration
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Import-Module], TypeLoadException
+ FullyQualifiedErrorId : System.TypeLoadException,Microsoft.PowerShell.Commands.ImportModuleCommand
我的设置有什么问题?如何修复?
答案1
您是否安装了远程服务器管理工具 (RSAT)?
如果您没有安装这些工具,这可能是您的问题。
答案2
经过深入研究,我找到了问题的真正原因。我的机器上的 Microsoft.Web.Administration.dll 程序集版本错误:
c:\Windows\assembly\GAC_MSIL\Microsoft.Web.Administration\7.0.0.0__31bf3856ad364e35\Microsoft.Web.Administration.dll
该文件的版本为 ,6.1.7601.17514
而程序集版本为7.0.0.0
。该文件没有SSLFlags
声明枚举类型,这导致了问题。
8.5.9600.17042
我通过用从另一台机器获取的文件版本(具有相同的程序集版本)替换此文件来解决了该问题。
答案3
我同意 Lex Li 上述的评论:将 DLL 从较新的服务器操作系统带到较旧的服务器操作系统会带来麻烦。
我的网站安装脚本是在 Windows 10 上构建的,原本应该只在 Windows 2012 及更高版本上使用,但我发现 Windows 2008-R2 服务器需要该网站的副本,并且无法导入IIS管理,给出上面列出的OP错误。
解决方法:下载并安装碳模块。
取决于你需要什么IIS管理模块,您可能能够在 Carbon 模块中找到可行的替代品。就我而言,我仅将 IISAdministration 用于 Get-IISAppPool cmdlet。事实证明,Carbon 具有功能类似的 Get-IisAppPool cmdlet,它在 Windows 2008-R2 上为我完成了这项工作。
你可以通过访问模块的网站找到 Carbon 模块。我使用了 Chocolatey,安装起来非常轻松。
http://get-carbon.org/about_Carbon_Installation.html
希望这对某些人有帮助,我发现这个问题得到了相当多的点击。