UWF_RegistryFilter

Ajoute ou supprime les exclusions de Registre du filtrage UWF (Unified Write Filter) et valide également les modifications du Registre.

Syntaxe

class UWF_RegistryFilter{
    [key, Read] boolean CurrentSession;
    [Read, Write] boolean PersistDomainSecretKey;
    [Read, Write] boolean PersistTSCAL;

    UInt32 AddExclusion(
        string RegistryKey
    );
    UInt32 RemoveExclusion(
        string RegistryKey
    );
    UInt32 FindExclusion(
        [in] string RegistryKey,
        [out] boolean bFound
    );
    UInt32 GetExclusions(
        [out, EmbeddedInstance("UWF_ExcludedRegistryKey")] string ExcludedKeys[]
    );
    UInt32 CommitRegistry(
        [in] string RegistryKey,
        [in] string ValueName
    );
    UInt32 CommitRegistryDeletion(
        string Registrykey,
        string ValueName
    );
};

Membres

Les tableaux suivants répertorient les méthodes et les propriétés qui appartiennent à cette classe.

Méthode Description
UWF_RegistryFilter.AddExclusion Ajoute une clé de Registre à la liste d’exclusions du Registre pour UWF.
UWF_RegistryFilter.CommitRegistry Valide les modifications apportées à la clé et à la valeur de Registre spécifiées.
UWF_RegistryFilter.CommitRegistryDeletion Supprime la clé de Registre ou la valeur de Registre spécifiée, et valide la suppression.
UWF_RegistryFilter.FindExclusion Détermine si une clé de Registre spécifique est exclue du filtrage par UWF.
UWF_RegistryFilter.GetExclusions Récupère toutes les exclusions de clé de Registre d’un système protégé par UWF
UWF_RegistryFilter.RemoveExclusion Supprime une clé de Registre de la liste d’exclusions du Registre pour le filtre D’écriture unifiée (UWF).

Propriétés

Propriété Type de données Qualificateurs Description
CurrentSession Booléen [clé, lecture] Indique la session pour laquelle l’objet contient des paramètres.
- True si les paramètres sont pour la session
- active False si les paramètres sont pour la session suivante qui suit un redémarrage.
PersistDomainSecretKey Booléen [lire, écrire] Indique si la clé de Registre des secrets de domaine figure dans la liste d’exclusions du Registre. Si la clé de Registre ne figure pas dans la liste d’exclusions, les modifications ne sont pas conservées après un redémarrage.
- True à inclure dans la liste d’exclusions
- Sinon False.
PersistTSCAL Boolean [lire, écrire] Indique si la clé de Registre TSCAL (Terminal Server Client Access License) se trouve dans la liste d’exclusions du Registre UWF. Si la clé de Registre ne figure pas dans la liste d’exclusions, les modifications ne sont pas conservées après un redémarrage.
- True à inclure dans la liste d’exclusions
. Sinon, définissez sur False

Remarques

Les ajouts ou les suppressions d’exclusions de Registre, y compris les modifications apportées aux valeurs de PersistDomainSecretKey et PersistTSCAL, prennent effet après le prochain redémarrage dans lequel UWF est activé.

Vous pouvez uniquement ajouter des clés de Registre à la racine du Registre HKLM à la liste d’exclusions du Registre UWF.

Vous pouvez également utiliser UWF_RegistryFilter pour exclure la clé de Registre des secrets de domaine et la clé de Registre TSCAL du filtrage UWF.

Exemple

L’exemple suivant montre comment gérer les exclusions de Registre UWF à l’aide du fournisseur Windows Management Instrumentation (WMI) dans un script PowerShell.

Le script PowerShell crée quatre fonctions, puis montre comment les utiliser.

La première fonction, Get-RegistryExclusions, affiche une liste d’exclusions de Registre UWF pour la session active et la session suivante qui suit un redémarrage.

La deuxième fonction, Add-RegistryExclusion, ajoute une entrée de Registre à la liste d’exclusions du Registre UWF après avoir redémarré l’appareil.

La troisième fonction, Remove-RegistryExclusion, supprime une entrée de Registre de la liste d’exclusions UWF après avoir redémarré l’appareil.

La quatrième fonction, Clear-RegistryExclusions, supprime toutes les exclusions de Registre UWF. Vous devez redémarrer l’appareil avant qu’UWF cesse de filtrer les exclusions.

$COMPUTER = "EMBEDDEDDEVICE"
$NAMESPACE = "root\standardcimv2\embedded"

# Define common parameters

$CommonParams = @{"namespace"=$NAMESPACE; "computer"=$COMPUTER}

