Set Prefix Powershell

Set Prefix to Groups and Users Powershell

Når man skal sætte noget i AD foreksempel et Præfiks kan det godt blive en ret omfattende ting da det skal sættes mange steder og gange.
Set prefix på AD Grupper og Brugere med Powershell gør livet noget lettere og det hele kan gøre ret nemt.

Det første du skal er at have en Get-ADgroup eller Get-ADUser med -Filter
da det jo ikke er alle bruger og grupper som skal have et prefix som foreksempel er OLD_ placeret på sig.
Der laves der først et Powershell filter for at afgrænse søgningen
eks. –filter {name -like “Groupname eller Vildcard*”} .
Som det ses kan man bruge vildcards og bare dele af gruppenavne, dette gør at man kan lave en meget præcis søgning.

Derefter sætter man et Præfix på alle de grupper man har i sin søgning. Nedenstående kode gør hvad du har behov for på AD Grupper og tilføjer OLD_ foran Active Directory Grupperne i din søgning.

$prefix="OLD_" # Prefix der skal sættes. 
Get-ADGroup –filter {name -like "Gruppe*"} | % {Set-ADGroup $_.samaccountname –samaccountname ($prefix + $_.samaccountname);Rename-Adobject $_.DistinguishedName –newname ($prefix + $_.samaccountname)} Get-ADUser –filter {name -like "Bruger*"} | % {Set-ADUser $_.SamAccountName -SamAccountName ($prefix + $_.SamAccountName);Set-ADUser $_.SamAccountName -GivenName($prefix + $_.GivenName); Rename-Adobject $_.DistinguishedName -NewName ($prefix + $_.samaccountname)}

Læs evt. mere om Rename-ADObject på Microsoft og andre artikler om Powershell Powershell Operationsmasters

Remove Prefix

Remove prefix kan man også, neden stående eksempel fjerner 4 foransatte tegn på gruppen.

Get-ADGroup –filter {name -like "OLD_Gruppe*"} | % {set-adgroup $_.samaccountname –samaccountname ($_.samaccountname).Substring(4);Rename-Adobject $_.DistinguishedName –newname ($_.samaccountname).Substring(4)}

 

Add Prefix, if existing prefix rename, set Prefix on all fields


$prefix="OLD_" 
$groups = Get-Content H:\Powershells\prefixgrp.txt

ForEach ($grp in $groups) {
 If ($grp -like "*OLD_*")
 {
 # Fjern gruppe prefix.
 Get-ADGroup $grp | % {set-adgroup $_.samaccountname –samaccountname ($_.samaccountname).Substring(4);Rename-Adobject $_.DistinguishedName –newname ($_.samaccountname).Substring(4)}
 # Sæt Prefix
 $prefix="OLD2_"
 Get-ADGroup $grp | % {Set-ADGroup $_.samaccountname –samaccountname ($prefix + $_.samaccountname);Rename-Adobject $_.DistinguishedName –newname ($prefix + $_.samaccountname)}
 } 
 else {
 Get-ADGroup $grp | % {Set-ADGroup $_.samaccountname –samaccountname ($prefix + $_.samaccountname);Rename-Adobject $_.DistinguishedName –newname ($prefix + $_.samaccountname)} 
 }
 $grpny = Get-ADGroup ($prefix + $grp) | select -ExpandProperty name
 Write-Host $grp "er nu omdøbt til" $grpny
}

Så sætter jeg bruger information,  -UserPrincipalName, -GivenName, -DisplayName.

Add Prefix on Users


$Users = Get-Content H:\Powershells\prefixUsr.txt
 ForEach ($usr in $Users) {
 Get-ADUser $usr | % { Set-ADUser $_.SamAccountName -UserPrincipalName ($prefix + $_.samaccountname);Set-ADUser $_.SamAccountName -GivenName($prefix + $_.samaccountname);Set-ADUser $_.SamAccountName -DisplayName($prefix + $_.samaccountname); Rename-Adobject $_.DistinguishedName -NewName ($prefix + $_.samaccountname)}
 }
 $usrny = Get-ADUser -filter {name -eq $prefix + $usr} | select -ExpandProperty name
 Write-Host $usr "er nu omdøbt til" $usrny

Når man omdøber brugeren kommer SamAccountName ikke med, feltet understøtter ikke mere end 20 tegn, Jeg vælger at omdøbe navnet, med $User.Replace kommandoen.

Omdøbe SamAccountName

$UsersSam = Get-Content H:\Powershells\prefixUsr.txt
foreach ($user in $UsersSam)
{
$newSamAccoutname = $user.replace("XXXX","OLD_")
Set-ADUser $user -Replace @{samaccountname=$newSamAccoutname}
} 

Support

Skriv en kommentar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *

This site uses Akismet to reduce spam. Learn how your comment data is processed.