1

コマンド:

appcmd lock config -section:...

指定された構成セクションをロックします。しかし、構成セクションがロックされているかどうかを確認する必要があります。

それを行う方法はありますか?返信ありがとうございます。

4

1 に答える 1

2

私はこれが数年前のものであることを知っていますが、私はパペットのためにこれを探していたので、ここに私が思いついたものがあります.

コマンド 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 を好みました。

シェフがどのように見えるかはわかりませんが、参照用にセクションのロックを解除/ロックするために作成した人形の定義は次のとおりです

参考までに、このスタック オーバーフロー リンクProgrammatically unlocking IIS configuration sections in Powershellを見つけましたが、Get-WebConfigurationLock がより正確にロックされた状態と一致し、属性値を取得する dll または PowerShell ウィンドウをリロードしても、ロックされたときに IsLocked false と表示されることがよくあります。ymmv。

于 2015-04-23T04:21:18.983 に答える