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[]>]
Description
針對 Microsoft Purview 資訊保護用戶端, Set-FileLabel Cmdlet 會設定一或多個檔案的敏感度標籤。 當標籤設定為套用加密時,此動作會自動套用保護。
此外,您可以使用這個 Cmdlet,在建立自定義許可權作為具有 New-CustomPermissions 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 標記的所有檔案。 然後,這些檔案會藉由依標識符指定「一般」標籤來加上標籤。
範例 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”的標籤。
如果 [一般] 標籤設定為套用加密,則使用此命令成功加上標籤的檔案也會加密。 在此情況下,Rights Management 擁有者(具有 Rights Management 完全控制許可權)是執行 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 保護,則使用此命令成功標記的檔案也會受到保護。 在此情況下,Rights Management 擁有者(具有 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 參數時要探索的敏感性資訊類型。
如果您想要搜尋特定敏感性資訊類型,請指定該資訊類型的 實體標識碼 號碼,您可以在 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
指定要套用之標籤的身分識別(標識符)。 當卷標有子捲標時,一律只指定子捲標的標識碼,而不是父卷標。
若要尋找標籤標碼:
卷標標識碼值不會顯示在 Microsoft Purview 合規性入口網站中。 不過,您可以使用下列 Office 365 安全性與合規性中心 PowerShell 命令來尋找此值: Get-Label | Format-Table -Property DisplayName, Name, Guid
對於已套用標籤的檔案,您也可以執行 Get-FileStatus Cmdlet 來識別標籤標識碼(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\Folderhttp://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()
這些命令可確保垃圾回收器運行並釋放不再需要的記憶體。