【问题标题】:PowerShell Desired State Configuration -WhatIfPowerShell 所需状态配置 -WhatIf
【发布时间】:2015-08-05 14:03:05
【问题描述】:

是否可以运行 DSC 配置并从 Set-TargetResource 获取 WhatIf 输出?我编写了一个自定义资源,Set 函数具有 WhatIf/ShouldProcess 工作所需的所有代码(事实上,如果您使用 -WhatIf 手动调用 Set-TargetResource,它会按预期工作)。

当使用 -WhatIf 调用 Start-DSCConfiguration 时,我得到的只是:

What if: [SERVERNAME]: LCM:  [ Start  Set      ]
What if: [SERVERNAME]: LCM:  [ Start  Resource ]  [[Isi_Share]test]
What if: [SERVERNAME]: LCM:  [ Start  Test     ]  [[Isi_Share]test]
What if: [SERVERNAME]: LCM:  [ End    Test     ]  [[Isi_Share]test]  in 0.0310 seconds.
What if: [SERVERNAME]: LCM:  [ Skip   Set      ]  [[Isi_Share]test]
What if: [SERVERNAME]: LCM:  [ End    Resource ]  [[Isi_Share]test]
What if: [SERVERNAME]: LCM:  [ Start  Resource ]  [[Isi_Share]test2]
What if: [SERVERNAME]: LCM:  [ Start  Test     ]  [[Isi_Share]test2]
What if: [SERVERNAME]: LCM:  [ End    Test     ]  [[Isi_Share]test2]  in 0.0470 seconds.
What if: [SERVERNAME]: LCM:  [ Start  Set      ]  [[Isi_Share]test2]
What if: [SERVERNAME]: LCM:  [ End    Set      ]  [[Isi_Share]test2]  in 0.0150 seconds.
What if: [SERVERNAME]: LCM:  [ End    Resource ]  [[Isi_Share]test2]
What if: [SERVERNAME]: LCM:  [ End    Set      ]

当我真正想要的是它真正调用 Test 函数时,然后使用 -WhatIf 调用 Set 以便我得到这个输出(由我在 Set-TargetResource 中调用 ShouldProcess() 生成:

What if: Performing the operation "Create Directory" on target "/ifs/a".
What if: Performing the operation "Create Share" on target "/ifs/a".

这可能吗?

【问题讨论】:

    标签: powershell dsc


    【解决方案1】:

    不,你不能那样做。手动是它工作的唯一方法。

    根据您的经验,-whatif 会告诉您哪些资源会被调用,但不会调用它们。您的函数需要被调用以处理其中的 whatif。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-18
      • 1970-01-01
      • 2014-09-25
      • 2017-08-22
      • 2018-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多