我是 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 模块。
谢谢