你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Set-FileLabel

根据标签配置或自定义权限,通过手动标记或自动标记设置文件的敏感度标签和保护。

语法

SetLabel

Set-FileLabel
    [-Path] <String[]>
    -LabelId <Guid>
    [-JustificationMessage <String>]
    [-Owner <String>]
    [-PreserveFileDetails]

SetLabelCustom

Set-FileLabel
    [-Path] <String[]>
    -LabelId <Guid>
    -CustomPermissions <AIPCustomPermissions>
    [-JustificationMessage <String>]
    [-Owner <String>]
    [-PreserveFileDetails]

Custom

Set-FileLabel
    [-Path] <String[]>
    -CustomPermissions <AIPCustomPermissions>
    [-Owner <String>]
    [-PreserveFileDetails]

SetAutoLabel

Set-FileLabel
    [-Path] <String[]>
    [-JustificationMessage <String>]
    [-Owner <String>]
    [-Force]
    [-PreserveFileDetails]
    [-AutoLabel]

WhatIf

Set-FileLabel
    [-Path] <String[]>
    [-PreserveFileDetails]
    [-WhatIf]
    [-DiscoveryInfoTypes <String[]>]

说明

对于 Microsoft Purview 信息保护客户端, Set-FileLabel cmdlet 为一个或多个文件设置敏感度标签。 当标签配置为应用加密时,此作可以自动应用保护。

此外,当将自定义权限创建为具有 New-CustomPermissions cmdlet 的即席保护策略对象时,可以使用此 cmdlet 来应用自定义权限。

命令成功运行时,可以替换任何现有标签或保护。

你可以以非交互方式运行此 cmdlet。 有关详细信息,请参阅 统一标记客户端管理员指南

示例

示例 1:将“常规”标签应用于当前没有标签的所有文件

Get-FileStatus -Path \\Finance\Projects\ |
    Where-Object {$_.IsLabeled -eq $False} |
    Set-FileLabel -LabelId d9f23ae3-4321-4321-4321-f515f824c57b
FileName                              Status Comment
--------                              ------ ------------
\\Finance\Projects\Image.jpg          Success
\\Finance\Projects\Pricelist.pdf      Success
\\Finance\Projects\Announcement.docx  Success
\\Finance\Projects\Analysis.xlsx      Success

此命令首先标识未使用 Get-FileStatus cmdlet 标记的所有文件。 然后,通过按 ID 指定“常规”标签来标记这些文件。

示例 2:将“常规”标签应用于未标记的文件 .docx

Get-ChildItem C:\Projects\*.docx -File -Recurse |
    Get-FileStatus |
    Where-Object {$_.IsLabeled -eq $False} |
    Set-FileLabel -LabelId d9f23ae3-1234-1234-1234-f515f824c57b
FileName                   Status  Comment
--------                   ------  ------------
C:\Projects\Analysis.docx  Success
C:\Projects\Projects.docx  Success

此命令首先使用 .docx 标识C:\Projects文件夹 (及其子文件夹) 中的所有文件,然后从这些文件中找到未使用 Get-FileStatus cmdlet 标记的文件。 然后,通过指定 General 标签(按 ID 指定 General 标签)来标记生成的文件。

注释

此命令使用 FullName 的 Path 别名,以便 Get-Child-Item 可以与 Get-FileStatus一起使用。

示例 3:将“常规”标签应用于文件夹及其任何子文件夹中的所有文件

Set-FileLabel -Path C:\Projects\ -LabelId d9f23ae3-1324-1234-1234-f515f824c57b
FileName                    Status      Comment
--------                    ------      ------------
C:\Projects\Project1.docx   Success
C:\Projects\Datasheet.pdf   Success
C:\Projects\Image.jpg       Success
C:\Projects\Analysis.xlsx   Skipped    No label to apply
C:\Projects\Dashboard.xlsx  Success

此命令在文件夹及其任何子文件夹中的所有文件 C:\Projects 上设置一个名为“General”的标签。

