UWF _ ボリュームUWF_Volume

このクラスは、統合書き込みフィルター (UWF) によって保護されたボリュームを管理します。This class manages a volume protected by Unified Write Filter (UWF).

構文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[]);

};

メンバーMembers

次の表は、このクラスに属するメソッドとプロパティを示しています。The following tables list the methods and properties that belong to this class.

メソッドMethods

方法Method 説明Description

UWF_Volume.AddExclusionUWF_Volume.AddExclusion

ファイルまたはフォルダーを保護されたボリュームのファイル除外リストに追加します。Adds a file or folder to the file exclusion list for a volume protected byUWF.

UWF_Volume.CommitFileUWF_Volume.CommitFile

統合書き込みフィルター (UWF) によって保護されているボリューム上の指定したファイルについて、オーバーレイから物理ボリュームに変更をコミットします。Commits changes from the overlay to the physical volume for a specified file on a volume protected by Unified Write Filter (UWF).

UWF_Volume.CommitFileDeletionUWF_Volume.CommitFileDeletion

保護されたファイルをボリュームから削除し、削除を物理ボリュームにコミットします。Deletes a protected file from the volume, and commits the deletion to the physical volume.

UWF_Volume.FindExclusionUWF_Volume.FindExclusion

特定のファイルまたはフォルダーが、byUWF によって保護されているボリュームの除外リストに含まれているかどうかを判断します。Determines whether a specific file or folder is in the exclusion list for a volume protected byUWF.

UWF_Volume.GetExclusionsUWF_Volume.GetExclusions

保護されているボリュームのすべてのファイルの除外の一覧を取得します。Retrieves a list of all file exclusions for a volume protected byUWF.

UWF_Volume.ProtectUWF_Volume.Protect

再起動後に UWF が有効になっている場合、次回のシステム再起動後にボリュームを保護します。Protects the volume after the next system restart, if UWF is enabled after the restart.

UWF_Volume.RemoveAllExclusionsUWF_Volume.RemoveAllExclusions

保護されているボリュームのファイル除外リストからすべてのファイルとフォルダーを削除します。Removes all files and folders from the file exclusion list for a volume protected byUWF.

UWF_Volume.RemoveExclusionUWF_Volume.RemoveExclusion

特定のファイルまたはフォルダーを、保護されたボリュームのファイル除外リストから削除します。Removes a specific file or folder from the file exclusion list for a volume protected byUWF.

UWF_Volume.SetBindByDriveLetterUWF_Volume.SetBindByDriveLetter

Bindbydriveletter "プロパティ" を設定します。これは、UWF ボリュームがドライブ文字またはボリューム名によって物理ボリュームにバインドされているかどうかを示します。Sets the BindByDriveLetter property, which indicates whether the UWF volume is bound to the physical volume by drive letter or by volume name.

UWF_Volume.UnprotectUWF_Volume.Unprotect

次回のシステム再起動後に、ボリュームの UWF 保護を無効にします。Disables UWF protection of the volume after the next system restart.

PropertiesProperties

プロパティProperty データ型Data type 修飾子Qualifiers 説明Description

BindByDriveLetterBindByDriveLetter

BooleanBoolean

[読み取り、書き込み][read, write]

ボリュームが使用するバインディングの種類を示します。Indicates the type of binding that the volume uses.

ボリュームをドライブ文字 (疎結合) でバインドするにはTrueに設定します。ボリュームをボリュームをボリュームにバインドするには、 Falseに設定します (厳密なバインド)。Set to True to bind the volume by DriveLetter(loose binding); set to False to bind the volume by VolumeName (tight binding).

CommitPendingCommitPending

BooleanBoolean

込ん[read]

Microsoft 用に予約されています。Reserved for Microsoft use.

CurrentSessionCurrentSession

BooleanBoolean

[キー、読み取り][key, read]

オブジェクトに設定が含まれているセッションを示します。Indicates which session the object contains settings for.

設定が現在のセッションに対するものである場合はTrue 。再起動後の次のセッションの設定の場合はFalseTrue if settings are for the current session; False if settings are for the next session that follows a restart.

DriveLetterDriveLetter

