Add-BitLockerKeyProtector

Adds a key protector for a BitLocker volume.

Syntax

Add-BitLockerKeyProtector
   [-MountPoint] <String[]>
   [-ADAccountOrGroupProtector]
   [-ADAccountOrGroup] <String>
   [-Service]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Add-BitLockerKeyProtector
   [-MountPoint] <String[]>
   [-PasswordProtector]
   [[-Password] <SecureString>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Add-BitLockerKeyProtector
   [-MountPoint] <String[]>
   [-StartupKeyPath] <String>
   [-TpmAndPinAndStartupKeyProtector]
   [[-Pin] <SecureString>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Add-BitLockerKeyProtector
   [-MountPoint] <String[]>
   [[-Pin] <SecureString>]
   [-TpmAndPinProtector]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Add-BitLockerKeyProtector
   [-MountPoint] <String[]>
   [-RecoveryKeyProtector]
   [-RecoveryKeyPath] <String>
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Add-BitLockerKeyProtector
   [-MountPoint] <String[]>
   [-RecoveryPasswordProtector]
   [[-RecoveryPassword] <String>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Add-BitLockerKeyProtector
   [-MountPoint] <String[]>
   [-StartupKeyProtector]
   [-StartupKeyPath] <String>
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Add-BitLockerKeyProtector
   [-MountPoint] <String[]>
   [-StartupKeyPath] <String>
   [-TpmAndStartupKeyProtector]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Add-BitLockerKeyProtector
   [-MountPoint] <String[]>
   [-TpmProtector]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

Description

The Add-BitLockerKeyProtector cmdlet adds a protector for the volume key of the volume protected with BitLocker Drive Encryption.

When a user accesses a drive protected by BitLocker, such as when starting a computer, BitLocker requests the relevant key protector. For example, the user can enter a PIN or provide a USB drive that contains a key. BitLocker retrieves the encryption key and uses it to read data from the drive.

You can use one of the following methods or combinations of methods for a key protector:

You can add only one of these methods or combinations at a time, but you can run this cmdlet more than once on a volume.

Adding a key protector is a single operation; for example, adding a startup key protector to a volume that uses the TPM and PIN combination as a key protector results in two key protectors, not a single key protector that uses TPM, PIN, and startup key. Instead, add a protector that uses TPM, PIN, and startup key and then remove the TPM and PIN protector by using the Remove-BitLockerKeyProtector cmdlet.

For a password or PIN key protector, specify a secure string. You can use the ConvertTo-SecureString cmdlet to create a secure string. You can use secure strings in a script and still maintain confidentiality of passwords.

This cmdlet returns a BitLocker volume object. If you choose recovery password as your key protector but do not specify a 48-digit recovery password, this cmdlet creates a random 48-bit recovery password. The cmdlet stores the password as the RecoveryPassword field of the KeyProtector attribute of the BitLocker volume object.

If you use startup key or recovery key as part of your key protector, provide a path to store the key. This cmdlet stores the name of the file that contains the key in the KeyFileName field of the KeyProtector field in the BitLocker volume object.

For an overview of BitLocker, see BitLocker Drive Encryption Overview on TechNet.

Examples

Example 1: Add key protector

PS C:\>$SecureString = ConvertTo-SecureString "1234" -AsPlainText -Force
PS C:\>Add-BitLockerProtector -MountPoint "C:" -Pin $SecureString -TPMandPinProtector

This example adds a combination of the TPM and a PIN as key protector for the BitLocker volume identified with the drive letter C:.

The first command uses the ConvertTo-SecureString cmdlet to create a secure string that contains a PIN and saves that string in the $SecureString variable. For more information about the ConvertTo-SecureString cmdlet, type Get-Help ConvertTo-SecureString.

The second command adds a protector to the BitLocker volume that has the drive letter C:. The command specifies that this volume uses a combination of the TPM and the PIN as key protector and provides the PIN saved in the $SecureString variable.

Example 2: Add a recovery key for all BitLocker volumes

PS C:\>Get-BitLockerVolume | Add-BitLockerKeyProtector -RecoveryKeyPath "E:\Recovery\" -RecoveryKeyProtector

This command gets all the BitLocker volumes for the current computer and passes them to the Add-BitLockerKeyProtector cmdlet by using the pipe operator. This cmdlet specifies a path to a recovery key and indicates that these volumes use a recovery key as a key protector.

Example 3: Add credentials as a key protector

PS C:\>Add-BitLockerKeyProtector -MountPoint "C:" -AdAccountOrGroup "Western\SarahJones" -AdAccountOrGroupProtector

This command adds an AD DS account key protector to the BitLocker volume specified by the MountPoint parameter. The command specifies an account and specifies that BitLocker uses user credentials as a key protector. When a user accesses this volume, BitLocker prompts for credentials for the user account Western\SarahJones.

Required Parameters

-ADAccountOrGroup

Specifies an account using the format Domain\User. This cmdlet adds the account you specify as a key protector for the volume encryption key.

Type:String
Aliases:sid
Position:1
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-ADAccountOrGroupProtector

Indicates that BitLocker uses an AD DS account as a protector for the volume encryption key.

Type:SwitchParameter
Aliases:sidp
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-MountPoint

Specifies an array of drive letters or BitLocker volume objects. This cmdlet adds a key protector to the volumes specified. To obtain a BitLocker volume object, use the Get-BitLockerVolume cmdlet.

Type:String[]
Position:0
Default value:None
Accept pipeline input:True (ByPropertyName, ByValue)
Accept wildcard characters:False
-PasswordProtector

Indicates that BitLocker uses a password as a protector for the volume encryption key.

Type:SwitchParameter
Aliases:pwp
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-RecoveryKeyPath

Specifies a path to a recovery key. This cmdlet adds the recovery key stored in the specified path as a protector for the volume encryption key.

Type:String
Aliases:rk
Position:1
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-RecoveryKeyProtector

Indicates that BitLocker uses a recovery key as a protector for the volume encryption key.

Type:SwitchParameter
Aliases:rkp
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-RecoveryPasswordProtector

Indicates that BitLocker uses a recovery password as a protector for the volume encryption key.

Type:SwitchParameter
Aliases:rpp
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-StartupKeyPath

Specifies a path to a startup key. The cmdlet adds the key stored in the specified path as a protector for the volume encryption key.

Type:String
Aliases:sk
Position:1
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-StartupKeyProtector

Indicates that BitLocker uses a startup key as a protector for the volume encryption key.

Type:SwitchParameter
Aliases:skp
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-TpmAndPinAndStartupKeyProtector

Indicates that BitLocker uses a combination of TPM, a PIN, and a startup key as a protector for the volume encryption key.

Type:SwitchParameter
Aliases:tpskp
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-TpmAndPinProtector

Indicates that BitLocker uses a combination of TPM and a PIN as a protector for the volume encryption key.

Type:SwitchParameter
Aliases:tpp
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-TpmAndStartupKeyProtector

Indicates that BitLocker uses a combination of TPM and a startup key as a protector for the volume encryption key.

Type:SwitchParameter
Aliases:tskp
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-TpmProtector

Indicates that BitLocker uses TPM as a protector for the volume encryption key.

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

Optional Parameters

-Confirm

Prompts you for confirmation before running the cmdlet.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False
-Password

Specifies a secure string object that contains a password. The cmdlet adds the password specified as a protector for the volume encryption key.

Type:SecureString
Aliases:pw
Position:1
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-Pin

Specifies a secure string object that contains a PIN. The cmdlet adds the PIN specified, with other data, as a protector for the volume encryption key.

Type:SecureString
Aliases:p
Position:1
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-RecoveryPassword

Specifies a recovery password. If you do not specify this parameter, the cmdlet creates a random password. You can enter a 48 digit password. The cmdlet adds the password specified or created as a protector for the volume encryption key.

Type:String
Aliases:rp
Position:1
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-Service

Indicates that the system account for this computer unlocks the encrypted volume.

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

Shows what would happen if the cmdlet runs. The cmdlet is not run.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False

Inputs

BitLockerVolume[], string[]

Outputs

BitLockerVolume[]