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 Volume, das durch UWF geschützt ist. |
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 Typ der Bindung an, die 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 | [key, read] | Gibt an, für welche Sitzung das Objekt Einstellungen enthält. - True , wenn Einstellungen für die aktuelle Sitzung - False sind, wenn Einstellungen für die nächste Sitzung, die einem 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 CurrentSession true ist, gibt an, ob das Volume derzeit durch UWF geschützt ist. Wenn CurrentSession false ist, gibt an, ob das Volume in der nächsten Sitzung geschützt ist, nachdem das Gerät neu gestartet wurde. |
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 |