命令:
appcmd lock config -section:...
将锁定指定的配置部分。但是我需要检查配置部分是否被锁定。
有没有可行的方法呢?谢谢你的回复!
答案 0 :(得分:2)
我知道这已经有几年了,但我正在为Puppet寻找这个,所以这就是我想出来的。
命令Get-WebConfigurationLock显示配置部分是否存在任何锁定。
E.g。检查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,因为您可以将锁定/解锁作为参数传递,而不是更改命令本身。
不确定Chef的样子虽然在这里我已创建的木偶定义解锁/锁定部分以供参考: https://gist.github.com/krutisfood/d59b3a5c62f6123bf553
作为参考我发现这个Stack Overflow链接Programmatically unlocking IIS configuration sections in Powershell虽然发现Get-WebConfigurationLock更准确地匹配锁定状态,甚至重新加载dll或powershell窗口获取属性值经常在锁定时显示IsLocked为false。因人而异。