txwinrm を使用して監視するために、Windows Server 2012(およびServer 2008が次の優先事項です)を持っています。 txwinrmライブラリは内部でWinRSプロトコルを使用しています。最小限の特権を持つユーザーを使用して監視する必要がありますが、彼のアクセスを構成する方法がわかりません。
私が管理したのは、ユーザーのリモートPowershellセッションを構成することだけですが、winrsセッションとpowershellセッションには異なるセキュリティ記述子があるようです。
Invoke-Command -ComputerName 192.168.173.206 -Credential (credential Administrator $pwd) -ScriptBlock { 2 + 2}
# gives 4
Invoke-Command -ComputerName 192.168.173.206 -Credential (credential lpu1 $pwd) -ScriptBlock { 2 + 2}
# gives 4
winrs -r:192.168.173.206 -u:Administrator -p:$pwd 'powershell -command "2+2"'
# gives 4
winrs -r:192.168.173.206 -u:lpu1 -p:$pwd 'powershell -command "2+2"'
# Gives Winrs error: Access is denied.
ユーザーの構成は次のとおりです。
(Get-Item WSMan:\localhost\Service\RootSDDL).value
# O:NSG:BAD:P(A;;GA;;;BA)(A;;GA;;;S-1-5-21-3231263931-1371906242-1889625497-1141)S:P(AU;FA;GA;;;WD)(AU;SA;GWGX;;;WD)
(Get-PSSessionConfiguration -name Microsoft.Powershell).SecurityDescriptorSddl
# O:NSG:BAD:P(A;;GA;;;BA)(A;;GA;;;S-1-5-21-3231263931-1371906242-1889625497-1149)S:P(AU;FA;GA;;;WD)(AU;SA;GXGW;;;WD)
(各セキュリティ記述子で、ユーザーには保護されたオブジェクトへの一般的なアクセス権が与えられます)。
では、管理者以外のユーザーがwinrsクエリを機能させるには、どのセキュリティ記述子を設定する必要がありますか?
UPD:最近、私はそのことを発見しました winrmシェルに関する情報を取得できました :
winrm enumerate Shell
Shell
ShellId = 3793B153-CCCF-4500-99FB-8534074E1738
ResourceUri = http://schemas.Microsoft.com/wbem/wsman/1/windows/Shell/cmd
また、WSMan:\localhost\Plugin
ディレクトリにそのようなリソースURIは見つかりませんでした。 :( Documentation の状態:
リソースURIを使用して、シェルインスタンスに固有のプラグイン構成を取得できます。
しかし、そのプラグイン構成を取得する方法とそれを変更する方法は?
機能するのは
winrm configSDDL default
そして、読み取り権と実行権を許可します。しかし奇妙なことに、その設定はWSMan:\localhost\Service\RootSDDL
と同じです。 winrm configSDDLがキャッシュまたは何かをリロードすることが原因である可能性があります。
winrmサーバー上のユーザーを「リモート管理ユーザー」グループに追加する必要があります
とても簡単です。