Automation with RMS PowerShell cmdlets
The new PowerShell cmdlets can perform a lot of the functions that were previously only available with the Bulk Protection Tool.
New cmdlets:
• Get-RMSServer
• Get-RMSTemplate
• Get-RMSFileStatus
• Protect-RMSFile
• Unprotect-RMSFile
They can be installed from:
[https://connect.microsoft.com/site1170/Downloads/DownloadDetails.aspx?DownloadID=49294
](https://connect.microsoft.com/site1170/Downloads/DownloadDetails.aspx?DownloadID=49294)
The documentation doesn't list all of the prerequisites, so please make sure the following are installed:
.NET 3.5
VC++ Runtime
Download links:
For x64 : http://www.microsoft.com/en-us/download/details.aspx?id=14632
For x86: [http://www.microsoft.com/en-us/download/details.aspx?id=5555
](http://www.microsoft.com/en-us/download/details.aspx?id=5555)
MSIPC 2.1 client:
[http://www.microsoft.com/en-us/download/details.aspx?id=38396
](http://www.microsoft.com/en-us/download/details.aspx?id=38396)
ServerCertification permissions change:
The power shell tool can run on clients, but runs in server box mode (of MSIPC) you need EXECUTE permissions on ServerCertification.asmx of your AD-RMS server to use the tool.
For install issues:
See the contents of the log file for the C:\Windows\System32\WindowsPowerShell\v1.0\Modules\Microsoft.Protection\Microsoft.Protection.dll
Command Syntax
Protect-RMSFile
Protects using RMS encryption the specified file or the files in specified folder.
SYNTAX
Protect-RMSFile -File <string> [-DoNotPersistEncryptionKey <string>] [-OutputFolder <string>] [-TemplateId
<string>] [<CommonParameters>]
DESCRIPTION
The Protect-RMSFile cmdlet protects and encrypts a specified file or the files in a specified folder if they were
previously unprotected. The Protect-RMSFile cmdlet will run and execute in the following modes:
(1) Encrypt a file and let it be encrypted in the default location.
(2) Encrypt an file and let the encrypted file be placed at a new location.
(3) Encrypt a folder. All files inside the folder will be encrypted.
Unprotect-RMSFile
SYNTAX
Unprotect-RMSFile -File <string> [-OutputFolder <string>] [-SupressUI] [<CommonParameters>]
PARAMETERS
-File <string>
-OutputFolder <string>
-SupressUI
Get-RMSTemplate
Returns a list of AD RMS templates.
SYNTAX
Get-RMSTemplate [-Force <switch>] [-RMSServer <string>] [<CommonParameters>
DESCRIPTION
The Get-RMSTemplate cmdlet returns a list of templates.
PARAMETERS
-Force <switch>
Forces a template refresh. If specified, templates are download from network and to not use locally cached
templates on disk.
-RMSServer <string>
If specified, used to source templates from a specific issuing server. For list of issuing servers, use the
Get-RMSServer cmdlet.
<CommonParameters>
This cmdlet supports the common parameters: Verbose, Debug,
ErrorAction, ErrorVariable, WarningAction, WarningVariable,
OutBuffer, PipelineVariable, and OutVariable. For more information, see
about_CommonParameters (http://go.microsoft.com/fwlink/?LinkID=113216).
Get-RMSFileStatus
Returns RMS protection status of the specified file or files.
SYNTAX
Get-RMSFileStatus -File <string> [<CommonParameters>]
DESCRIPTION
The Get-RMSFileStatus cmdlet returns the RMS protection status (whether the file is protected or not) of the
specified file or files.
PARAMETERS
-File <string>
The fully qualified path to the file or files to be verified for their AD RMS protection status.
Get-RMSServer
Returns the list of all AD RMS servers that can issue templates for the user.
SYNTAX
Get-RMSServer [<CommonParameters>]
PARAMETERS
<CommonParameters>
This cmdlet supports the common parameters: Verbose, Debug,
ErrorAction, ErrorVariable, WarningAction, WarningVariable,
OutBuffer, PipelineVariable, and OutVariable. For more information, see
about_CommonParameters (http://go.microsoft.com/fwlink/?LinkID=113216).
To see the examples, type: "get-help YourRMSCMDLet -examples".
For more information, type: "get-help YourRMSCMDLet -detailed".
For technical information, type: "get-help YourRMSCMDLet -full".
For online help, type: "get-help YourRMSCMDLet -online" (example: "get-help Get-RMSTemplate -examples").