命令:
appcmd lock config -section:...
将锁定指定的配置部分。但我需要检查配置部分是否被锁定。
有没有办法做到这一点?感谢您的回复!
命令:
appcmd lock config -section:...
将锁定指定的配置部分。但我需要检查配置部分是否被锁定。
有没有办法做到这一点?感谢您的回复!
我知道这已经有几年了,但我正在为 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。