DSInternals/Src/DSInternals.PowerShell/Commands/Replication/AddADReplNgcKeyCommand.cs
2020-02-25 21:14:03 +01:00

46 lines
1.4 KiB
C#

using System.Management.Automation;
using System.Security.Principal;
namespace DSInternals.PowerShell.Commands
{
[Cmdlet(VerbsCommon.Add, "ADReplNgcKey")]
[OutputType("None")]
public class AddADReplNgcKeyCommand : ADReplPrincipalCommandBase
{
// TODO: Change to X509Certificate2
[Parameter(Mandatory = true)]
[AcceptHexString]
public byte[] PublicKey
{
get;
set;
}
protected override void ProcessRecord()
{
switch (this.ParameterSetName)
{
case ParameterSetByGuid:
this.ReplicationClient.WriteNgcKey(this.ObjectGuid, this.PublicKey);
break;
case ParameterSetByDN:
this.ReplicationClient.WriteNgcKey(this.DistinguishedName, this.PublicKey);
break;
case ParameterSetByName:
this.ReplicationClient.WriteNgcKey(new NTAccount(this.Domain, this.SamAccountName), this.PublicKey);
break;
case ParameterSetBySid:
this.ReplicationClient.WriteNgcKey(this.ObjectSid, this.PublicKey);
break;
case ParameterSetByUPN:
this.ReplicationClient.WriteNgcKey(new NTAccount(this.UserPrincipalName), this.PublicKey);
break;
}
}
}
}