如果常规标签配置为应用加密,则使用此命令成功标记的文件也将加密。 在这种情况下,权限管理所有者(谁具有权限管理完全控制权限)这些文件是运行 PowerShell 命令的用户。

在此示例中,没有标记一个文件(跳过),因为它需要理由。 这可能是为了确保具有较高分类标签或保护的文件不会意外被较低分类标签覆盖或已删除保护的预期结果。

若要启用此保护,必须将 Office 365 分类标签策略配置为需要删除标签或降低分类的理由。 然后,在没有 JustificationMessage 参数和标签触发理由的情况下运行此命令时,将跳过该文件,并带有注释“不应用标签”。

示例 4:将“常规”标签应用于单个文件,这需要理由

$setFileLabelSplat = @{
    Path = '\\Finance\Projects\Analysis.xlsx'
    LabelId = 'd9f23ae3-1324-1234-1234-f515f824c57b'
    JustificationMessage = 'The previous label no longer applies'
}
Set-FileLabel @setFileLabelSplat
FileName                          Status      Comment
--------                          ------      ------------
\\finance\projects\analysis.xlsx  Success

此命令为已使用较高敏感度标签标记的文件设置“常规”标签。 敏感度标签策略配置为需要删除标签或降低分类的理由。 由于命令包含理由消息,因此已成功应用新标签。

示例 5:使用自定义权限保护文件

$newCustomPermissionsSplat = @{
    Users = 'user1@contoso.com', 'user2@vanarsdel.com'
    Permissions = 'Reviewer'
    ExpirationDate = (Get-Date -Month 1 -Day 1 -Year 2020)
}
$permissions = New-CustomPermissions @newCustomPermissionsSplat
Set-FileLabel C:\Projects\Analysis.docx -CustomPermissions $permissions
FileName                   Status Comment
--------                   ------ ------------
C:\Projects\Analysis.docx  Success

第一个命令创建一个即席保护策略对象,该对象授予来自审阅者权限的不同组织使用权限的用户,并应用到期日期。

第二个命令使用存储的 ad-hoc 保护策略对象中的自定义权限保护单个命名 Analysis.docx 的文件。

示例 6:对文件应用标签和自定义权限

$permissions = New-CustomPermissions -Users a@a.com, b@b.com -Permissions Reviewer
$setFileLabelSplat = @{
    LabelId = 'd9f23ae3-1324-1234-1234-f515f824c57b'
    CustomPermissions = $permissions
}
Set-FileLabel @setFileLabelSplat C:\Projects\Analysis.docx
FileName                   Status Comment
--------                   ------ ------------
C:\Projects\Analysis.docx  Success

第一个命令创建一个即席保护策略对象,该对象授予来自审阅者权限的不同组织使用权限的用户,并应用到期日期。

第二个命令将标签应用于名为 Analysis.docx 的单个文件,并使用存储的即席保护策略对象中的自定义权限来保护文件。 如果为保护设置配置了标签,则会将其替换为自定义权限。

示例 7:扫描文件夹树中的所有文件并根据配置的条件应用标签

Set-FileLabel -AutoLabel -Path C:\Projects\ -PreserveFileDetails
FileName      : C:\Projects\Project1.docx
Status        : Success
Comment       :
MainLabelName : Confidential
MainLabelId   : 074e257c-1234-1234-1234-34a182080e71
SubLabelName  : Finance group
SubLabelId    : d9f23ae3-1234-1234-1234-f515f824c57b

FileName      : C:\Projects\Datasheet.pdf
Status        : Skipped
Comment       : No label to apply
MainLabelName :
MainLabelId   :
SubLabelName  :
SubLabelId    :

FileName      : C:\Projects\Analysis.xlsx
Status        : Skipped
Comment       : No label to apply
MainLabelName :
MainLabelId   :
SubLabelName  :
SubLabelId    :

