私は Desired State Configuration の初心者ですが、基本的なことを行うのに苦労しています。
私の構成は、基本的にIIS(Web管理およびその他の部分を含む)をインストールし、いくつかのインストーラーを実行してから、デフォルトのWebサイトを停止します。
デフォルトの 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
これは、IIS PowerShell モジュールをロードする前に、マシンを再起動する必要があるか、少なくとも Powershell を再起動する必要があるためだと思います。これは、まったく同じ構成を再度開始しようとすると、成功することがわかります。
マシンを再起動しようとしましたが、さらに問題が発生します。Powershell を再起動する方法はありますか? または、IIS Powershell モジュールをロードするためにできる基本的なことはありますか。
ありがとう