65.9K
CodeProject 正在变化。 阅读更多。
Home

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

starIconstarIconstarIconstarIconstarIcon

5.00/5 (3投票s)

2022 年 2 月 1 日

CPOL

2分钟阅读

viewsIcon

14980

如何通过 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 日:初始版本
© . All rights reserved.