FileName      : C:\Projects\Pricelist.xlsx
Status        : Skipped
Comment       : No label to apply
MainLabelName :
MainLabelId   :
SubLabelName  :
SubLabelId    :

FileName      : C:\Projects\Dashboard.xlsx
Status        : Success
Comment       :
MainLabelName : Public
MainLabelId   : f018e9e7-0cfc-4c69-b27a-ac3cb7df43cc
SubLabelName  :
SubLabelId    :

此命令扫描 Projects 文件夹及其任何子文件夹中的所有文件,并根据自动标记策略中的配置条件设置标签。 在此示例中,有五个文件和两个文件会自动标记。 Datasheet.pdf文件未标记,因为其内容与自动标记Analysis.xlsx的配置条件不匹配,已手动标记,并且Pricelist.xlsx具有更高的标签。 由于该命令在没有 Force 参数的情况下运行,因此 和 Analysis.xlsx 的现有标签Pricelist.xlsx不会被覆盖。

如果应用的标签也配置为应用 Rights Management 保护,则使用此命令成功标记的文件也会受到保护。 在这种情况下,权限管理所有者(谁具有权限管理完全控制权限)这些文件是运行 PowerShell 命令的用户。

由于指定了 PreserveFileDetails 参数,因此已标记文件的 Date Modified 保持不变。

示例 8:扫描文件夹树中的所有文件,并根据配置的条件应用标签,覆盖任何现有标签

Set-FileLabel -Autolabel -Path C:\Projects\ -Force -PreserveFileDetails
FileName      : C:\Projects\Project1.docx
Status        : Success
Comment       :
MainLabelName : Confidential
MainLabelId   : 074e257c-1234-1234-1234-34a182080e71
SubLabelName  : Finance group
SubLabelId    : d9f23ae3-1234-1234-1234-f515f824c57b

FileName      : C:\Projects\Datasheet.pdf
Status        : Skipped
Comment       : No label to apply
MainLabelName :
MainLabelId   :
SubLabelName  :
SubLabelId    :

FileName      : C:\Projects\Analysis.xlsx
Status        : Success
Comment       :
MainLabelName : Public
MainLabelId   : f018e9e7-0cfc-4c69-b27a-ac3cb7df43cc
SubLabelName  :
SubLabelId    :

FileName      : C:\Projects\Pricelist.xlsx
Status        : Success
Comment       :
MainLabelName : Public
MainLabelId   : f018e9e7-0cfc-4c69-b27a-ac3cb7df43cc
SubLabelName  :
SubLabelId    :

FileName      : C:\Projects\Dashboard.xlsx
Status        : Success
Comment       :
MainLabelName : Public
MainLabelId   : f018e9e7-0cfc-4c69-b27a-ac3cb7df43cc
SubLabelName  :
SubLabelId    :

此命令类似于前面的示例,因为它还会扫描 Projects 文件夹中的所有文件及其任何子文件夹,并根据自动标记的配置条件设置标签。 但是,这一次,由于该命令包含 Force 参数,因此它还替换了 、 和 Dashboard.xlsx的现有标签Pricelist.xlsx

Datasheet.pdf的内容与任何已配置的条件都不匹配,并且此文件仍然没有标签。

示例 9:扫描文件以查找所有已知的敏感信息类型

Set-FileLabel -AutoLabel -Path C:\Projects\Project1.docx -DiscoveryInfoTypes All
MainLabelName           : General
MainLabelId             : 89a453df-5df4-4976-8191-jdn2fsf9560a
SubLabelName            :
SubLabelId              :
WhatIf                  : True
MatchedInformationTypes : {Credit Card Number, U.S. Social Security Number (SSN), International Classification of
                          Diseases (ICD-10-CM), International Classification of Diseases (ICD-9-CM)}
LastModifiedBy          :
LastModifiedTime        : 8/19/2014 5:11:26 AM
FileName                : C:\Projects\Project1.docx
Status                  : Success
Comment                 :

此命令在 Project1.docx 文件中发现所有已知信息类型,而无需应用保护或标签。

