共用方式為


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>]

Description

針對 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 標記的檔案。 然後,這些檔案會藉由依標識符指定「一般」標籤來加上標籤。

範例 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 標記的檔案。 然後,產生的檔案會藉由依標識符指定「一般」標籤來加上標籤。

注意

此命令會使用 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 資料夾及其任何子資料夾中的所有檔案上設定名為 「General」 的標籤。

如果 [一般] 標籤設定為套用加密,則使用此命令成功標記的檔案也會加密。 在此情況下,這些檔案的 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.xlsx和 Pricelist.xlsx 的現有標籤。

如果套用的標籤也設定為套用 Rights Management 保護,則成功使用此命令加上標籤的檔案也會受到保護。 在此情況下,這些檔案的 Rights Management 擁有者 (具有 Rights Management 完整控制權限的人員) 就是執行 PowerShell 命令的使用者。

由於已指定 PreserveFileDetails 參數,因此已標記檔案的 Date Modified 會保持不變。

範例 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 參數時要探索的敏感性資訊類型。

如果您想要搜尋特定的敏感性資訊類型,請指定該資訊類型的實體標識碼號碼,您可以在 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

指定要套用標籤的識別 (識別碼) 。 當標籤有子標籤時,請一律只指定子標籤的識別碼,而不要指定父標籤的識別碼。

若要尋找標籤標碼:

標籤標識碼值不會顯示在 Microsoft Purview 合規性入口網站 中。 不過,您可以使用下列 Office 365 Security & Compliance Center PowerShell 命令來尋找此值:Get-Label | Format-Table -Property DisplayName, Name, Guid

對於已套用標籤的檔案,您也可以執行 Get-FileStatus Cmdlet 來識別 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 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