UWF_Volume

Diese Klasse verwaltet ein Volume, das durch einheitliche Schreibfilter (UWF) geschützt ist.

Syntax

class UWF_Volume {
    [key, Read] boolean CurrentSession;
    [key, Read] string DriveLetter;
    [key, Read] string VolumeName;
    [Read, Write] boolean BindByDriveLetter;
    [Read] boolean CommitPending;
    [Read, Write] boolean Protected;

    UInt32 CommitFile([in] string FileFullPath);
    UInt32 CommitFileDeletion(string FileName);
    UInt32 Protect();
    UInt32 Unprotect();
    UInt32 SetBindByDriveLetter(boolean bBindByVolumeName);
    UInt32 AddExclusion(string FileName);
    UInt32 RemoveExclusion(string FileName);
    UInt32 RemoveAllExclusions();
    UInt32 FindExclusion([in] string FileName, [out] bFound);
    UInt32 GetExclusions([out, EmbeddedInstance("UWF_ExcludedFile")] string ExcludedFiles[]);

};

Member

In den folgenden Tabellen sind die Methoden und Eigenschaften aufgeführt, die zu dieser Klasse gehören.

Methoden

Methode Beschreibung
UWF_Volume.AddExclusion Fügt der Dateiausschlussliste für ein Volume, das durch UWF geschützt ist, eine Datei oder einen Ordner hinzu.
UWF_Volume.CommitFile Führt auf einem Volume, das durch Unified Write Filter (UWF) geschützt ist, einen Commit für Änderungen von der Überlagerung auf das physische Volume für eine angegebene Datei aus.
UWF_Volume.CommitFileDeletion Löscht eine geschützte Datei von dem Volume und führt einen Commit für den Löschvorgang auf dem physischen Volume aus.
UWF_Volume.FindExclusion Ermittelt, ob eine bestimmte Datei oder ein bestimmter Ordner auf der Ausschlussliste für ein Volume steht, das durch UWF geschützt ist.
UWF_Volume.GetExclusions Ruft eine Liste aller Dateiausschlüsse für ein Volume ab, das durch UWF geschützt ist.
UWF_Volume.Protect Schützt das Volume nach dem nächsten Systemneustart, wenn UWF nach dem Neustart aktiviert ist.
UWF_Volume.RemoveAllExclusions Entfernt alle Dateien und Ordner aus der Dateiausschlussliste für ein durch UWF geschütztes Volume.
UWF_Volume.RemoveExclusion Entfernt eine bestimmte Datei oder einen bestimmten Ordner aus der Dateiausschlussliste für ein Volume, das durch UWF geschützt ist.
UWF_Volume.SetBindByDriveLetter Legt die BindByDriveLetter-Eigenschaft fest, die angibt, ob das UWF-Volume durch den Laufwerkbuchstaben oder den Volumenamen an das physische Volume gebunden ist.
UWF_Volume.Unprotect Deaktiviert den UWF-Schutz des Volumes nach dem nächsten Systemneustart.

Eigenschaften

Eigenschaft Datentyp Qualifizierer BESCHREIBUNG
BindByDriveLetter Boolean [lesen, schreiben] Gibt den Bindungstyp an, den das Volume verwendet.
- True , um das Volume durch DriveLetter(lose Bindung)
- False zu binden, um das Volume durch VolumeName (enge Bindung) zu binden.
CommitPending Boolean [lesen] Zur Verwendung durch Microsoft reserviert.
CurrentSession Boolean [Schlüssel, lesen] Gibt an, für welche Sitzung das Objekt Einstellungen enthält.
- True , wenn einstellungen für die aktuelle Sitzung
- Falsch sind, wenn die Einstellungen für die nächste Sitzung gelten, die auf einen Neustart folgt.
DriveLetter Zeichenfolge [Schlüssel, lesen] Der Laufwerkbuchstabe des Volumes. Wenn das Volume keinen Laufwerkbuchstaben hat, dann ist dieser Wert NULL.
Protected Boolean [lesen, schreiben] Wenn CurrentSessiontrue ist, gibt an, ob das Volume derzeit durch UWF geschützt ist.
Wenn CurrentSessionauf false festgelegt ist, gibt an, ob das Volume in der nächsten Sitzung nach dem Neustart des Geräts geschützt ist.
VolumeName Zeichenfolge [Schlüssel, lesen] Der eindeutige Bezeichner des Volumes im aktuellen System. Der VolumeName entspricht der DeviceID-Eigenschaft der Win32_Volume Klasse für das Volume.

Bemerkungen

Sie müssen ein Administratorkonto verwenden, um Eigenschaften zu ändern oder Methoden aufzurufen, welche die Konfigurationseinstellungen ändern.

UWF-Schutz Aktivieren oder Deaktivieren

Das folgende Beispiel zeigt, wie Sie ein Volume mithilfe des Windows-Verwaltungsinstrumentationsanbieters (WMI) in einem PowerShell-Skript mit UWF schützen oder den UWF-Schutz wieder aufheben.

Das PowerShell-Skript erstellt eine Set-ProtectVolume-Funktion, die den UWF-Schutz für ein Volume aktiviert oder deaktiviert. Anschließend zeigt das Skript, wie Sie die Funktion verwenden.

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

# Define common parameters

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

# Create a function to protect or unprotect a volume based on the drive letter of the volume

function Set-ProtectVolume($driveLetter, [bool] $enabled) {

# Each volume has two entries in UWF_Volume, one for the current session and one for the next session after a restart
# You can only change the protection status of a drive for the next session

    $nextConfig = Get-WMIObject -class UWF_Volume @CommonParams |
        where {
            $_.DriveLetter -eq "$driveLetter" -and $_.CurrentSession -eq $false
        };

# If a volume entry is found for the drive letter, enable or disable protection based on the $enabled parameter

    if ($nextConfig) {

        Write-Host "Setting drive protection on $driveLetter to $enabled"

        if ($Enabled -eq $true) {
            $nextConfig.Protect() | Out-Null;
        } else {
            $nextConfig.Unprotect() | Out-Null;
        }
    }

# If the drive letter does not match a volume, create a new UWF_volume instance

    else {
    Write-Host "Error: Could not find $driveLetter. Protection is not enabled."
    }
}

# The following sample commands demonstrate how to use the Set-ProtectVolume function
# to protect and unprotect volumes

Set-ProtectVolume "C:" $true
Set-ProtectVolume "D:" $true

Set-ProtectVolume "C:" $false

Verwalten von Datei- und Ordnerausschlüssen

Das folgende Beispiel zeigt, wie UWF-Ausschlüsse von Dateien und Ordnern in einem PowerShell-Skript mithilfe des WMI-Anbieters verwaltet werden. Das PowerShell-Skript erstellt vier Funktionen und veranschaulicht dann, wie sie verwendet werden.

Die erste Funktion ist Get-FileExclusions und zeigt eine Liste der auf einem Volume vorhandenen UWF-Dateiausschlüsse an. Es werden sowohl Ausschlüsse für die aktuelle Sitzung als auch Ausschlüsse für die nächste Sitzung nach einem Neustart angezeigt.

Die zweite Funktion ist Add-FileExclusion und fügt eine Datei oder einen Ordner zur UWF-Ausschlussliste für ein bestimmtes Volume hinzu. Der Ausschluss wird für die nächste Sitzung nach einem Neustart hinzugefügt.

Die dritte Funktion ist Remove-FileExclusion und entfernt eine Datei oder einen Ordner aus der UWF-Ausschlussliste für ein bestimmtes Volume. Der Ausschluss wird für die nächste Sitzung nach einem Neustart entfernt.

Die vierte Funktion ist Clear-FileExclusions und entfernt alle UWF-Ausschlüsse von Dateien und Ordnern von einem bestimmten Volume. Die Ausschlüsse werden für die nächste Sitzung nach einem Neustart entfernt.

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

# Define common parameters

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

