你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Protect-RMSFile

使用 RMS 保护指定文件夹中的指定文件或文件。

语法

Protect-RMSFile
       [-File <String>]
       [-Folder <String>]
       [-InPlace]
       [-Recurse]
       [-TemplateID <String>]
       [-License <SafeInformationProtectionLicenseHandle>]
       [-DoNotPersistEncryptionKey <String>]
       [-OutputFolder <String>]
       [-OwnerEmail <String>]
       [<CommonParameters>]

说明

Protect-RMSFile cmdlet 使用 Azure RMS 或 AD RMS 保护指定文件夹中的文件或所有文件。 如果文件以前受到保护,它将再次受到保护,以应用任何更改,例如可能对用于保护文件的模板所做的更改。

使用“分类和保护”选项 文件资源管理器时,Azure 信息保护 客户端可以使用“分类和保护”选项保护文件的方式保护多个文件类型。

根据文件类型, (本机或泛型) 自动应用不同的保护级别。 可以通过编辑注册表来更改保护级别。 此外,某些文件在 Rights Management 保护后更改其文件扩展名。 有关详细信息,请参阅 Azure 信息保护客户端管理员指南中的支持保护的文件类型

运行此 cmdlet 之前,必须运行 Get-RMSTemplate ,将模板下载到计算机上。 如果要使用的模板自运行此 cmdlet 以来已被修改,请使用 -force 参数再次运行该模板以下载修订后的模板。

运行此 cmdlet 时,可以选择以下选项:

  • 该文件在当前位置受到保护,替换未受保护的原始文件。

  • 原始文件保持不变,并且该文件的受保护版本在另一个位置创建。

  • 指定文件夹中的所有文件均在当前位置受到保护,替换未受保护的原始文件。

  • 指定文件夹中的所有文件都保持未受保护状态,并且每个文件的受保护版本在另一个位置创建。

不能同时运行此命令,但必须先等待原始命令完成,然后再再次运行它。 如果在上一个命令完成之前尝试再次运行该命令,则新命令将失败。

此 cmdlet 写入以下日志文件:Success.logFailure.logDebug.log%localappdata%\Microsoft\MSIPC\pscmdlet\Logs\\<GUID>

提示

有关使用此 cmdlet 保护 Windows Server 文件共享上的文件(使用文件资源管理器和文件分类基础结构)的分步说明,请参阅使用 Windows Server 文件分类基础结构的 RMS 保护 (FCI)

示例

示例 1:使用模板保护和替换单个文件

PS C:\>Protect-RMSFile -File "C:\Test.docx" -InPlace -TemplateID 82bf3474-6efe-4fa1-8827-d1bd93339119
InputFile             EncryptedFile
---------             -------------
C:\Test.docx          C:\Test.docx

此命令使用模板保护名为 Test.docx 的单个文件,并替换原始未受保护的文件。 文件的 Rights Management 所有者以及访问受保护文件时可能向用户显示的电子邮件地址将自动设置为运行命令的帐户的电子邮件地址。

示例 2:使用模板创建单个文件的受保护副本

PS C:\>Protect-RMSFile -File "Test.docx" -TemplateID 82bf3474-6efe-4fa1-8827-d1bd93339119
InputFile             EncryptedFile
---------             -------------
C:\Test.docx          C:\Test-Copy.docx

此命令与前面的示例相同,只不过它不使用 InPlace 参数。 由于它不使用 OutputFolder 参数,因此受保护的文件将在当前文件夹中创建,并将“-Copy”追加到文件名中。 原始未受保护的文件保留在当前文件夹中。

示例 3:使用模板创建文件的受保护版本

PS C:\>Protect-RMSFile -File "C:\Test.docx" -OutputFolder "C:\Temp" -TemplateID e6ee2481-26b9-45e5-b34a-f744eacd53b0 -OwnerEmail "admin@Contoso.com"

InputFile             EncryptedFile
---------             -------------
C:\Test.txt           C:\Temp\Test.ptxt

此命令使用模板保护名为 Test.docx 的单个文件,并将此受保护的文件版本置于 C:\Temp 中,使原始文件在 C: 驱动器的根目录中不受保护。 文件的权限管理所有者以及访问受保护文件时可能向用户显示的电子邮件地址是针对管理员的。

示例 4:使用模板保护文件夹中的所有文件

PS C:\>Protect-RMSFile -Folder "\\server1\Docs" -InPlace -DoNotPersistEncryptionKey All -TemplateID e6ee2481-26b9-45e5-b34a-f744eacd53b0 -OwnerEmail "IT@Contoso.com"

