1

命令:

appcmd lock config -section:...

将锁定指定的配置部分。但我需要检查配置部分是否被锁定。

有没有办法做到这一点?感谢您的回复!

4

1 回答 1

2

我知道这已经有几年了,但我正在为 Puppet 寻找这个,所以这就是我想出的。

命令 Get-WebConfigurationLock 显示配置部分是否存在任何锁。

例如,检查 system.webServer/security/ipSecurity 的 IIS 全局配置部分:

Get-WebConfigurationLock -PSPath "IIS:\" -Filter //system.webServer/security/ipSecurity

如果该部分已解锁,则上述命令将返回 null。例如“如果锁定则解锁”:

if (Get-WebConfigurationLock -PSPath "IIS:\" -Filter //system.webServer/security/ipSecurity)  {
    %windir%/System32/inetsrv/appcmd.exe unlock config -section:system.webServer/security/ipSecurity
} else {
    Write-Host "Already unlocked"
}

可以使用 Remove-WebConfigurationLock 代替 appcmd,我更喜欢 appcmd,因为您可以将 lock/unlock 作为参数传递,而不是更改命令本身。

不确定 Chef 的样子,尽管这是我创建的用于解锁/锁定部分以供参考的 puppet 定义: https ://gist.github.com/krutisfood/d59b3a5c62f6123bf553

作为参考,我发现这个 Stack Overflow 链接Programmatically unlocking IIS configuration section in Powershell虽然发现 Get-WebConfigurationLock 更准确地匹配锁定状态,即使重新加载 dll 或获取属性值的 powershell 窗口通常在锁定时显示 IsLocked false。ymmv。

于 2015-04-23T04:21:18.983 回答