The below script can't work while updating the MAC addresses for existing AD users. If anybody knows kindly resolve these issues.
$ErrorActionPreference = "SilentlyContinue"
function Select-FileDialog
{
param([string]$Title,[string]$Directory,[string]$Filter="CSV Files (.csv)|.csv")
[System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") | Out-Null
$objForm = New-Object System.Windows.Forms.OpenFileDialog
$objForm.InitialDirectory = $Directory
$objForm.Filter = $Filter
$objForm.Title = $Title
$objForm.ShowHelp = $true
$Show = $objForm.ShowDialog()
If ($Show -eq "OK")
{
Return $objForm.FileName
}
Else
{
Exit
}
}
$FileName = Select-FileDialog -Title "Import an CSV file" -Directory "c:\"
$ExchangeUsersOU = "xyz"
$domain = [System.DirectoryServices.ActiveDirectory.Domain]::GetComputerDomain()
$DomainDN = (([System.DirectoryServices.ActiveDirectory.Forest]::GetCurrentForest()).Domains | ? {$_.Name -eq $domain}).GetDirectoryEntry().distinguishedName
$final = "LDAP://$DomainDN"
$DomainPath = [ADSI]"$final"
$cOU = $DomainPath.Create("OrganizationalUnit",$ExchangeUsersOU)
$cOU.SetInfo()
$UserInformation = Import-Csv $FileName
$OUPath = "LDAP://$ExchangeUsersOU,$DomainDN"
$UserPath = [ADSI]"$OUPath"
Write-Host "---------------------------------------------------------------"
Write-Host "xyz"
Write-Host ""
Write-Host "---------------------------------------------------------------"
Foreach ($User in $UserInformation){
$CN = $User.cn
$Given = $User.givenName
$samAccountName = $User.samAccountName
$msNPCallingStationID = $User.msNPCallingStationID
$msNPSavedCallingStationID = $User.msNPSavedCallingStationID
$LABUser = $UserPath.Update("User","CN=$CN")
Write-Host "Update User: $User.samAccountName"
$LABUser.Put("samAccountName",$samAccountName)
$LABUser.Put("cn",$cn)
$LABUser.Put("givenName",$Given)
$LABUser.Put("msNPCallingStationID",$msNPCallingStationID)
$LABUser.Put("msNPSavedCallingStationID",$msNPSavedCallingStationID)
$LABUser.SetInfo()
$Pwrd = $User.Password
$LABUser.psbase.invoke("setPassword",$Pwrd)
$LABUser.psbase.invokeSet("AccountDisabled",$False)
$LABUser.psbase.CommitChanges()
}
Write-Host "Script Completed"