Set-VMKeyProtector 
	Configures a key protector for a virtual machine.
Syntax
VMName (Default)
Set-VMKeyProtector
    [-VMName] <String[]>
    [-CimSession <CimSession[]>]
    [-ComputerName <String[]>]
    [-Credential <PSCredential[]>]
    [-Passthru]
    [-KeyProtector <Byte[]>]
    [-NewLocalKeyProtector]
    [-RestoreLastKnownGoodKeyProtector]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]
	VMObject
Set-VMKeyProtector
    [-VM] <VirtualMachine[]>
    [-Passthru]
    [-KeyProtector <Byte[]>]
    [-NewLocalKeyProtector]
    [-RestoreLastKnownGoodKeyProtector]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]
	Description
The Set-VMKeyProtector cmdlet configures a key protector for a virtual machine.
Examples
Example 1: Set a key protector for a virtual machine
PS C:\> Set-VMKeyProtector -VM $VM1 -KeyProtector $kp.RawData
This command specifies that virtual machine stored in the $VM1 variable is to use the key protector in $kp.
Example 2: Set a key protector for a virtual machine by using its name
PS C:\> Set-VMKeyProtector -VMName "VM10" -NewLocalKeyProtector
This command specifies that the virtual machine named VM10 is to use a new local key protector.
Parameters
-CimSession 
		Runs the cmdlet in a remote session or on a remote computer. Enter a computer name or a session object, such as the output of a New-CimSession or Get-CimSession cmdlet. The default is the current session on the local computer.
Parameter properties
| Type: | CimSession[]  | 
| Default value: | None | 
| Supports wildcards: | False | 
| DontShow: | False | 
Parameter sets
VMName
| Position: | Named | 
| Mandatory: | False | 
| Value from pipeline: | False | 
| Value from pipeline by property name: | False | 
| Value from remaining arguments: | False | 
-ComputerName 
		Specifies one or more Hyper-V hosts to run the cmdlet. NetBIOS names, IP addresses, and fully-qualified domain names are allowable. The default is the local computer. Use "localhost" or a dot (".") to specify the local computer explicitly.
Parameter properties
| Type: | String[]  | 
| Default value: | None | 
| Supports wildcards: | False | 
| DontShow: | False | 
Parameter sets
VMName
| Position: | Named | 
| Mandatory: | False | 
| Value from pipeline: | False | 
| Value from pipeline by property name: | False | 
| Value from remaining arguments: | False | 
-Confirm
Prompts you for confirmation before running the cmdlet.
Parameter properties
| Type: | SwitchParameter | 
| Default value: | False | 
| Supports wildcards: | False | 
| DontShow: | False | 
| Aliases: | cf | 
Parameter sets
(All)
| Position: | Named | 
| Mandatory: | False | 
| Value from pipeline: | False | 
| Value from pipeline by property name: | False | 
| Value from remaining arguments: | False | 
-Credential
Specifies a user account that has permission to perform this action. The default is the current user.
Parameter properties
| Type: | PSCredential[]  | 
| Default value: | None | 
| Supports wildcards: | False | 
| DontShow: | False | 
Parameter sets
VMName
| Position: | Named | 
| Mandatory: | False | 
| Value from pipeline: | False | 
| Value from pipeline by property name: | False | 
| Value from remaining arguments: | False | 
-KeyProtector 
		Specifies the key protector to use for the virtual machine.
Parameter properties
| Type: | Byte[]  | 
| Default value: | None | 
| Supports wildcards: | False | 
| DontShow: | False | 
Parameter sets
(All)
| Position: | Named | 
| Mandatory: | False | 
| Value from pipeline: | False | 
| Value from pipeline by property name: | False | 
| Value from remaining arguments: | False | 
-NewLocalKeyProtector   
		Specifies that this cmdlet generates a new local key protector.
Parameter properties
| Type: | SwitchParameter | 
| Default value: | None | 
| Supports wildcards: | False | 
| DontShow: | False | 
Parameter sets
(All)
| Position: | Named | 
| Mandatory: | False | 
| Value from pipeline: | False | 
| Value from pipeline by property name: | False | 
| Value from remaining arguments: | False | 
-Passthru
Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output.
Parameter properties
| Type: | SwitchParameter | 
| Default value: | None | 
| Supports wildcards: | False | 
| DontShow: | False | 
Parameter sets
(All)
| Position: | Named | 
| Mandatory: | False | 
| Value from pipeline: | False | 
| Value from pipeline by property name: | False | 
| Value from remaining arguments: | False | 
-RestoreLastKnownGoodKeyProtector     
		Indicates that this cmdlet restores the last known good key protector.
Parameter properties
| Type: | SwitchParameter | 
| Default value: | None | 
| Supports wildcards: | False | 
| DontShow: | False | 
Parameter sets
(All)
| Position: | Named | 
| Mandatory: | False | 
| Value from pipeline: | False | 
| Value from pipeline by property name: | False | 
| Value from remaining arguments: | False | 
-VM
Specifies one or more virtual machines for which to set a key protector.
Parameter properties
| Type: | VirtualMachine[]  | 
| Default value: | None | 
| Supports wildcards: | False | 
| DontShow: | False | 
Parameter sets
VMObject
| Position: | 0 | 
| Mandatory: | True | 
| Value from pipeline: | True | 
| Value from pipeline by property name: | False | 
| Value from remaining arguments: | False | 
-VMName
Specifies the name of one or more virtual machines for which to set a key protector.
Parameter properties
| Type: | String[]  | 
| Default value: | None | 
| Supports wildcards: | False | 
| DontShow: | False | 
Parameter sets
VMName
| Position: | 0 | 
| Mandatory: | True | 
| Value from pipeline: | True | 
| Value from pipeline by property name: | False | 
| Value from remaining arguments: | False | 
-WhatIf 
		Shows what would happen if the cmdlet runs. The cmdlet is not run.
Parameter properties
| Type: | SwitchParameter | 
| Default value: | False | 
| Supports wildcards: | False | 
| DontShow: | False | 
| Aliases: | wi | 
Parameter sets
(All)
| Position: | Named | 
| Mandatory: | False | 
| Value from pipeline: | False | 
| Value from pipeline by property name: | False | 
| Value from remaining arguments: | False | 
CommonParameters
This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction, and -WarningVariable. For more information, see about_CommonParameters.