none
Copia contenido de atributos con Powershell RRS feed

  • Pregunta

  • Hola.

    Tengo que copiar el contenido del atributo physicalDeliveryOfficeName al atributo employeeID en todas las cuentas de usuario de mi AD y luego tengo que borrar el contenido del atributo physicalDeliveryOfficeName

    Habia pensado hacerlo de forma automatizada con un script en powershell pero no tengo mucha experiencia en ello.

    ¿Alguien me puede ayudar a confeccionar el script?

    Muchas gracias anticipadas.

    Saludos.

    Miguel Angel Fortea.

    jueves, 19 de diciembre de 2019 17:55

Respuestas

  • Hola Miguel Angel,

    Este script debería hacer lo que buscas, pero verifícalo ya que no lo puedo probar:

    Clear-Host
    $Error.Clear()
    $SearchBase = "OU=Usuarios,DC=tudominio,DC=es" #La OU donde están los usuarios que quieres cambiar
    $UserList = Get-ADUser -SearchBase $SearchBase -Filter * -Properties physicalDeliveryOfficeName, employeeID | Sort samaccountname #
    
    ForEach ($Item in $UserList)
    {
    	$User = $null;
    	$User = $Item.sAMAccountName
    	$physicalDeliveryOfficeName = $null
    	$physicalDeliveryOfficeName = $Item.physicalDeliveryOfficeName
    	$employeeID = $null
    	$employeeID = $Item.employeeID
    	
    	Write-Verbose "Actualizando $User"
    	Try
    	{
    		If ($physicalDeliveryOfficeName)
    		{
    			Set-ADUser -Identity $User -Replace @{employeeID = "$physicalDeliveryOfficeName"} -Clear physicalDeliveryOfficeName -ErrorAction Continue | Out-Null
    		}
    		Else
    		{
    			Write-Warning "El usuario $User no tiene physicalDeliveryOfficeName"
    		}
    	}
    	Catch
    	{
    		Write-Error "`n$($Error[0].Exception.Message.ToString()). `n$($Error[0].InvocationInfo.PositionMessage)"
    	}
    }
    
    

    Lo mas fácil para probarlo sin afectar a todos los usuarios es que pongas un usuario en una OU de test un único usuario la indiques en la variable $SearchBase o en esta variable pongas directamente al DistinguishedName completo del usuario de pruebas.

    Cualquier duda puedes contactarme por aquí o en el correo interno de la empresa también puedo ayudarte, aunque estaré unos días fuera.

    Un saludo.

    Diego Fernández

    jueves, 26 de diciembre de 2019 11:23

Todas las respuestas