Skip to content

Instantly share code, notes, and snippets.

@evetsleep
Created April 9, 2018 17:13
Show Gist options
  • Save evetsleep/e871cb2519c70fecce20c203d37703c7 to your computer and use it in GitHub Desktop.
Save evetsleep/e871cb2519c70fecce20c203d37703c7 to your computer and use it in GitHub Desktop.
#requires -Module ActiveDirectory
[CmdletBinding(SupportsShouldProcess)]Param()
$PSDefaultParameterValues = @{'*:ErrorAction'='STOP'}
$dcHash = @{}
try {
Get-ADForest | Select-Object -ExpandProperty Domains | ForEach-Object {
$domain = $psitem
$dc = Get-ADDomainController -Discover -DomainName $domain | Select-Object -ExpandProperty hostname
$dcHash.Add($domain,$dc)
}
}
catch {
Write-Error -Message ('Failed to load domain hash: {0}' -f $psitem.exception.message)
}
try {
foreach ($key in $dcHash.Keys) {
Get-ADUser -Filter {officePhone -like "*"} -Server $dcHash[$key] -Properties name,officePhone | ForEach-Object {
if ($PSCmdlet.ShouldProcess( ('[{0}] User: {1} Phone: {2}' -f $key,$psitem.sAMAccountName,$psitem.officePhone) ) ) {
$psitem | Set-ADUser -OfficePhone "SomeString" -Server $dcHash[$key]
}
}
}
}
catch {
Write-Error -Message ('Failed to update: {0}' -f $psitem.exception.message)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment