NamingConversion/Source/NamingConversion/Convert-ActiveDirectoryNaming.cs
using System;
using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Management.Automation; namespace CPolydorou.ActiveDirectory.NamingConversion { [Cmdlet("Convert","ActiveDirectoryNaming")] public class Convert_ActiveDirectoryNaming : PSCmdlet { protected String[] DNs; protected String[] CNs; protected String[] NTs; protected String[] UPNs; [Parameter( Mandatory = true, ValueFromPipeline = true, ValueFromPipelineByPropertyName = true, ParameterSetName = "DN" )] public String[] DN { get { return this.DNs; } set { this.DNs = value; } } [Parameter( Mandatory = true, ValueFromPipeline = true, ValueFromPipelineByPropertyName = true, ParameterSetName = "CN" )] public String[] CN { get { return this.CNs; } set { this.CNs = value; } } [Parameter( Mandatory = true, ValueFromPipeline = true, ValueFromPipelineByPropertyName = true, ParameterSetName = "NT" )] public String[] NT { get { return this.NTs; } set { this.NTs = value; } } [Parameter( Mandatory = true, ValueFromPipeline = true, ValueFromPipelineByPropertyName = true, ParameterSetName = "UPN" )] public String[] UPN { get { return this.UPNs; } set { this.UPNs = value; } } protected override void ProcessRecord() { // Convert DNs if(DNs != null) { foreach(String d in DNs) { // Create the custom object NamingObject obj = new NamingObject(); obj.DN = d; obj.CN = Conversion.DNtoCN(d); obj.NT = Conversion.DNtoNT(d); obj.UPN = Conversion.DNtoUPN(d); WriteObject(obj); } } // Convert CNs if(CNs != null) { foreach(String c in CNs) { NamingObject obj = new NamingObject(); obj.CN = c; obj.DN = Conversion.CNtoDN(c); obj.NT = Conversion.CNtoNT(c); obj.UPN = Conversion.CNtoUPN(c); WriteObject(obj); } } // Convert NTs if (NTs != null) { foreach (String n in NTs) { NamingObject obj = new NamingObject(); obj.NT = n; obj.DN = Conversion.NTtoDN(n); obj.CN = Conversion.NTtoCN(n); obj.UPN = Conversion.NTtoUPN(n); WriteObject(obj); } } // Convert UPNs if (UPNs != null) { foreach (String u in UPNs) { NamingObject obj = new NamingObject(); obj.NT = Conversion.UPNtoNT(u); obj.DN = Conversion.UPNtoDN(u); obj.CN = Conversion.UPNtoCN(u); obj.UPN = u; WriteObject(obj); } } } } } |