Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@raulunzue
Created November 15, 2020 18:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save raulunzue/6736c2c84ff15998d7db5929d91c9696 to your computer and use it in GitHub Desktop.
Save raulunzue/6736c2c84ff15998d7db5929d91c9696 to your computer and use it in GitHub Desktop.
Powershell script para cambiar masivamente descripción grupo de active directory
########################################
## 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"
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment