Powershell: Script cambiar descripción grupo Directorio Activo
Hoy entrada rápida, os dejo un script para poder modificar la descripción de un grupo de Directorio Activo.
Imaginaros que habéis creado masivamente grupos de directorio activo con una descripción que es siempre fija, y que sólo se modifica cierto texto. Os habéis dado cuenta, que esos grupos se van a poder usar para otras aplicaciones, y la descripción no define bien su uso, pero ya tenéis cientos…en vez de hacerlo uno a uno, lo haremos vía script de Powershell.
En el ejemplo, lo vamos a hacer con grupos de impresoras. Voy a extraer el dato actual en dos grupos, ya que necesito el nombre del grupo y la descripción. Luego cada línea va a corresponderse entre ellas.
Sería así:
GITHUB: https://gist.github.com/raulunzue/6736c2c84ff15998d7db5929d91c9696
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
######################################## ## RAUL UNZUE - ElBlogdeNegu # Cambio nombre Grupo Directorio Activo ######################################## # Saber el número de línea de un elemento function linea {$input | Select-String '.' | Select-Object LineNumber, Line} # Ruta a la OU donde se generan los grupos por cada impresora $OU_impresoras = "OU=IMPRESORAS,DC=NEGU,DC=LOCAL" # Variable que contiene los nombre de todos los grupos de la OU anterior, que a su vez contienen los nombres de las impresoras ya creadas get-adobject -Filter 'ObjectClass -eq "group"' -SearchBase $OU_impresoras -Properties Name | select Name > C:\Users\elblogdenegu\Desktop\gpimp_name.txt # LIMPIAMOS FICHERO (Get-Content C:\Users\elblogdenegu\Desktop\gpimp_name.txt) | foreach {$_ -replace "Name",""} | foreach {$_ -replace "----",""} | Set-Content C:\Users\elblogdenegu\Desktop\gpimp_name.txt # PASAMOS A VARIABLE $nombre_grupos_impresoras = (Get-Content C:\Users\elblogdenegu\Desktop\gpimp_name.txt) # Variable que contiene las descripciones de todos los grupos de la OU anterior, que a su vez contienen los nombres de las impresoras ya creadas get-adobject -Filter 'ObjectClass -eq "group"' -SearchBase $OU_impresoras -Properties Description | select Description > C:\Users\elblogdenegu\Desktop\gpimp_des.txt # LIMPIAMOS FICHERO (Get-Content C:\Users\elblogdenegu\Desktop\gpimp_des.txt) | foreach {$_ -replace "TEXTO Impresora ",""} | foreach {$_ -replace "Description",""} | foreach {$_ -replace "-----------",""} | Set-Content C:\Users\elblogdenegu\Desktop\gpimp_des.txt # TRATAMOS EL DATO $descripcion_impresoras = (Get-Content C:\Users\elblogdenegu\Desktop\gpimp_des.txt) foreach ($g in $nombre_grupos_impresoras) { $lineagrupo= (Get-Content "C:\Users\elblogdenegu\Desktop\gpimp_name.txt") | sls -Pattern $g | linea $impresora= (Get-Content C:\Users\elblogdenegu\Desktop\gpimp_des.txt -TotalCount $lineagrupo.LineNumber)[-1] Get-ADGroup -SearchBase $OU_impresoras -Filter {name -eq $g} -Properties Name,Description | set-adgroup -description "Impresora $impresora" } |
Espero os parezca interesante…
¿Te ha gustado la entrada SÍGUENOS EN TWITTER?
Te ha gustado la entrada SGUENOS EN TWITTER O INVITANOS A UN CAFE?