DSInternals/Src/DSInternals.PowerShell/Commands/Datastore/SetADDBBootKeyCommand.cs
Michael Grafnetter 85b48b32df - Added the Add-ADReplNgcKey cmdlet
- Added the UserPrincipalName parameter to Get-ADReplAccount cmdlet
- Improved DRS_MSG_GETCHGREQ_V8 delete
- Fixed Set-ADDBBootKey cmdlet output type
- Fixed some formatting inconsistencies
2019-08-24 23:07:57 +02:00

53 lines
1.4 KiB
C#

namespace DSInternals.PowerShell.Commands
{
using System.Management.Automation;
using DSInternals.DataStore;
[Cmdlet(VerbsCommon.Set, "ADDBBootKey")]
[OutputType("None")]
public class SetADDBBootKeyCommand : ADDBCommandBase
{
[Parameter(Mandatory = true)]
[ValidateNotNull]
[ValidateCount(BootKeyRetriever.BootKeyLength, BootKeyRetriever.BootKeyLength)]
[AcceptHexString]
[Alias("OldKey", "Old", "OldSysKey")]
public byte[] OldBootKey
{
get;
set;
}
[Parameter(Mandatory = false)]
[ValidateNotNull]
[ValidateCount(BootKeyRetriever.BootKeyLength, BootKeyRetriever.BootKeyLength)]
[AcceptHexString]
[Alias("NewKey", "New", "NewSysKey")]
public byte[] NewBootKey
{
get;
set;
}
protected override void BeginProcessing()
{
base.BeginProcessing();
using(var directoryAgent = new DirectoryAgent(this.DirectoryContext))
{
directoryAgent.ChangeBootKey(this.OldBootKey, this.NewBootKey);
}
// TODO: Verbosity
// TODO: Exception handling
}
protected override bool ReadOnly
{
get
{
// We need to modify the PEK List attribute.
return false;
}
}
}
}