PowerShell para editar los números de teléfono de varios usuarios en Active Directory.
Estoy buscando actualizar todos los usuarios en AD tanto los números de teléfono de la pestaña general como el localizador, móvil y fax. Lo que estoy buscando actualizar es cualquier usuario en nuestro AD desde +44 (0) +44 0.
He intentado lo siguiente pero no funcionó pero no puedo ver por qué.
$UserSplat = @{
LDAPFilter = "(|(homephone=)(othermobile=)(mobile=*))"
Properties = @('homephone', 'othermobile', 'mobile')
SearchBase = 'OU=NoAdm,OU=Users,DC=xxxxx,DC=xxxxx,DC=xxxxx,DC=net'
}
Get-ADUser @UserSplat | ForEach-Object {
$CurrentUser = New-Object -TypeName PSCustomObject -Property @{
Name = $_.Name
HomePhone = (-join $_.homephone) -replace '\s'
OtherMobile = (-join $_.othermobile) -replace '\s'
Mobile = (-join $_.mobile) -replace '\s'
}
$CurrentUser
if ($CurrentUser.homephone -notmatch '^\(0)') {
$_ | Set-ADUser -Replace @{homephone = "0$($CurrentUser.HomePhone)"} -WhatIf
}
}
davy.ai
El script parece correcto y debería funcionar siempre y cuando se especifiquen el dominio y la base de búsqueda correcta. Es posible que el problema esté en la expresión regular utilizada en la declaración ‘if’ para igualar el formato del número de teléfono. También es importante tener en cuenta que se está utilizando el parámetro ‘-WhatIf’ con el cmdlet ‘Set-ADUser’, lo que significa que solo simulará los cambios pero no los aplicará realmente. Para aplicar los cambios, se debe eliminar el parámetro ‘-WhatIf’.