function Get-FileExclusions($driveLetter) {

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

# $driveLetter is the drive letter of the volume

# Get the UWF_Volume configuration for the current session

    $currentConfig = Get-WMIObject -class UWF_Volume @CommonParams |
        where {
            $_.DriveLetter -eq "$driveLetter" -and $_.CurrentSession -eq $true
        };

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

    $nextConfig = Get-WMIObject -class UWF_Volume @CommonParams |
        where {
            $_.DriveLetter -eq "$driveLetter" -and $_.CurrentSession -eq $false
        };

# Display file exclusions for the current session

    if ($currentConfig) {

        Write-Host "The following files and folders are currently excluded from UWF filtering for $driveLetter";

        $currentExcludedList = $currentConfig.GetExclusions()

        if ($currentExcludedList) {
            foreach ($fileExclusion in $currentExcludedList.ExcludedFiles)  {
                Write-Host "  " $fileExclusion.FileName
            }
        } else {
            Write-Host "  None"
        }
    } else {
        Write-Error "Could not find drive $driveLetter";
}

# Display file exclusions for the next session after a restart

    if ($nextConfig) {

        Write-Host ""
        Write-Host "The following files and folders will be excluded from UWF filtering for $driveLetter after the next restart:";

        $nextExcludedList = $nextConfig.GetExclusions()

        if ($nextExcludedList) {
            foreach ($fileExclusion in $nextExcludedList.ExcludedFiles)  {
                Write-Host "  " $fileExclusion.FileName
            }
        } else {
            Write-Host "  None"
        }

        Write-Host ""
    }
}

function Add-FileExclusion($driveLetter, $exclusion) {

# This function adds a new UWF file exclusion to a volume
# The new file exclusion takes effect the next time the device is restarted and UWF is enabled

# $driveLetter is the drive letter of the volume
# $exclusion is the path and filename of the file or folder exclusion

# Get the configuration for the next session for the volume

    $nextConfig = Get-WMIObject -class UWF_Volume @CommonParams |
        where {
            $_.DriveLetter -eq "$driveLetter" -and $_.CurrentSession -eq $false
        };

# Add the exclusion

    if ($nextConfig) {
        $nextConfig.AddExclusion($exclusion) | Out-Null;
        Write-Host "Added exclusion $exclusion for $driveLetter";
    } else {
        Write-Error "Could not find drive $driveLetter";
    }
}

function Remove-FileExclusion($driveLetter, $exclusion) {

# This function removes a UWF file exclusion from a volume
# The file exclusion is removed the next time the device is restarted

# $driveLetter is the drive letter of the volume
# $exclusion is the path and filename of the file or folder exclusion

# Get the configuration for the next session for the volume

    $nextConfig = Get-WMIObject -class UWF_Volume @CommonParams |
        where {
            $_.DriveLetter -eq "$driveLetter" -and $_.CurrentSession -eq $false
        };

# Try to remove the exclusion

    if ($nextConfig) {
        try {
            $nextConfig.RemoveExclusion($exclusion) | Out-Null;
            Write-Host "Removed exclusion $exclusion for $driveLetter";
        } catch {
            Write-Host "Could not remove exclusion $exclusion on drive $driveLetter"
        }
    } else {
        Write-Error "Could not find drive $driveLetter";
    }
}

function Clear-FileExclusions($driveLetter) {

# This function removes all UWF file exclusions on a volume
# The file exclusions are removed the next time the device is restarted

# $driveLetter is the drive letter of the volume

# Get the configuration for the next session for the volume

    $nextConfig = Get-WMIObject -class UWF_Volume @CommonParams |
        where {
            $_.DriveLetter -eq "$driveLetter" -and $_.CurrentSession -eq $false
        };

# Remove all file and folder exclusions

    if ($nextConfig) {
        $nextConfig.RemoveAllExclusions() | Out-Null;
        Write-Host "Cleared all exclusions for $driveLetter";
    } else {
        Write-Error "Could not clear exclusions for drive $driveLetter";
    }
}

# Some examples of using the functions

Clear-FileExclusions "C:"

Add-FileExclusion "C:" "\Users\Public\Public Documents"
Add-FileExclusion "C:" "\myfolder\myfile.txt"

Get-FileExclusions "C:"

Remove-FileExclusion "C:" "\myfolder\myfile.txt"

Get-FileExclusions "C:"

Anforderungen

Windows-Edition Unterstützt
Windows Home Nein
Windows Pro Nein
Windows Enterprise Ja
Windows Education Ja
Windows IoT Enterprise Ja