InputFile                        EncryptedFile

----------                       -------------
\\server1\Docs\Feb2015.docx      \\server1\Docs\Feb2015.docx

\\server1\Docs\Feb2015.txt       \\server1\Docs\Feb2015.ptxt

\\server1\Docs\Jan2015.docx      \\server1\Docs\Jan2015.docx

\\server1\Docs\Jan2015.txt       \\server1\Docs\Jan2015.ptxt

此命令仅保护服务器共享中的所有文件 (单个文件夹,而不是子文件夹) ,替换未受保护的文件。 没有访问权限时向用户显示的电子邮件地址是 IT 部门组,此组在模板中被授予完全控制使用权限,以便他们可以更改受保护文件的使用权限。

由于此方案代表其他人保护文件, 因此 DoNotPersistEncryptionKey 参数用于最佳性能,并防止未使用的文件保存到磁盘。

示例 5:使用模板在文件夹中具有特定文件扩展名的受保护文件

PS C:\>foreach ($file in (Get-ChildItem -Path \\server1\Docs -Recurse -Force | where {!$_.PSIsContainer} | Where-Object {$_.Extension -eq ".docx"})) {Protect-RMSFile -File $file.PSPath -InPlace -DoNotPersistEncryptionKey All -TemplateID "e6ee2481-26b9-45e5-b34a-f744eacd53b0" -OwnerEmail "IT@Contoso.com"}


InputFile                                   EncryptedFile

---------                                   -------------
\\server1\Docs\Feb2015.docx                 \\server1\Docs\Feb2015.docx

\\server1\Docs\Jan2015.docx                 \\server1\Docs\Jan2015.docx

\\server1\Docs\Reports\Feb2015.docx         \\server1\Docs\Reports\Feb2015.docx

\\server1\Docs\Reports\Jan2015.docx         \\server1\Docs\Reports\Jan2015.docx

此命令仅保护文件夹 (中具有.docx文件扩展名的文件,以及服务器共享上所有子文件夹) ,替换未受保护的文件。 与上一示例中一样,在用户没有访问权限时向用户显示的电子邮件地址适用于 IT 部门。

尽管 Protect-RMSFile 命令本身不支持通配符,但可以使用Windows PowerShell来实现此目的,并根据需要更改示例中的文件扩展名。

示例 6:使用即席权限策略保护单个文件

PS C:\>$License = New-RMSProtectionLicense -UserEmail 'user1@contoso.com' -Permission EDIT
PS C:\> Protect-RMSFile -License $License -File "C:\Test.txt" -InPlace
InputFile             EncryptedFile
---------             -------------
C:\Test.txt           C:\Test.ptxt

第一个命令创建一个临时权限策略,用于授予 编辑 权限 user1@contoso.com

第二个命令仅使用此临时权限策略保护名为Test.txt的单个文件,并替换原始未受保护的文件。

请注意,除非电子邮件地址是 user1@contoso.com,否则在命令完成后将无法保护此文件,因为您没有任何权限,并且你不是 Rights Management 所有者。

如果需要以后能够取消保护此文件,可以在第一个命令的即席权限策略中添加名称并向用户和自己授予 EXTRACT 或 OWNER 权限。 或者,如果不希望用户能够取消保护文件,请将 -OwnerEmail <电子邮件地址> 添加到第二个命令的末尾。

参数

-DoNotPersistEncryptionKey

防止在保护文件时保存 Rights Management 颁发者的自授权最终用户许可证。 此许可证允许 Rights Management 颁发者在不对 Rights Management 服务进行身份验证的情况下打开受保护的文件。 这有助于确保运行此 cmdlet 的人员始终可以打开自己保护的文件,即使该人员处于脱机状态。 它还会导致该用户打开这些受保护的文件时出现最少的延迟。

Rights Management 颁发者是保护文件的帐户。 有关详细信息,请参阅 Rights Management 颁发者和 Rights Management 所有者

默认情况下,此自授权最终用户许可证保存在文件本身和运行 cmdlet 的计算机上。 文件名以 EUL 开头,它在 %localappdata%\Microsoft\MSIPC 中创建。 使用此参数可阻止此最终用户许可证保存在文件中、计算机上或两者中。 如果代表其他人(例如,使用 Windows Server FCI)保护文件,则指定此参数是合适的。 在此方案中,Rights Management 颁发者不会打开受保护的文件,因此创建和保存最终用户许可证会降低保护性能,并不必要的生成大量可填满可用磁盘空间的文件。

