Powershell 自定义资源:每次重新应用设置可以吗?

Powershell 自定义资源:每次重新应用设置可以吗?,powershell,dsc,Powershell,Dsc,我有一些机会创建自定义DSC资源,但最近我无法验证配置是否已应用。两个例子是: 使用用户名/密码设置应用程序服务帐户。我无法读取密码以验证其设置是否正确 向RSA密钥容器添加帐户访问权限(通过aspnet\u regais-pa) 虽然我可能会错过一些有助于这些特定场景的东西。。。我仍然有一个普遍的问题:每次应用DSC配置时都可以重新应用设置吗?换句话说,让测试目标资源始终返回$false 说: 在一个序列中多次调用Set-TargetResource函数 使用相同的参数值总是等同于调用它

我有一些机会创建自定义DSC资源,但最近我无法验证配置是否已应用。两个例子是:

  • 使用用户名/密码设置应用程序服务帐户。我无法读取密码以验证其设置是否正确
  • 向RSA密钥容器添加帐户访问权限(通过
    aspnet\u regais-pa
虽然我可能会错过一些有助于这些特定场景的东西。。。我仍然有一个普遍的问题:每次应用DSC配置时都可以重新应用设置吗?换句话说,让
测试目标资源
始终返回
$false

说:

在一个序列中多次调用Set-TargetResource函数 使用相同的参数值总是等同于调用它 一次

…所以重新申请似乎没问题。这可能会浪费一点性能。

关于手头的问题 我认为总的来说,正如你所猜测的那样,总是使用它是可以的,但是当然要注意任何副作用

例如,是否存在有效的密码策略,强制帐户密码每N天重置一次?如果是这样的话,您可能实际上无意中取消了该政策(这只是一个示例;实际上,仔细看我的示例可能没有意义)

显然,如果您的更改需要重新启动才能生效,您不希望总是进行设置,因为您要么不强制重新启动,因此不设置状态,要么总是重新启动

记录/监测 请注意,如果您正在对系统状态和漂移进行任何类型的监视,那么这种方法可能会有问题。我个人还没有到那里,但我可以看出,每30到60分钟让一台机器显示为“未处于配置中”将是一个问题

你的情景 当涉及到测试用户的密码时,我相信你可以做到这一点。如果要设置密码,则必须已经嵌入密码,因此不要尝试读取密码,而是尝试使用您知道的密码作为用户进行身份验证


至于RSA的事情。。我不熟悉这个场景,所以我不知道。

无耻促销:查看DSC资源。它将正确地测试RSA密钥容器是否对其具有权限。它用于检查私钥权限。这些最终将成为2.0的一部分。您应该非常非常努力地从
Test TargetResource
返回正确的值,但有时您不能,比如在设置服务的凭据时。甚至微软自己的
服务
资源也不能做到这一点。它不处理服务帐户密码更改。