Ich bin ein wenig verloren, warum ich nicht in der Lage, einen Registrierungsschlüssel Wert vor, eine Änderung dann sammeln Sie den Wert nach der Änderung zu bestätigen Die Änderung war erfolgreich.Erstellen eines Vorher und Nachher von einem Registrierungsschlüssel Wert auf einem Remote-Server
Ich verwende den folgenden Code, der die richtigen Werte erhält, aber keine Änderungen an LogMaxHistory
oder LogLevel
widerspiegelt.
Mache ich etwas falsch?
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
}
Nach einigem Suchen habe ich gelandet [hier] (http://powershell.com/cs/ Foren/t/15009.aspx), die die Änderung der Registrierung in einer Zeile zeigt. Bei Verwendung der gleichen Ein-Zeilen-Methode erhalte ich den Wert vor der Änderung mit 'GetValue' anstelle von 'SetValue' und alles funktioniert wie gewünscht. – user4317867