Partager via


UWF_RegistryFilter

Ajoute ou supprime des 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 propriétés qui appartiennent à cette classe.

Méthode Description
UWF_RegistryFilter.AddExclusion Ajoute une clé de Registre à la liste d’exclusions de 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 d’être filtrée 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 de Registre pour le filtre d’écriture unifié (UWF).

Propriétés

Propriété Type de données Qualificateurs Description
CurrentSession Boolean [clé, lecture] Indique la session pour laquelle l’objet contient les paramètres.
- True si les paramètres sont pour la session
- active False si les paramètres concernent la session suivante qui suit un redémarrage.
PersistDomainSecretKey Boolean [lecture, écriture] Indique si la clé de Registre de secret de domaine se trouve dans la liste d’exclusions du Registre. Si la clé de Registre n’est 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 [lecture, écriture] 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 n’est 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éfini sur False

Notes

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

Vous pouvez uniquement ajouter des clés de Registre à la racine du registre HKLM à la liste d’exclusions de 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 WMI (Windows Management Instrumentation) 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 de 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 que 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

Spécifications

Édition Windows Pris en charge
Windows Édition familiale Non
Windows Pro Non
Windows Entreprise Oui
Windows Éducation Oui
Windows IoT Entreprise Oui