示例 10:扫描文件以获取特定敏感信息类型

$setFileLabelSplat = @{
    AutoLabel = -AutoLabel
    Path = 'C:\Projects\Project1.docx'
    DiscoveryInfoTypes = "50842eb7-edc8-4019-85dd-5a5c1f2bb085", "a44669fe-0d48-453d-a9b1-2cc83f2cba77"
}
Set-FileLabel @setFileLabelSplat
MainLabelName           : General
MainLabelId             : 89a453df-5df4-4976-8191-jdn2fsf9560a
SubLabelName            :
SubLabelId              :
WhatIf                  : True
MatchedInformationTypes : {Credit Card Number, U.S. Social Security Number (SSN)}
LastModifiedBy          :
LastModifiedTime        : 8/19/2014 5:11:26 AM
FileName                : Project1.docx
Status                  : Success
Comment                 :

此命令会发现文件中的 信用卡号和社会 安全号码 (SSN)Project1.docx 的特定信息类型,而无需应用保护或标签。

示例 11:扫描文件以获取特定敏感信息类型并显示找到的值

$setFileLabelSplat = @{
    AutoLabel = -AutoLabel
    Path = 'C:\Projects\Project1.docx'
    DiscoveryInfoTypes = '50842eb7-edc8-4019-85dd-5a5c1f2bb085',
        'a44669fe-0d48-453d-a9b1-2cc83f2cba77'
}
$x = Set-FileLabel @setFileLabelSplat
$x.MatchedInformationTypes
RulePackageSetId  : 00000000-0000-0000-0000-000000000000
RulePackageId     : 00000000-0000-0000-0000-000000000000
RuleId            : 50842eb7-edc8-4019-85dd-5a5c1f2bb085
Name              : Credit Card Number
Count             : 1
UniqueCount       : 1
Confidence        : 85
SensitiveContents : {Offset: 2089, Length: 19}

RulePackageSetId  : 00000000-0000-0000-0000-000000000000
RulePackageId     : 00000000-0000-0000-0000-000000000000
RuleId            : a44669fe-0d48-453d-a9b1-2cc83f2cba77
Name              : U.S. Social Security Number (SSN)
Count             : 1
UniqueCount       : 1
Confidence        : 85
SensitiveContents : {Offset: 7063, Length: 11}
$x.MatchedInformationTypes[0].SensitiveContents | Format-List
Offset  : 2089
Length  : 19
Value   : 4539-9572-7949-2212
Context : OLOGICAL SCIENCES     Credit Card #
          Expiration Date:      4539-9572-7949-2212
          8/2009                Department:     BIOLOGICAL SCIENCES     Anticipa

与前面的示例类似,第一个命令在文件中发现 信用卡号和社会 安全号码 (SSN)Project1.docx 的特定信息类型,而不应用保护或标签。 但是,在此示例中,结果存储在变量中以供进一步处理。

然后,第二个命令用于显示匹配的信息类型的内容,其中包括 SensitiveContents 参数。

最后一个命令显示和格式,以便更轻松地读取第一个敏感信息类型标识的数据,在本示例中,该类型是信用卡详细信息。

参数

-AutoLabel

使用 -AutoLabel 时,cmdlet 在自动标记模式下运行。 如果未使用 -AutoLabel cmdlet,请在手动标记模式下运行。

参数属性

类型:SwitchParameter
默认值:None
支持通配符:False
不显示:False

参数集

SetAutoLabel
Position:Named
必需:True
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-CustomPermissions

指定存储临时保护策略的变量名称,该策略是使用 New-CustomPermissions cmdlet 创建的。 临时保护策略用于保护具有自定义权限的文件或文件。

参数属性

类型:AIPCustomPermissions
默认值:None
支持通配符:False
不显示:False

参数集

SetLabelCustom
Position:Named
必需:True
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False
Custom
Position:Named
必需:True
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-DiscoveryInfoTypes

