Bestimmte Konfigurationen erfordern die Erstellung oder Änderung von Registrierungsschlüsseln auf den Systemen deiner Endbenutzer. Wenn du von Gruppenrichtlinienobjekten (GPOs) umsteigst, bist du es vielleicht gewohnt, sie zur Verwaltung von Registrierungsschlüsseln zu verwenden. Leider fehlt Intune die Funktionalität zur Verwaltung von "Einstellungen", einschliesslich der Verwaltung von Registrierungsschlüsseln. Aber keine Sorge, es gibt alternative Methoden, um dieselben Aufgaben effizient zu erledigen. In diesem Artikel werden wir diese alternativen Ansätze zur Verwaltung von Registrierungsschlüsseln in Intune erkunden.

Table of Contents

Einmalige Erstellung oder Änderung mit einem PowerShell-Skript

Der einfachste Weg ist die Verwendung eines PowerShell-Skripts, um einen oder mehrere Schlüssel zu setzen.
Zu diesem Zweck habe ich einen kleinen Skriptblock erstellt, den du für mehrere Einträge duplizieren kannst. Definiere einfach die vier Variablen für den Registrierungspfad, den Namen des Schlüssels, das Format des Schlüssels und den Wert.

Im folgenden Beispiel setze ich den Schlüssel, um Roaming-Signaturen in Outlook zu deaktivieren.

Dieses Skript muss als Benutzer bereitgestellt werden, da es im Kontext von "HKEY_CURRENT_USER" liegt. Wenn der Schlüssel in "HKEY_LOCAL_MACHINE" ist, musst du das Skript als System ausführen. Beachte auch, dass "HKEY_CURRENT_USER" "HKCU:" und "HKEY_LOCAL_MACHINE" "HKLM:" ist.

$Path = "HKCU:\Software\Microsoft\Office\16.0\Outlook\Setup"
$Key = "DisableRoamingSignaturesTemporaryToggle" 
$KeyFormat = "dword"
$Value = "1"

if(!(Test-Path $Path)){New-Item -Path $Path -Force}
if(!$Key){Set-Item -Path $Path -Value $Value
}else{Set-ItemProperty -Path $Path -Name $Key -Value $Value -Type $KeyFormat}
Code language: PowerShell (powershell)

Überwachter Registrierungsschlüssel mit (Proactive) Remediations

Der Nachteil von über das Skript gesetzten Schlüsseln ist, dass sie nur einmal gesetzt werden. Wenn der Benutzer oder ein Administrator jedoch beschliesst, den Schlüssel zu ändern oder möglicherweise nur eine Option in einem Programm, kann der Schlüssel zurückgesetzt oder in einen nicht konformen Zustand geändert werden.

Um den gewünschten Zustand zu überwachen und zu beheben, kannst du die Behebungsfunktion in Intune verwenden.

Remediations stehen nur Kunden mit Enterprise Lizenzen zur Verfügung.
Welche Lizenzen kompatibel sind findest du hier: Remediations | Microsoft Learn

Was du in jedem Skript (Detection und Remediation) angeben musst, sind die gleichen Details wie im klassischen Skript. Dieses Mal wird die Erkennung jedoch planmässig ausgeführt und überprüft den Schlüssel und den Wert. Wenn er sich nicht im gewünschten Zustand befindet, wird die Behebung aktiviert, um den Schlüssel richtig zu setzen.

Wie du ein Remediation Paket erstellen kannst, zeige ich hier: Endpoint Analytics Proactive Remediation Community (scloud.work)

Detection of Registry Key

$Path = "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Power"
$Name = "HiberbootEnabled"
$Value = 0

Try {
    $Registry = Get-ItemProperty -Path $Path -Name $Name -ErrorAction Stop | Select-Object -ExpandProperty $Name
    If ($Registry -eq $Value){
        Write-Output "Compliant"
        Exit 0
    } 
    Write-Warning "Not Compliant"
    Exit 1
} 
Catch {
    Write-Warning "Not Compliant"
    Exit 1
}Code language: PowerShell (powershell)

Remediation of Registry Key

$Path = "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Power"
$Key = "HiberbootEnabled" 
$KeyFormat = "DWORD"
$Value = 0

try{
    if(!(Test-Path $Path)){New-Item -Path $Path -Force}
    if(!$Key){Set-Item -Path $Path -Value $Value}
    else{Set-ItemProperty -Path $Path -Name $Key -Value $Value -Type $KeyFormat}
    Write-Output "Key set: $Key = $Value"
}catch{
    Write-Error $_
}
Code language: PowerShell (powershell)

