es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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
    }
}
Tags:  ,

Answer

  1. Avatar for 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’.

Comments are closed.