私は少し前にレジストリキーの値を取得できないので、変更を加えてから変更後の値を収集して確認します変更は成功しました。リモートサーバ上のレジストリキーの値から前と後を作成する
私は正しい値を取得しますが、私がLogMaxHistory
またはLogLevel
に行った変更を反映していない次のコードを使用しています。
私は間違ったことをしていますか?あなたはRegquery
を使用することができます
foreach ($server in $servers) {
$Reg = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey("LocalMachine", $server)
$RegSubKey = $Reg.OpenSubKey("SOFTWARE\\Microsoft\\CCM\\Logging\\@Global", $true)
$LogLevelBefore = $RegSubKey.GetValue('LogLevel')
$LogMaxHistoryBefore = $RegSubKey.GetValue('LogMaxHistory')
$RegSubKey = $Reg.SetValue('LogLevel', '0', [Microsoft.Win32.RegistryValueKind]::DWORD)
$RegSubKey = $Reg.SetValue('LogMaxHistory', '6', [Microsoft.Win32.RegistryValueKind]::DWORD)
$RegCheck = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey("LocalMachine", $server)
$RegCheck = $RegCheck.OpenSubKey("SOFTWARE\\Microsoft\\CCM\\Logging\\@Global")
$LogLevelAfter = $RegCheck.GetValue('LogLevel')
$LogMaxHistoryAfter = $RegCheck.GetValue('LogMaxHistory')
[pscustomobject]@{
ComputerName = $server
LogLevelBefore = $LogLevelBefore
LogMaxHistoryBefore = $LogMaxHistoryBefore
LogLevelAfter = $LogLevelAfter
LogMaxHistoryAfter = $LogMaxHistoryAfter
}
$Reg.Close()
$RegCheck.Close()
GSV -ComputerName $server -Name CcmExec | Restart-Service
}
いくつか検索した後、私は[こちら]上陸(http://powershell.com/cs/ forums/t/15009.aspx)には、レジストリの変更が1行で表示されます。同じ1行のアプローチを使用して、私は 'SetValue'の代わりに' GetValue'を使って変更前の値を取得します。 – user4317867