指定使用 WhatIf 参数时要发现的敏感信息类型。

如果要搜索特定的敏感信息类型,请指定该信息类型的 实体 ID 号,可在 Exchange Server 中的敏感信息类型中找到该编号。

例如,“50842eb7-edc8-4019-85dd-5a5c1f2bb085”是为信用卡号敏感信息类型指定的数字。

参数属性

类型:

String[]

默认值:None
支持通配符:False
不显示:False

参数集

WhatIf
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-Force

在配置的条件适用时替换现有标签。

参数属性

类型:SwitchParameter
默认值:None
支持通配符:False
不显示:False

参数集

SetAutoLabel
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-JustificationMessage

如果敏感度策略要求用户提供此信息,则降低分类标签、删除标签或删除保护的理由。 如果设置标签会触发理由,并且未提供此原因,则不会应用标签。 在这种情况下,返回的状态为“跳过”,注释为“必需理由”。

参数属性

类型:String
默认值:None
支持通配符:False
不显示:False

参数集

SetLabel
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False
SetLabelCustom
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False
SetAutoLabel
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-LabelId

指定要应用的标签的标识(ID)。 当标签具有子标签时,始终只指定子标签的 ID,而不是父标签。

若要查找标签 ID,请执行以下作:

标签 ID 值不会显示在 Microsoft Purview 符合性门户中。 但是,可以使用以下 Office 365 安全与合规中心 PowerShell 命令查找此值: Get-Label | Format-Table -Property DisplayName, Name, Guid

对于已应用标签的文件,还可以运行 Get-FileStatus cmdlet 来标识标签 ID(MainLabelId 或 SubLabelId)。

参数属性

类型:Guid
默认值:None
支持通配符:False
不显示:False

参数集

SetLabel
Position:Named
必需:True
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False
SetLabelCustom
Position:Named
必需:True
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-Owner

指定将标签或保护应用于文件的所有者。

参数属性

类型:String
默认值:None
支持通配符:False
不显示:False

参数集

SetLabel
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False
SetLabelCustom
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False
Custom
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False
SetAutoLabel
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-Path

指定要获取标签和保护信息的文件的本地路径、网络路径或 SharePoint Server URL。

不支持通配符,也不支持 WebDav 位置。

对于 SharePoint 路径,支持以下各项:

  • SharePoint 服务器 2022
  • SharePoint 服务器 2019
  • SharePoint Server 2016
  • SharePoint 服务器 2013

例如:

  • C:\Folder\
  • C:\Folder\Filename
  • \\Server\Folder
  • http://sharepoint.contoso.com/Shared%20Documents/Folder

使用引号将路径值括起来时,路径可以包含空格。

参数属性

类型:

String[]

默认值:None
支持通配符:False
不显示:False
别名:全名, 文件名

参数集

(All)
Position:0
必需:True
来自管道的值:True
来自管道的值(按属性名称):True
来自剩余参数的值:False

-PreserveFileDetails

指定此参数以保留修改日期(Windows 和 SharePoint),并按 (SharePoint) 值修改标签的文档保持不变:

  • 对于本地或网络文件, 修改日期 的值保持不变。

  • 对于 SharePoint 文件, “修改日期 ”和 “修改值 ”保持不变。

参数属性

类型:SwitchParameter
默认值:None
支持通配符:False
不显示:False

参数集

(All)
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-WhatIf

显示 cmdlet 运行时会发生什么情况。 命令脚本未运行。

参数属性

类型:SwitchParameter
默认值:None
支持通配符:False
不显示:False

参数集

WhatIf
Position:Named
必需:True
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

输入

System.String

输出

Microsoft.InformationProtection.Powershell.AIP.Results.SetAIPFileResult

备注

在循环中运行 Set-FileLabel cmdlet 时,请在 cmdlet 后添加以下命令:

  • [GC]::Collect()
  • [GC]::WaitForPendingFinalizers()

这些命令可确保垃圾回收器运行并释放不再需要的内存。