DSC无法加载WebAdministration模块

时间:2014-06-10 00:38:07

标签: powershell powershell-v4.0 dsc

我是Desired State Configuration的初学者,但我在做一些基本的事情时遇到了一些麻烦。

我的配置本质上是安装IIS(包括Web管理和其他一些部分),运行一些安装程序然后停止默认网站。

我选择不使用xWebAdministration模块,因为看起来像是停止默认网站一样过分。所以,我编写了以下脚本来完成这项任务:

Script StopDefaultWebsite {
        SetScript = {
            # Check if WebAdministration module is present for IIS cmdlets
            if(!(Get-Module -ListAvailable -Name WebAdministration))
            {
                Throw "Please ensure that WebAdministration module is installed."
            }
            Stop-Website "Default Web Site"
        }
        TestScript = {
            $w = Get-Website | where {$_.name -eq "Default Web Site"}
            return $w.state -eq "Stopped"
        }
        GetScript = {
            $installStatus = Get-Website | where {$_.name -eq "Default Web Site"}
            @{
                SetScript = $SetScript
                TestScript = $TestScript
                Result = [String]$installStatus;
            } 
        }
    }

(我从xWebAdministration复制了SetScript的第一部分) 我遇到的问题是,当我开始配置时,windows功能“web-mgmt-service”安装得很好,我可以检查它已经安装但是当这个脚本运行时我收到以下错误:

PowerShell provider MSFT_ScriptResource  failed to execute Test-TargetResource functionality with error message:
    Could not load file or assembly 'Microsoft.IIS.PowerShell.Framework' or one of its dependencies. The system cannot find the file specified.
        + CategoryInfo          : InvalidOperation: (:) [], CimException
        + FullyQualifiedErrorId : ProviderOperationExecutionFailure

我猜这是因为机器需要重启或者至少需要重新启动Powershell才能加载IIS powershell模块。当我尝试再次启动完全相同的配置并且它将成功时,可以看到这一点。

我尝试重新启动机器,这会导致更多问题。有什么办法可以重新启动Powershell吗?或者,我可以做些什么来加载IIS Powershell模块。

由于

1 个答案:

答案 0 :(得分:0)

您不必重新启动。您所要做的就是重新加载$env:PSModulePath变量。刷新此变量的值后,您将能够加载新添加的模块。我使用这个技巧进行无人参与的SQL安装,我曾经遇到过同样的问题。

http://www.powershellmagazine.com/2013/06/06/pstip-refresh-the-psmodulepath-environment-variable-without-re-opening-console/