Protect-RMSFile

使用 RMS 保護指定資料夾中的指定檔案或檔案。

Syntax

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

Description

Protect-RMSFile Cmdlet 會使用 Azure RMS 或 AD RMS 保護指定資料夾中的檔案或所有檔案。 如果檔案先前受到保護,則會再次受到保護,以套用任何變更,例如可能對用來保護檔案之範本所做的變更。

當您使用 [分類及保護] 選項時,Azure 資訊保護用戶端可以使用 [分類和保護] 選項來保護檔案時,可以保護多個檔案類型。檔案總管。

根據檔案類型,會自動套用不同層級的保護 (原生或一般) 。 您可以編輯登錄來變更保護層級。 此外,有些檔案會在其受到 Rights Management 保護之後變更其副檔名。 如需詳細資訊,請參閱 Azure 資訊保護用戶端系統管理員指南中的支援的保護檔案類型一節。

執行此 Cmdlet 之前,您必須先執行 Get-RMSTemplate ,才能將範本下載到您的電腦。 如果您執行此 Cmdlet 之後,已修改您想要使用的範本,請使用 -force 參數再次執行它,以下載修訂的範本。

當您執行此 Cmdlet 時,您有下列選項:

  • 檔案在目前的位置受到保護,並取代未受保護的原始檔案。

  • 原始檔案會維持未受保護狀態,而且另一個位置會建立受保護的檔案版本。

  • 指定資料夾中的所有檔案都會在目前的位置受到保護,並取代未受保護的原始檔案。

  • 指定資料夾中的所有檔案都會保持未受保護狀態,而且每個檔案的受保護版本都會在另一個位置建立。

您無法同時執行此命令,但必須等候原始命令完成,才能再次執行。 如果您嘗試在上一個命令完成之前再次執行它,新的命令將會失敗。

此 Cmdlet 會寫入下列記錄檔:Success.logFailure.log 和 Debug.log%localappdata%\Microsoft\MSIPC\pscmdlet\Logs\\<GUID>

提示

如需使用此 Cmdlet 來保護 Windows Server 檔案共用上的檔案、使用檔案Resource Manager和檔案分類基礎結構的逐步指示,請參閱使用 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: 磁片磁碟機的根目錄中。 檔案的 Rights Management 擁有者,以及使用者存取受保護檔案時可能會顯示的電子郵件地址,適用于系統管理員。

範例 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 簽發者不會開啟受保護的檔案,因此建立和儲存終端使用者授權會降低保護效能,並產生大量檔案來填滿可用的磁碟空間。

此參數可接受的值:

  • 磁片: 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

如果您不使用臨機操作原則的 License 參數,請指定要用來保護指定檔案或檔案的範本識別碼。 如果您不知道要使用的範本識別碼,請使用 Get-RMSTemplate Cmdlet。

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