UWF _ RegistryFilter

Agrega o quita las exclusiones del Registro del filtrado de filtro de escritura unificado (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
    );
};

Miembros

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

Métodos

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 realizados en la clave y el valor del Registro especificados.

UWF_RegistryFilter.CommitRegistryDeletion

Elimina la clave del Registro o el valor del Registro especificados y confirma la eliminación.

UWF_RegistryFilter.FindExclusion

Determina si UWF excluye una clave del Registro específica de la filtración.

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 para qué sesión contiene la configuración el objeto.

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 secreta de dominio del Registro 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.

Establezca en True para incluir en la lista de exclusión; De lo contrario, establezca en False.

PersistTSCAL

Boolean

[lectura, escritura]

Indica si la clave del Registro de la 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.

Establezca en True para incluir en la lista de exclusión; De lo contrario, establezca en False.

Comentarios

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

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 de secretos de dominio y la clave del Registro TSCAL del filtrado de UWF.

Ejemplo

En el ejemplo siguiente se muestra cómo administrar las exclusiones del registro UWF mediante el proveedor Windows Management Instrumentation (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 10 Home No
Windows 10 Pro No
Windows 10 Enterprise
Windows 10 Education

Unified Write Filter