DSC の専門家にとって、これは非常に単純な質問のように思えるかもしれませんが、Web 上でこれに関するリソースや、私が見たエラー メッセージに関するリソースを見つけることができませんでした。DSC に関する情報を掘り下げるのは非常に難しいように思われるので、おそらくここから始めることができます。
スケジュールされたタスクをインストールするための Powershell DSC 構成を構築しようとしています。Steve Murawski のStackExchange リソースの Github ページでサンプル リソースを見つけ、「StackExchangeResources」ツリーを DSC リポジトリにコピーしました。
StackExchangeModule をインポートし、ScheduledTask リソースを使用して非常に単純な構成を作成しようとしました。
Import-Module StackExchangeResources
Configuration TempCleaner
{
param($NodeName)
Node $NodeName
{
$filePath = "C:\Tasks\TempCleaner.ps1";
ScheduledTask
{
Name = "Clear Temporary Files"
FilePath = $filePath
Daily = $true
FilePath = ""
Hours = 4
Minutes = 0
}
}
}
ただし、 を実行TempCleaner -Node TestNode
しても、実際には何もしません。MOF ファイルは書き込まれず、エラーはスローされません。
さて、私が見た多くの例では、リソースの呼び出しに名前を付けることが含まれています。次のようなものです。
File TempCleaner
{
DestinationPath = $filePath
Contents = $(cat $tempCleanerScript | out-string)
Checksum = "SHA-512"
}
でも、そんな名前をつけようとすると、
ScheduledTask CleanerTask
{
Name = "Clear Temporary Files"
FilePath = $filePath
Daily = $true
FilePath = ""
Hours = 4
Minutes = 0
}
例外がスローされます。
ScheduledTask : プロパティ 'TaskName' が 'CleanerTask' に等しい MSFT_ScheduledTask オブジェクトが見つかりません。プロパティの値を確認して、再試行してください。C:\Users\Steve\Documents\DevOps\DSC\TempCleaner.ps1:13 文字:9 + ScheduledTask CleanerTask + ~~~~~~~~~~~~~~~~~~~~~~ ~ + CategoryInfo : ObjectNotFound: (CleanerTask:String) [Get-ScheduledTask] , CimJobException + FullyQualifiedErrorId : CmdletizationQuery_NotFound_TaskName,Get-ScheduledTask
上記のように、スケジュールされたタスク リソースをファイル リソースと組み合わせて使用すると、ファイル リソースは結果の MOF ファイルに書き込まれますが、その中に他のディレクティブは表示されません。
私がここで見逃しているものがあるに違いありません。おそらく有効にできるある種の冗長モードはありますか?文書化されていないその他のログ オプションはありますか? それはとても役に立ちます。