function Get-RegistryExclusions() {

# This function lists the UWF registry exclusions, both
# for the current session as well as the next session after a restart.


# Get the UWF_RegistryFilter configuration for the current session

    $currentConfig = Get-WMIObject -class UWF_RegistryFilter @CommonParams |
        where {
            $_.CurrentSession -eq $true
        };

# Get the UWF_RegistryFilter configuration for the next session after a restart

    $nextConfig = Get-WMIObject -class UWF_RegistryFilter @CommonParams |
        where {
            $_.CurrentSession -eq $false
        };

# Display registry exclusions for the current session

    if ($currentConfig) {

        Write-Host ""
        Write-Host "The following registry entries are currently excluded from UWF filtering:";

        $currentExcludedList = $currentConfig.GetExclusions()

        if ($currentExcludedList.ExcludedKeys) {
            foreach ($registryExclusion in $currentExcludedList.ExcludedKeys)  {
                Write-Host "  " $registryExclusion.RegistryKey
            }
        } else {
            Write-Host "  None"
        }
    } else {
        Write-Error "Could not retrieve UWF_RegistryFilter.";
}

# Display registry exclusions for the next session after a restart

    if ($nextConfig) {

        Write-Host ""
        Write-Host "The following registry entries will be excluded from UWF filtering after the next restart:";

        $nextExcludedList = $nextConfig.GetExclusions()

        if ($nextExcludedList.ExcludedKeys) {
            foreach ($registryExclusion in $nextExcludedList.ExcludedKeys)  {
                Write-Host "  " $registryExclusion.RegistryKey
            }
        } else {
            Write-Host "  None"
        }
        Write-Host ""
    }
}

function Add-RegistryExclusion($exclusion) {

# This function adds a new UWF registry exclusion.
# The new registry exclusion takes effect the next time the device is restarted and UWF is enabled.

# $exclusion is the path of the registry exclusion

# Get the UWF_RegistryFilter configuration for the next session after a restart

    $nextConfig = Get-WMIObject -class UWF_RegistryFilter @CommonParams |
        where {
            $_.CurrentSession -eq $false
        };

# Add the exclusion

    if ($nextConfig) {
        $nextConfig.AddExclusion($exclusion) | Out-Null;
        Write-Host "Added exclusion $exclusion.";
    } else {
        Write-Error "Could not retrieve UWF_RegistryFilter";
    }
}

function Remove-RegistryExclusion($exclusion) {

# This function removes a UWF registry exclusion.
# The registry exclusion is removed the next time the device is restarted

# $exclusion is the path of the registry exclusion

# Get the UWF_RegistryFilter configuration for the next session after a restart

    $nextConfig = Get-WMIObject -class UWF_RegistryFilter @CommonParams |
        where {
            $_.CurrentSession -eq $false
        };

# Try to remove the exclusion

    if ($nextConfig) {
        try {
            $nextConfig.RemoveExclusion($exclusion) | Out-Null;
            Write-Host "Removed exclusion $exclusion.";
        } catch {
            Write-Host "Could not remove exclusion $exclusion."
        }
    } else {
        Write-Error "Could not retrieve UWF_RegistryFilter";
    }
}

function Clear-RegistryExclusions() {

# This function removes all UWF registry exclusions
# The registry exclusions are removed the next time the device is restarted

# Get the configuration for the next session

    $nextConfig = Get-WMIObject -class UWF_RegistryFilter @CommonParams |
        where {
            $_.CurrentSession -eq $false
        };

# Remove all registry exclusions

    if ($nextConfig) {

        Write-Host "Removing all registry exclusions:";

        $nextExcludedList = $nextConfig.GetExclusions()

        if ($nextExcludedList) {
            foreach ($registryExclusion in $nextExcludedList.ExcludedKeys)  {
                Write-Host "Removing:" $registryExclusion.RegistryKey
                $nextConfig.RemoveExclusion($registryExclusion.RegistryKey) | Out-Null
            }
        } else {
            Write-Host "No registry exclusions to remove."
        }
        Write-Host ""
    }
}

# Some examples of using the functions

Clear-RegistryExclusions

Get-RegistryExclusions

Add-RegistryExclusion "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer"
Add-RegistryExclusion "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\DateTime\Servers\(Default)"

Get-RegistryExclusions

Remove-RegistryExclusion "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer"

Get-RegistryExclusions

Clear-RegistryExclusions

Configuration requise

Édition Windows Prise en charge
Windows Famille Non
Windows Pro Non
Windows Entreprise Oui
Windows Éducation Oui
Windows IoT Entreprise Oui