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 |