stringstring

[キー、読み取り][key, read]

ボリュームのドライブ文字。The drive letter of the volume. ボリュームにドライブ文字がない場合、この値は NULLになります。If the volume does not have a drive letter, this value is NULL.

ProtectedProtected

BooleanBoolean

[読み取り、書き込み][read, write]

Currentsessiontrueの場合、現在のボリュームが UWF によって保護されているかどうかを示します。If CurrentSession is true, indicates whether the volume is currently protected by UWF.

Currentsessionfalseの場合は、デバイスの再起動後、次のセッションでボリュームが保護されているかどうかを示します。If CurrentSession is false, indicates whether the volume is protected in the next session after the device restarts.

ボリュームVolumeName

stringstring

[キー、読み取り][key, read]

現在のシステム上にあるボリュームの一意の識別子。The unique identifier of the volume on the current system. ボリュームボリュームは、ボリュームのWin32_VolumeクラスのDeviceIDプロパティと同じです。The VolumeName is the same as the DeviceID property of the Win32_Volume class for the volume.

解説Remarks

管理者アカウントを使用してプロパティを変更するか、構成設定を変更するメソッドを呼び出す必要があります。You must use an administrator account to change any properties or call any methods that change the configuration settings.

UWF の保護を有効または無効にするTurn UWF protection on or off

次の例では、PowerShell スクリプトで Windows Management Instrumentation (WMI) プロバイダーを使用して、UWF を使用してボリュームを保護または保護解除する方法を示します。The following example demonstrates how to protect or unprotect a volume with UWF by using the Windows Management Instrumentation (WMI) provider in a PowerShell script.

PowerShellscript は、ボリュームに対して UWF の保護を有効または無効にする ProtectVolume 関数を作成します。The PowerShellscript creates a function, Set-ProtectVolume , that turns UWF protection on or off for a volume. このスクリプトは、関数の使用方法を示しています。The script then demonstrates how to use the function.

$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

UWF ファイルとフォルダーの除外の管理Manage UWF file and folder exclusions

次の例は、PowerShell スクリプトで WMI プロバイダーを使用して、UWF ファイルとフォルダーの除外を管理する方法を示しています。The following example demonstrates how to manage UWF file and folder exclusions by using the WMI provider in a PowerShell script. PowerShell スクリプトでは、4つの関数を作成し、その使用方法を示します。The PowerShell script creates four functions, and then demonstrates how to use them.

最初の関数である Get FileExclusions は、ボリュームに存在する UWF ファイルの除外の一覧を表示します。The first function, Get-FileExclusions , displays a list of UWF file exclusions that exist on a volume. 現在のセッションと再起動後の次のセッションの両方の除外が表示されます。Exclusions for both the current session and the next session that follows a restart are displayed.

2番目の関数である Add-FileExclusion は、指定されたボリュームの UWF 除外リストにファイルまたはフォルダーを追加します。The second function, Add-FileExclusion , adds a file or folder to the UWF exclusion list for a given volume. 再起動後の次のセッションに対して、除外が追加されます。The exclusion is added for the next session that follows a restart.

3番目の関数である Remove-FileExclusion は、指定されたボリュームの UWF 除外リストからファイルまたはフォルダーを削除します。The third function, Remove-FileExclusion , removes a file or folder from the UWF exclusion list for a given volume. 再起動後の次のセッションでは、除外が削除されます。The exclusion is removed for the next session that follows a restart.

4番目の関数 ( Clear-FileExclusions ) は、指定されたボリュームからすべての UWF ファイルとフォルダーの除外を削除します。The fourth function, Clear-FileExclusions , removes all UWF file and folder exclusions from a given volume. 再起動後の次のセッションに対して除外が削除されます。The exclusions are removed for the next session that follows a restart.

$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:"

必要条件Requirements

Windows エディションWindows Edition サポートされていますSupported
Windows 10 HomeWindows 10 Home いいえNo
Windows 10 ProWindows 10 Pro いいえNo
Windows 10 EnterpriseWindows 10 Enterprise はいYes
Windows 10 EducationWindows 10 Education はいYes

統合書き込みフィルターUnified Write Filter