VBscript 中使用 Azure 信息保护 (AIP) 标记





5.00/5 (3投票s)
如何通过 VBScript 代码设置 AIP 标签
引言
本文解决了自动化 Excel 文件创建的问题,避免了 Azure 不断提示用户手动选择保护标签。我为此苦恼了很长时间——我有一批批处理脚本,用于生成 CSV 文件并将其转换为 Excel 文件;但当我的公司开始使用 Azure 信息保护 (AIP) 时,脚本在保存 Excel 文件之前会暂停,要求手动输入标签。
我一直在寻找这个解决方案。互联网上有一些变通方法,包括使用预标记的 Excel 文件、PowerShell 和虚拟电子邮件。使用预标记的空白 Excel 文件似乎是一个可行的解决方案,但当文件被更改时,Azure 再次要求输入标签。
我在官方 Microsoft 文档中找到了这方面的信息,但内容非常稀少,基本上需要自己摸索。
所展示的具体解决方案适用于 Excel 工作簿,但它也应该适用于任何其他 Office 文档。
Using the Code
在编辑完 objWorkbook
(Excel.Workbook
对象)并准备保存后,你只需要这段代码。
(**注意 #1**:SensitivityLabel.SetLabel
需要一个 context
对象,如果你不使用它,它可以是任何东西,我选择的是 dictionary
)。
(**注意 #2**:你可以向 LabelInfo
添加其他属性,可以在官方 Microsoft 文档 这里 找到它)。
Dim myLabelInfo, context
Set myLabelInfo = objWorkbook.SensitivityLabel.CreateLabelInfo()
Set context = CreateObject("Scripting.Dictionary")
With myLabelInfo
.AssignmentMethod = 1
.IsEnabled = True
.LabelId = "--your labelID--"
.LabelName = "--your label name--"
.SetDate = Now()
End With
objWorkbook.SensitivityLabel.SetLabel myLabelInfo, context
当然,你需要将 --your labelID-- 替换为实际的标签 ID,并将 --your label name-- 替换为实际的标签名称。
你可以向公司的管理员(设置 Azure 的人)询问这些信息——或者你可以使用 PowerShell cmdlet 检查你自己的信息。
首先,找到一个带有你需要的标签的 Office 文件,例如,假设你找到的文件是 C:\myFile.xlsx;这就是你将在 PowerShell 中找到该文件标签信息的方法。
Get-AIPFileStatus "C:\myFile.xlsx"
如果你想使用 PS cmdlet 设置标签,可以尝试以下操作
Set-AIPFileLabel -Path "C:\myFile.xlsx" -LabelId "--your labelID--"
历史
- 2022 年 2 月 1 日:初始版本