gpt4 book ai didi

Powershell DSC : Can someone please provide me an example on how to use a resource?

转载 作者:行者123 更新时间:2023-12-03 01:18:17 25 4
gpt4 key购买 nike

对于 DSC 专业人士来说,这似乎是一个非常简单的问题,但我在网络上找不到任何资源,或者我看到的任何错误消息。在 DSC 上挖掘任何信息似乎非常困难,所以也许我们可以从这里开始。

我正在尝试构建用于安装计划任务的 Powershell DSC 配置。我在 Steve Murawski 的 Github page for StackExchange resources 上找到了一个示例资源。 ,并且我已将“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 : No MSFT_ScheduledTask objects found with property 'TaskName' equal to 'CleanerTask'. Verify the value of the property and retry. At C:\Users\Steve\Documents\DevOps\DSC\TempCleaner.ps1:13 char:9 + ScheduledTask CleanerTask + ~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (CleanerTask:String) [Get-ScheduledTask] , CimJobException + FullyQualifiedErrorId : CmdletizationQuery_NotFound_TaskName,Get-ScheduledTask



如上所示,当我将计划任务资源与文件资源一起使用时,文件资源被写入生成的 MOF 文件,但在其中看不到其他指令。

这里一定有我遗漏的东西。是否有某种我可以启用的详细模式?其他未记录的日志记录选项?那将非常有帮助。

最佳答案

1) 要使用第三方资源,您需要使用 Import-DscResource 导入它,而不是 Import-Module。

Import-DscResource -Name StackExchange_ScheduledTask -ModuleName StackExchangeResources



另外,请注意它必须在配置范围内

2) 确保您使用的资源模块已部署到 C:\Program Files\WindowsPowerShell\Modules\
将整个 StackExchangeResources 文件夹及其内容(DSCResources 等)放在那里。

3) 资源名称为必填项
ScheduledTask task
{
#...
}

这是带有修复的配置:
Configuration TempCleaner
{
param($NodeName)

Import-DscResource -Name StackExchange_ScheduledTask -ModuleName StackExchangeResources
Node $NodeName
{
$filePath = "C:\test\TempCleaner.ps1";

ScheduledTask task
{
Name = "Clear Temporary Files"
FilePath = $filePath
Daily = $true
Hours = 4
Minutes = 0
}
}
}

希望能帮助到你。

关于Powershell DSC : Can someone please provide me an example on how to use a resource?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23175379/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com