Freigeben über


UWF_Volume

Diese Klasse verwaltet ein Volume, das durch den UWF (Unified Write Filter) 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 durchUWF geschütztes Volume eine Datei oder einen Ordner hinzu.
UWF_Volume.CommitFile Committet Änderungen aus der Überlagerung auf das physische Volume für eine angegebene Datei auf einem Volume, das durch den UWF (Unified Write Filter) geschützt ist.
UWF_Volume.CommitFileDeletion Löscht eine geschützte Datei vom Volume und committet den Löschvorgang auf das physische Volume.
UWF_Volume.FindExclusion Bestimmt, ob eine bestimmte Datei oder ein bestimmter Ordner in der Ausschlussliste für ein durchUWF geschütztes Volume enthalten ist.
UWF_Volume.GetExclusions Ruft eine Liste aller Dateiausschlüsse für ein durchUWF geschütztes Volume ab.
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 durchUWF geschütztes Volume.
UWF_Volume.SetBindByDriveLetter Legt die BindByDriveLetter-Eigenschaft fest, die angibt, ob das UWF-Volume durch Laufwerkbuchstabe oder Volumename an das physische Volume gebunden ist.
UWF_Volume.Unprotect Deaktiviert den UWF-Schutz des Volumes nach dem nächsten Systemneustart.

Eigenschaften

Eigenschaft Datentyp Qualifikation Beschreibung
BindByDriveLetter Boolesch [lesen, schreiben] Gibt den Typ der Bindung 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.
Commit ausstehend Boolesch [lesen] Reserviert für die Verwendung durch Microsoft.
CurrentSession Boolesch [key, read] Gibt an, für welche Sitzung das Objekt Einstellungen enthält.
- True , wenn einstellungen für die aktuelle Sitzung
- False sind, wenn die Einstellungen für die nächste Sitzung gelten, die auf einen Neustart folgt.
DriveLetter string [key, read] Der Laufwerkbuchstabe des Volumes. Wenn das Volume keinen Laufwerkbuchstaben aufweist, ist dieser Wert NULL.
Geschützt Boolesch [lesen, schreiben] Wenn CurrentSessiontrue ist, gibt an, ob das Volume derzeit durch UWF geschützt ist.
Wenn CurrentSessionfalse ist, gibt an, ob das Volume in der nächsten Sitzung nach dem Neustart des Geräts geschützt ist.
VolumeName string [key, read] Der eindeutige Bezeichner des Volumes auf dem aktuellen System. VolumeName ist identisch mit der DeviceID-Eigenschaft der Win32_Volume Klasse für das Volume.

Hinweise

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

Aktivieren oder Deaktivieren des UWF-Schutzes

Im folgenden Beispiel wird veranschaulicht, wie Sie ein Volume mit UWF mithilfe des WMI-Anbieters (Windows Management Instrumentation) in einem PowerShell-Skript schützen oder den Schutz aufheben.

PowerShellscript erstellt die Funktion Set-ProtectVolume, die den UWF-Schutz für ein Volume ein- oder ausschaltet. Das Skript veranschaulicht dann die Verwendung der Funktion.

$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 UWF-Datei- und Ordnerausschlüssen

Im folgenden Beispiel wird veranschaulicht, wie UWF-Datei- und Ordnerausschlüsse mithilfe des WMI-Anbieters in einem PowerShell-Skript verwaltet werden. Das PowerShell-Skript erstellt vier Funktionen und veranschaulicht dann deren Verwendung.

Die erste Funktion, Get-FileExclusions, zeigt eine Liste der UWF-Dateiausschlüsse an, die auf einem Volume vorhanden sind. Ausschlüsse für die aktuelle Sitzung und die nächste Sitzung, die auf einen Neustart folgt, werden angezeigt.

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

Die dritte Funktion , Remove-FileExclusion, 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, Clear-FileExclusions, entfernt alle UWF-Datei- und Ordnerausschlüsse aus 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