你当前正在访问 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 的 Path 别名,以便 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 文件夹及其任何子文件夹中的所有文件上设置名为“常规”的标签。

如果将“常规”标签配置为应用加密,则使用此命令成功标记的文件也将加密。 在这种情况下,这些文件的 Rights Management 所有者(拥有 Rights Management 完全控制权限)是运行 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 保护,则使用此命令成功添加标签的文件也会受到保护。 在这种情况下,这些文件的 Rights Management 所有者(拥有 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:在 WhatIf 模式下扫描文件以查找所有已知的敏感信息类型

PS C:\> Set-FileLabel -AutoLabel -Path C:\Projects\Project1.docx -WhatIf -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:在 WhatIf 模式下扫描文件以查找特定敏感信息类型

PS C:\> Set-FileLabel -AutoLabel -Path C:\Projects\Project1.docx -WhatIf -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文件中发现 “信用卡号”和“社会安全号码 (SSN) ”的特定信息类型,而无需应用保护或标签。

示例 11:在 WhatIf 模式下扫描文件以查找特定敏感信息类型并显示找到的值

PS C:\> $x=Set-FileLabel -AutoLabel -Path "C:\Projects\Project1.docx" -WhatIf -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文件中发现 “信用卡号”和“社会保险号 (SSN) ”的特定信息类型,而无需应用保护或标签。 但是,在此示例中,结果存储在变量中以供进一步处理。

然后,第二个命令用于显示匹配的信息类型的内容,其中包括 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 Security & Compliance Center PowerShell 命令查找此值:Get-Label | Format-Table -Property DisplayName, Name, Guid

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

类型: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 Server 2013

例如:

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

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

-PreserveFileDetails

指定此参数可将修改日期保留 (Windows 和 SharePoint) ,并由 (SharePoint 修改的日期) 标记文档的值保持不变:

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

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

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

-WhatIf

显示运行该 cmdlet 时会发生什么情况。 此 cmdlet 未运行。

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

输入

System.String[]

输出

Microsoft.InformationProtection.Powershell.AIP.Results.SetAIPFileResult