此参数的可接受的值:

  • 磁盘: 不会为 %localappdata%\Microsoft\MSIPC 中的每个文件生成 Rights Management 颁发者的最终用户许可证。

  • 许可证: 权限管理颁发者的最终用户许可证未插入到文件的发布许可证中。

  • 所有: 在保护文件时,不会创建和保存 Rights Management 颁发者的最终用户许可证。

Type:String
Accepted values:all, disk, license
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-File

指定要保护的路径和文件名。 对于路径,可以使用驱动器号或 UNC。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Folder

指定要保护的路径和文件夹。 对于路径,可以使用驱动器号或 UNC。

当前在指定文件夹中的所有文件都将受到保护。 添加到文件夹的新文件不会自动受到保护。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InPlace

指定文件夹中的文件或文件在当前位置受到保护,替换未受保护的原始文件或文件。 如果指定 OutputFolder 参数,则忽略此参数。

如果未指定 InPlaceOutputFolder,则新文件将在当前目录中创建,并将“-Copy”追加到文件名中,使用复制并粘贴到同一文件夹中时文件资源管理器使用的同一命名约定。 例如,如果未保护具有Document.docx的文件,则受保护版本 将命名为Document-Copy.docx。 如果已存在名为 Document-Copy.docx 的文件,则会创建 文档复制 (2) .docx ,依此等。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-License

指定存储使用 New-RMSProtectionLicense cmdlet 创建的临时权限策略的变量名称。 此即席权限策略用于代替模板来保护文件或文件。

Type:SafeInformationProtectionLicenseHandle
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-OutputFolder

指定要放置未受保护的原始文件的受保护版本的路径和文件夹。 维护原始文件夹结构,这意味着可以为指定的值创建子文件夹。

对于路径,可以使用驱动器号或 UNC。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-OwnerEmail

按电子邮件地址指定受保护文件或文件的 Rights Management 所有者。

默认情况下,运行此 cmdlet 的帐户既是受保护文件的 Rights Management 颁发者和 Rights Management 所有者。 此参数允许向受保护的文件分配不同的 Rights Management 所有者,以便指定帐户具有文件的所有使用权限 (完全控制) ,并且始终可以访问它。 Rights Management 所有者独立于 Windows 文件系统所有者。 有关详细信息,请参阅 Rights Management 颁发者和 Rights Management 所有者

如果未为此参数指定值,cmdlet 将使用经过身份验证的会话的电子邮件地址来标识受保护文件或文件的 Rights Management 所有者。 如果将 AD RMS 或 Azure RMS 与用户帐户配合使用来保护文件,则这是电子邮件地址。 如果将 Azure RMS 与服务主体帐户一起使用,则此电子邮件地址将长串数字和字母。 此电子邮件地址会显示给没有限制的用户以查看受保护的文档,以便他们可以请求权限。

如果使用服务主体帐户为 Azure RMS 运行此 cmdlet,并且拥有要保护的文件或文件,请为此参数指定自己的电子邮件地址。 如果使用服务主体帐户为 Azure RMS 运行此 cmdlet,并且单个用户拥有文件或要保护的所有文件,请指定其电子邮件地址,以便不要限制原始文件所有者对文件进行更改,并按预期使用该文件。

如果使用属于不同用户的多个文件运行此 cmdlet,请确保这些用户被授予完全控制使用权限,并考虑为此参数分配的电子邮件地址。 虽然可以指定组电子邮件地址,并且此地址将显示为请求访问权限,但组的成员不会成为 Rights Management 所有者,默认情况下没有保护文件的使用权限。 在此方案中,选择是分配单个用户 ((例如管理员) ),还是指定同时分配完全控制使用权限的组电子邮件地址。 对于组电子邮件配置,这可能是支持人员,例如。

重要说明:尽管此参数是可选的,但如果在使用 Azure RMS 和服务主体保护文件时未指定此参数,则用户从 Azure 信息保护 客户端看到的电子邮件地址将无济于事。 因此,我们建议在使用 Azure RMS 和服务主体(而不是用户帐户)保护文件时始终指定此参数。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Recurse

Folder 参数一起使用时,指示子文件夹中的所有当前文件都将受到保护。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-TemplateID

指定模板的 ID,如果不对即席策略使用 License 参数来保护指定的文件或文件。 如果不知道要使用的模板的 ID,请使用 Get-RMSTemplate cmdlet。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False