none
Buscar un grupo del AD y comparar nombre contra fecha RRS feed

  • Pregunta

  • Saludos a todos, espero se encuentren bien.

    Actualmente tengo un script en PowerShell que permite eliminar un grupo del AD, claro tengo que definir el distinguishedName por lo que he tenido que crear varios ps1 según los grupos que se vayan creando.

    La idea que tengo es ver si es posible, que si le pongo a estos grupos el nombre  Grupo_Fecha donde Fecha es el día en que el grupo debe de eliminarse (Formato: dmY), que el Script haga esa comparación entre la fecha del sistema y el nombre del grupo (todos los grupos estarán en la misma OU) y si coinciden se debe de borrar el Grupo del AD.

    La verdad no soy muy diestro en programación, pero con alguna orientación que les agradecería, intentaría realizar esta tarea.

    El script se ejecuta con una tarea programa, para lo que ocupo estaría ejecutándose todos los días

    Este es mi script actual:

    #Elimina el grupo de la ruta indicada

    $rutina = dsrm "CN=Grupo01,OU=Grupo con vencimiento,OU=Grupos de Seguridad,DC=labwin2012,DC=com" -noprompt

    #Crear fichero de control, se guarda en la ubicación indicada.
    $fecha = Get-Date -uFormat "%Y%m%d%H%M"
    $file =  "c:\Scripts_vencimiento\Logs\update_"+ $fecha + ".txt"
    Out-File $file
    $text1 = "El grupo " + $rutina + " ha sido eliminado por vencimiento de fecha."
    Write-Output " "****** $text1 ******" " | Out-File -append $file

    #Elimina la tarea programada para este grupo
    schtasks /Delete /TN "Tarea01" /F

    Muchas gracias

    Jorge Vega


    Jorge

    viernes, 11 de enero de 2019 21:02

Todas las respuestas

  • Hola Jorge,

    Veo que sigues con tus permisos para la wifi :D, a ver si esto te ayuda, no he podido probarlo y hasta el lunes no creo que pueda:

    $GruposCaducidad = get-adgroup -SearchBase "OU=Grupo con vencimiento,OU=Grupos de Seguridad,DC=labwin2012,DC=com" 
    $Fecha = Get-Date -uFormat "%d%m%y"
    foreach ($Grupo in $GruposCaducidad){
    	If ($_.Name -eq "Grupo_$Fecha"){
    		remove-adgroup $_
    	}
    }

    Saludos,


    • Editado rBlacksmith viernes, 11 de enero de 2019 22:09
    viernes, 11 de enero de 2019 22:08
  • Así es, la forma que había realizado me resultó, solo que tendría que hacer un script por cada grupo y luego una tarea. 

    Ya con eso la idea es pulirlo un poco más.

    Te agradezco la ayuda, lo probaré.

    Saludos.


    Jorge

    domingo, 13 de enero de 2019 6:38
  • Perfecto Jorge,

    Si necesitas cualquier cosa nos dices.

    Saludos,

    lunes, 14 de enero de 2019 8:08
  • Saludos, he probado el código y le hice un par de cambios mínimos y me funciona perfectamente, te lo copio:

    $GruposCaducidad = get-adgroup -Filter {Name -like "Grupo_*"} -Searchbase "OU=Grupo con vencimiento,OU=Grupos de Seguridad,DC=labwin2012,DC=com"
    $Fecha = Get-Date -uFormat "%d%m%Y"
    foreach ($Grupo in $GruposCaducidad){
    If ($Grupo.Name -eq "Grupo_$Fecha"){
    Remove-adgroup -Identity $Grupo.Name -Confirm:$false
    }
    }

    Uno de los cambios fue en el formato de la fecha, ya que yo ponía en el grupo la fecha con el año 2019, y con la "y" solo toma el 19 

    y Agregué el Confirm de la eliminación.

    Te agradezco nuevamente el apoyo. Saludos



    Jorge

    lunes, 14 de enero de 2019 17:30