"Überwacht" mit einer Win32 Applikation

Wenn du keine Unternehmenslizenzen hast, kannst du eine ähnliche Erkennungsmethode über eine Win32-Anwendung verwenden. Die Überprüfung erfolgt nicht nach einem festgelegten Zeitplan, und es gibt keine Überwachung wie bei den Behebungen, aber wenn der Schlüssel geändert wird, wird er wieder im richtigen Format gesetzt.

Als Installationsdatei kannst du die Behebung von oben verwenden.

Bei der Erkennung hast du zwei Optionen, entweder verwendest du eine leicht modifizierte Version des Erkennungsskripts oder du baust die Erkennung im Intune-Portal ein.

Mein Paket kann auf GitHub heruntergeladen werden:

Eine andere Möglichkeit wäre der Import einer ".reg"-Datei, hier gezeigt von Gannon: Make Registry Changes with Intune Win32 Apps - SMBtotheCloud

Win32 Erkennungsregel über PowerShell

Hier ist die Erkennung eines Registrierungsschlüssels:

$Path = "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Power"
$Key = "HiberbootEnabled"
$Value = 0

Try {
    $Registry = Get-ItemProperty -Path $Path -Name $Key -ErrorAction Stop | Select-Object -ExpandProperty $Key
    If ($Registry -eq $Value){
        $Detection = $true
    } 
    exit 1
} 
Catch {
    exit 1
}

if($Detection -eq $true){
    Write-Host "Found it!"
}else{exit 1}
Code language: PowerShell (powershell)

Um die Erkennung für mehrere Schlüssel zu verwenden, multipliziere einfach die Zeilen 1-14.

Win32 Erkenungsregel mit der Intune Funktion

Um die Intune-Funktionalität für die Erkennung zu verwenden, wähle "Manuelle Konfiguration der Erkennungsregeln" und füge den Schlüssel entsprechend deinen Bedürfnissen hinzu:

Intune Detection rule, registry key

Conclusion

Zusammenfassend lässt sich sagen, dass die Verwaltung von Registrierungsschlüsseln in Intune alternative Methoden erfordern kann, insbesondere wenn du daran gewöhnt bist, sie mit Gruppenrichtlinienobjekten (GPOs) zu verwalten. Obwohl Intune die direkte Funktionalität zur Verwaltung von "Einstellungen", einschließlich der Verwaltung von Registrierungsschlüsseln, fehlt, kannst du dennoch effizient deine gewünschten Konfigurationen erreichen. In diesem Artikel haben wir mehrere Ansätze zur Verwaltung von Registrierungsschlüsseln in Intune erkundet.

Der einfachste Weg besteht darin, ein PowerShell-Skript zu verwenden, um Registrierungsschlüssel auf den Systemen deiner Endbenutzer zu erstellen oder zu ändern. Dieses Skript kann als Benutzer oder, im Fall von "HKEY_LOCAL_MACHINE"-Schlüsseln, als System bereitgestellt werden. Es ist jedoch wichtig zu beachten, dass diese Methode die Schlüssel nur einmal setzt und möglicherweise nicht die Konformität aufrechterhält, wenn Benutzer oder Administratoren Änderungen vornehmen.

Für eine robustere Lösung, insbesondere für Unternehmenskunden, kannst du die Behebungsfunktion in Intune verwenden. Diese Funktion ermöglicht es, den gewünschten Zustand des Registrierungsschlüssels zu überwachen und zu beheben, um die kontinuierliche Konformität sicherzustellen. Du kannst Erkennungs- und Behebungsskripte verwenden, um dies zu erreichen.

Wenn du keine Unternehmenslizenzen hast, kannst du eine ähnliche Erkennungsmethode über eine Win32-Anwendung verwenden. Obwohl diese Methode keine geplante Überwachung wie die Behebungen bietet, kann sie das Registrierungsschlüsselformat korrigieren, wenn es sich ändert.

In allen Fällen liegt der Schlüssel zu einer erfolgreichen Verwaltung von Registrierungsschlüsseln in Intune in sorgfältiger Planung und der Wahl der geeignetsten Methode für deine speziellen Anforderungen. Ob du dich für PowerShell-Skripte, Behebungen oder Win32-Anwendungen entscheidest, Intune bietet flexible Optionen zur Verwaltung von Registrierungsschlüsseln, um dir bei der Aufrechterhaltung deiner gewünschten Systemkonfigurationen zu helfen.