Pulling my hair out with a script to change a user’s manager field via a .csv file
user.csv - example
userid,streetmanager,physicaldeliveryofficename
user1,manager1,address1
physicaldeliveryofficename works but I can not add to the manager field?
Any assistance would be great…
If ((Get-PSSnapin | where {$_.Name -match "Quest.ActiveRoles"}) -eq $null) { Add-PSSnapin Quest.ActiveRoles.ADManagement } # Import CSV file that is populated with user data $now=Get-Date -format “dd-MMM-yyyy HH:mm” # replace : by - $now = $now.ToString().Replace(“:”, “-”) $data = import-csv $args[0] # Loop thru the data from CSV foreach ($i in $data) { $userobject = get-qaduser $i.userid -IncludedProperties “Co”,”C” # get-qaduser -Identity hillsc -IncludedProperties office | Select office #$userobject = get-qaduser $i.userid -IncludeAllProperties #“CO”,”C”,"office","manager" $Title = $userobject.Title $Address = $userobject.StreetAddress $City = $userobject.City $Office = $userobject.physicalDeliveryOfficeName $Zip = $userobject.PostalCode $Streetmanager = $userobject.manager } ###############################################Manager############################################################### if ($manager -like $null) { Write-host $userobject has blank manager Write-host var i $i $Log1 = ".\logs\" + "BlankManager” + $now + “.log” Add-content $Log1 “$userobject has blank manager” Get-QADUser $i.userid | Set-QADUser -ObjectAttributes @{Streetmanager = $i.manager.Trim()} $userobject = get-qaduser $i.userid -IncludedProperties “Co” $manager = $userobject.manager Write-host $userobject has * $manager * as manager $Log3 = ".\logs\" + "SetAddress” + $now + “.log” Add-content $Log3 “For $userobject $manager as manager has been set” } else { $Log2 = ".\logs\" + "Currentmanager” + $now + “.log” Write-host $userobject has $manager as Current manager Add-content $Log2 “$userobject already has $manager as manager” } ###############################################Office############################################################### if ($office -like $null) { Write-host $userobject has blank Office name $Log1 = ".\logs\" + "BlankOfficename” + $now + “.log” Add-content $Log1 “$userobject has blank office” Get-QADUser $i.userid | Set-QADUser -ObjectAttributes @{physicalDeliveryOfficeName = $i.physicalDeliveryOfficeName.Trim()} $userobject = get-qaduser $i.userid -IncludedProperties “office” $office = $userobject.office Write-host $userobject has * $office * as office $Log3 = ".\logs\" + "SetAddress” + $now + “.log” Add-content $Log3 “For $userobject $office as office has been set” } else { $Log2 = ".\logs\" + "Currentoffice” + $now + “.log” Write-host $userobject has $office as Current office Add-content $Log2 “$userobject already has $office as office” }
Code was originally written by Vikas Sukhija and I have just tried to modify it.