PowerShell所需状态配置-WhatIf

PowerShell所需状态配置-WhatIf,powershell,dsc,Powershell,Dsc,是否可以运行DSC配置并从Set-TargetResource获取WhatIf输出?我已经编写了一个自定义资源,Set函数具有WhatIf/ShouldProcess工作所需的所有代码(事实上,如果您使用-WhatIf手动调用Set TargetResource,它将按预期工作) 使用-WhatIf调用Start DSCConfiguration时,我得到的结果是: What if: [SERVERNAME]: LCM: [ Start Set ] What if: [SERVER

是否可以运行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函数for real,然后用-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".

这可能吗?

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

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