UWF_RegistryFilter

Agrega o quita las exclusiones del registro del filtrado de filtro de escritura unificada (UWF) y también confirma los cambios del Registro.

Sintaxis

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
    );
};

Members

En las tablas siguientes se enumeran los métodos y propiedades que pertenecen a esta clase.

Método Descripción
UWF_RegistryFilter.AddExclusion Agrega una clave del Registro a la lista de exclusión del Registro para UWF.
UWF_RegistryFilter.CommitRegistry Confirma los cambios en la clave y el valor del Registro especificados.
UWF_RegistryFilter.CommitRegistryDeletion Elimina la clave de registro o el valor de registro especificados y confirma la eliminación.
UWF_RegistryFilter.FindExclusion Determina si una clave del Registro específica se excluye de la filtración por UWF.
UWF_RegistryFilter.GetExclusions Recupera todas las exclusiones de clave del Registro de un sistema protegido por UWF.
UWF_RegistryFilter.RemoveExclusion Quita una clave del Registro de la lista de exclusión del Registro para el filtro de escritura unificado (UWF).

Propiedades

Propiedad Tipo de datos Calificadores Descripción
CurrentSession Boolean [key, read] Indica la sesión para la que el objeto contiene la configuración.
- True si la configuración es para la sesión
- actual False si la configuración es para la siguiente sesión que sigue a un reinicio.
PersistDomainSecretKey Boolean [lectura, escritura] Indica si la clave del Registro del secreto de dominio está en la lista de exclusión del Registro. Si la clave del Registro no está en la lista de exclusión, los cambios no se conservan después de un reinicio.
- True para incluir en la lista
de exclusión: en caso contrario , False.
PersistTSCAL Boolean [lectura, escritura] Indica si la clave del Registro de licencia de acceso de cliente (TSCAL) de Terminal Server está en la lista de exclusión del registro UWF. Si la clave del Registro no está en la lista de exclusión, los cambios no se conservan después de un reinicio.
- True para incluir en la lista
de exclusión; de lo contrario, se establece en False.

Comentarios

Las adiciones o eliminaciones de exclusiones del Registro, incluidos los cambios en los valores de PersistDomainSecretKey y PersistTSCAL, surten efecto después del siguiente reinicio en el que está habilitado UWF.

Solo puede agregar claves del Registro en la raíz del registro HKLM a la lista de exclusión del registro UWF.

También puede usar UWF_RegistryFilter para excluir la clave del Registro secreto de dominio y la clave del Registro TSCAL del filtrado UWF.

Ejemplo

En el ejemplo siguiente se muestra cómo administrar exclusiones del registro UWF mediante el proveedor Instrumental de administración de Windows (WMI) en un script de PowerShell.

El script de PowerShell crea cuatro funciones y, a continuación, muestra cómo usarlas.

La primera función, Get-RegistryExclusions, muestra una lista de exclusiones del registro UWF para la sesión actual y la siguiente sesión que sigue a un reinicio.

La segunda función Add-RegistryExclusion agrega una entrada del Registro a la lista de exclusión del registro UWF después de reiniciar el dispositivo.

La tercera función , Remove-RegistryExclusion, quita una entrada del Registro de la lista de exclusión de UWF después de reiniciar el dispositivo.

La cuarta función , Clear-RegistryExclusions, quita todas las exclusiones del registro UWF. Debe reiniciar el dispositivo antes de que UWF deje de filtrar las exclusiones.

$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

Requisitos

Edición de Windows Compatible
Windows Home No
Windows Pro No
Windows Enterprise
Windows Education
Windows IoT Enterprise