Nos ha llegado el momento de cruzar la información de RRHH con nuestro AD. Para tener un campo común único usaremos el Employee, con lo que tendremos que actulizar este campo de nuestro AD.
Set-EmployeeID.ps1: conecta con el PDCEmulator del dominio en el que se ejecuta y cambia el valor del atributo EmployeeID, de los usuarios contenidos en el fichero de importación, al que haya en ese mismo fichero. El fichero de importación es un fichero de valores separados por tabulador (el script permite pasarle el parámetro -Delimiter para especificar otro delimitador). Este fichero contiene dos columnas sAMAccountName y EmployeeID. Es necesario ser administrador del dominio, o administrador delegado con derecho a cambiar el atributo EmployeeID, para que el script funcione.
Crea el fichero "Set-EmployeeID.ps1" con el texto:
<#
.Synopsis
Actualiza el EmployeeID de los usuarios según un fichero de valores separados
.DESCRIPTION
El presente script actualiza el atributo EmployeeID de los usuarios que están
en el fichero de valores separados por tabulador (de forma predeterminada, se
se pueden usar otros separadosres). En el fichero hay dos columnas sAMAccountName
y EmployeeID. El script busca dad uno de los usuarios según su sAMAccountName y
actualiza su atributo EmployeeID al valor que indica la columan EmployeeID del
fichero. Esta actualización la hace con el objeto que se encuentra en el PDCEmulator
del dominio al que pertenece el equipo desde el que se lanza el script.
.PARAM ImportFile
Es la ruta y nombre del fichero (pueden usarse rutas absolutas o relativas así
como sólo el nombre si el inductor de Powershell está situado en la carpeta donde
se ubica el fichero). Se trata de un fichero de valores separados por tabulador
o el caracter que se pase como parametro delimiter.
Si se omite, este parámetro tiene el valor Set-EmployeeID.tab con la ruta donde
está ubicado el script (si el script está en c:\Scripts el fichero será
c:\Scripts\Set-EmployeeID.tab).
El fichero contiene dos columnas sAMAccountName (nombre pre Windows 2000 del usuario)
y EmployeeID.
.PARAM Delimiter
Caracter delimitador del fichero de entrada. Si se omite será el tabulador.
.EXAMPLE
PS C:\Scripts> .\Set-EmployeeID.ps1
Se actualiza el atributo EmployeeID en base al fichero de valores separados por
tabulador c:\Scripts\Set-EmployeeID.tab
.EXAMPLE
PS C:\Scripts> .\Set-EmployeeID.ps1 -ImportFile c:\ListadosAD\EmployeeID.csv -Delimiter ","
Se actualiza el atributo EmployeeID en base al fichero de valores separados por comas
c:\ListadosAD\EmployeeID.csv
.NOTES
Requiere el módulo de Active Directory de Powershell
#>
param(
[String] $ImportFile="$(Split-Path -Path $Myinvocation.MyCommand.Path -Parent)\Set-EmployeeID.tab",
[String] $Delimiter = "`t"
)
If((Get-Module ActiveDirectory) -eq $null){Import-Module ActiveDirectory}
$DC = (Get-ADDomain).PDCEmulator
$Users = Import-Csv -Path "$ImportFile" -Delimiter $Delimiter
ForEach($User In $Users)
{
Set-ADUser -Identity $User.sAMAccountName -EmployeeID $User.EmployeeID -Confirm:$false
}
El fichero "EmployeeID.csv" que es donde tendremos el campo usuario y número empleado con el formato:
Con lo que tendremos un resultado como:
GoN Mayo 2015
No hay comentarios:
Publicar un comentario