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

Set-FileLabel

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

语法

Set-FileLabel
   [-Path] <String[]>
   -LabelId <Guid>
   [-JustificationMessage <String>]
   [-Owner <String>]
   [-PreserveFileDetails]
   [<CommonParameters>]
Set-FileLabel
   [-Path] <String[]>
   -LabelId <Guid>
   [-JustificationMessage <String>]
   -CustomPermissions <AIPCustomPermissions>
   [-Owner <String>]
   [-PreserveFileDetails]
   [<CommonParameters>]
Set-FileLabel
   [-Path] <String[]>
   -CustomPermissions <AIPCustomPermissions>
   [-Owner <String>]
   [-PreserveFileDetails]
   [<CommonParameters>]
Set-FileLabel
   [-Path] <String[]>
   [-JustificationMessage <String>]
   [-Owner <String>]
   [-Force]
   [-PreserveFileDetails]
   [-AutoLabel]
   [<CommonParameters>]
Set-FileLabel
   [-Path] <String[]>
   [-PreserveFileDetails]
   [-WhatIf]
   [-DiscoveryInfoTypes <String[]>]
   [<CommonParameters>]

说明

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

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

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

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

注释

在循环中运行 Set-FileLabel cmdlet 时,请在 cmdlet 后面添加以下两行: [GC]::Collect()
[GC]::WaitForPendingFinalizers()

示例

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

PS C:\> Get-FileStatus -Path \\Finance\Projects\ | where {$_.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

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

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

注释

此命令使用 FullName 的路径 别名,以便 Get-Child-Item 可用于 Get-FileStatus

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

PS C:\> 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

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

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

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

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

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

PS C:\> Set-FileLabel -Path \\Finance\Projects\Analysis.xlsx -LabelId d9f23ae3-1324-1234-1234-f515f824c57b -JustificationMessage 'The previous label no longer applies'
FileName                          Status      Comment
--------                          ------      ------------
\\finance\projects\analysis.xlsx  Success

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

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

PS C:\> $permissions = New-CustomPermissions -Users user1@contoso.com, user2@vanarsdel.com -Permissions Reviewer -ExpirationDate (Get-Date -Month 1 -Day 1 -Year 2020)
PS C:\> Set-FileLabel C:\Projects\Analysis.docx -CustomPermissions $permissions

FileName                   Status Comment
--------                   ------ ------------
C:\Projects\Analysis.docx  Success

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

第二个命令通过使用存储的即席保护策略对象中的自定义权限来保护名为 Analysis.docx 的单个文件。

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

PS C:\> $permissions = New-CustomPermissions -Users a@a.com, b@b.com -Permissions Reviewer 
PS C:\> Set-FileLabel C:\Projects\Analysis.docx -LabelId d9f23ae3-1324-1234-1234-f515f824c57b -CustomPermissions $permissions

FileName                   Status Comment
--------                   ------ ------------
C:\Projects\Analysis.docx  Success

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

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

示例 7:扫描文件夹中及其任何子文件夹中的所有文件,并根据自动标记的配置条件应用标签

PS C:\> 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.xlsxPricelist.xlsx 的现有标签。

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

由于指定了 PreserveFileDetails 参数,因此标记文件的修改日期保持不变。

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

PS C:\> 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:扫描文件以查找所有已知的敏感信息类型

PS C:\> 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:扫描文件以获取特定敏感信息类型

PS C:\> Set-FileLabel -AutoLabel -Path C:\Projects\Project1.docx -DiscoveryInfoTypes "50842eb7-edc8-4019-85dd-5a5c1f2bb085","a44669fe-0d48-453d-a9b1-2cc83f2cba77"

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                 :

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

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

PS C:\> $x=Set-FileLabel -AutoLabel -Path "C:\Projects\Project1.docx" -DiscoveryInfoTypes "50842eb7-edc8-4019-85dd-5a5c1f2bb085","a44669fe-0d48-453d-a9b1-2cc83f2cba77"
PS C:\> $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}


PS C:\> $x.MatchedInformationTypes[0].SensitiveContents | fl

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

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

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

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

参数

-AutoLabel

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

类型:SwitchParameter
Position:Named
默认值:None
必需:True
接受管道输入:False
接受通配符:False

-CustomPermissions

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

类型:AIPCustomPermissions
Position:Named
默认值:None
必需:True
接受管道输入:False
接受通配符:False

-DiscoveryInfoTypes

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

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

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

类型:String[]
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Force

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

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-JustificationMessage

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

类型:String
Position:Named
默认值:None
必需: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
Position:Named
默认值:None
必需:True
接受管道输入:False
接受通配符:False

-Owner

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

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Path

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

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

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

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

例如:

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

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

类型:String[]
别名:FullName, FileName
Position:0
默认值:None
必需:True
接受管道输入:True
接受通配符:False

-PreserveFileDetails

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

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

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

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-WhatIf

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

类型:SwitchParameter
Position:Named
默认值:None
必需:True
接受管道输入:False
接受通配符:False

输入

System.String[]

输出

Microsoft.InformationProtection.Powershell.AIP.Results.SetAIPFileResult