Library

Course: Administra Active Directory con Powershell com un PRO

Administra Active Directory con Powershell com un PRO

  • Life Time Access
  • Certificate on Completion
  • Access on Android and iOS App
  • Self-Paced
About this Course

Conviértete en un administrador de Active Directory con este fantástico curso que proporciona a los estudiantes los conocimientos y habilidades fundamentales para usar Windows PowerShell para administrar y automatizar la administración de los servicios del Directorio Activo.

Este curso está dirigido a profesionales de TI que ya tienen o no, experiencia en la administración general de Windows Server y Windows Client, y que desean aprender más sobre el uso de Windows PowerShell para la administración. No se asume ninguna experiencia previa con ninguna versión de Windows PowerShell ni con ningún lenguaje de scripting.

Basic knowledge
  • Solo necesitas ilusión, ganas de aprender y practiar :) y si has usado Active Directory.... mejor que mejor
What you will learn
  • Este curso proporciona a los estudiantes las habilidades para identificar y construir el comando que requieren para realizar una tarea específica. Además, los estudiantes aprenden cómo crear scripts para realizar tareas avanzadas, como automatizar tareas repetitivas
  • Podrás adquirir todos los conocimientos necesarios en este curso, por lo que es el idóneo para técnicos de sistemas de cualquier nivel
Curriculum
Number of Lectures: 28
Total Duration: 02:42:29
Presentación del curso :)
  • Presentación del curso  
Yo, el profesor
  • Éste soy yo, syo mismo :)  
Introducción
  • Introducción  
Preparación del laboratorio
  • (opcional) Instalación de los Roles AD DS y DNS vía GUI :(  
  • Instalación de los Roles AD DS y DNS vía Powershell :)  
  • Script  

    #Listar los roles y características del servidor

    Get-WindowsFeature

    #Instalar el rol de DNS y AD DS

    Install-WindowsFeature ad-domain-services, dns


    #Instalar las herramientas de administración

    Install-WindowsFeature RSAT-Role-Tools, RSAT-ADDS


    #Promocionar el server a DC e instalar el dominio

    Import-Module ADDSDeployment

    Install-ADDSForest `

    -CreateDnsDelegation:$false `

    -DatabasePath "C:\Windows\NTDS" `

    -DomainMode "WinThreshold" `

    -DomainName "nosolohacking.info" `

    -DomainNetbiosName "NOSOLOHACKING" `

    -ForestMode "WinThreshold" `

    -InstallDns:$true `

    -LogPath "C:\Windows\NTDS" `

    -NoRebootOnCompletion:$false `

    -SysvolPath "C:\Windows\SYSVOL" `

    -Force:$true

Entendiendo Powershell
  • Sintaxis de Powershell  
Conociendo por primera vez Powershell
  • Introducción a Powershell  
  • Introducción a Powershell ISE  
Jugando con Powershell. Administración de AD
  • Crear, borrar, listar usuarios de AD en Powershell  
  • Script Gestión Usuarios  

    #Comandos a aprender

    #New-ADUser = Crear usuarios

    #Remove-ADUser = Borrar usuarios

    #Get-ADUser = Listar/verificar usuario

    #Set-ADUser = Modificar usuario


    #Crear un usuario

    New-ADUser Sole


    #Borrar un usuario

    Remove-ADUser Sole


    #Crear un usuario con propiedades

    New-ADUser -Name Sole -City Madrid -Company NoSoloHacking -Department Marketing -Description "Buena Gente" -DisplayName "Sole García" -EmailAddress sole@nosolohacking.info -Manager Carlos -Office "Edificio 1" -OfficePhone "+34 916524578" -Organization NoSoloHacking


    #Mostrar un usuario

    Get-ADUser -Identity sole


    #Mostrar un usuario con todas alguna de propiedades

    Get-ADUser -Identity sole -Properties description, city, department


    #Mostrar un usuario con todas sus propiedades

    Get-ADUser -Identity sole -Properties *


    #Crear un usuario con propiedades y contrasena #ERROR

    New-ADUser -Name Sole -AccountPassword 123456Aa -City Madrid -Company NoSoloHacking -Department Marketing -Description "Buena Gente" -DisplayName "Sole García" -EmailAddress sole@nosolohacking.info -Manager Carlos -Office "Edificio 1" -OfficePhone "+34 916524578" -Organization NoSoloHacking


    #Crear usuario sin best practices

    Remove-ADUser sole

    New-ADUser sole -AccountPassword $(convertto-securestring "123456Aa" -AsPlainText -force)

    Get-ADUser Sole

    get-history


    #Crear usuario con best practices


    #Crear una variable para el usuario Password

    $password = Read-host "Escribe una contrasena" -AsSecureString


    #crear usuario con la nueva password de $password

    Remove-ADUser -Identity sole

    Get-ADUser sole

    New-ADUser -Name Sole -City Madrid -Company NoSoloHacking -Department Marketing -Description "Buena Gente" -DisplayName "Sole García" -EmailAddress sole@nosolohacking.info -Manager Carlos -Office "Edificio 1" -OfficePhone "+34 916524578" -Organization NoSoloHacking -AccountPassword $password

    Get-ADUser sole

    Enable-ADAccount -Identity sole


    #Modificar un usuario

    Set-ADUser -Identity sole -Description "Smart"

    Set-ADUser -Identity sole -Description "Smart" -city "London"


  • Crear, borrar, listar usuarios de AD en Powershell en BULK  
  • Scritp Usuarios en Bulk  
  • Crear, Borrar y editar PCs en Bulk  
  • Script Crear, Borrar y editar PCs en Bulk  
  • Crear, Borrar y editar grupos en Bulk  
  • Script Crear, Borrar y editar grupos en Bulk  

    #Admnistración de grupos en AD.

    #Comandos a practicar


    #New-ADGroup = Crear un grupo

    #Remove-ADGroup = Borrar un grupo

    #Add-ADGroupMember = Anadir miembros a un grupo

    #remove-ADGroupMember = eliminar miembros de un grupo

    #Get-ADGroupMember = listar miembros de un grupo


    #Crear un grupo nuevo en el container por defecto (Users)


    get-help New-ADGroup

    New-ADGroup "Genios" -GroupCategory Security -GroupScope Global


    #Crear un grupo nuevo en el container específico

    New-ADGroup "Genios" -GroupCategory Security -GroupScope Global -Description "los mejores" -Path "OU=Empleados,DC=nosolohacking,DC=info"

    New-ADGroup "torpes" -GroupCategory Security -GroupScope Global -Description "los lentos" -Path "OU=Empleados,DC=nosolohacking,DC=info"


    #Borrar grupo

    Remove-ADGroup -Identity "torpes" -WhatIf

    Remove-ADGroup -Identity "torpes"


    #Anadir un miembro al grupo

    Add-ADGroupMember -Identity "Genios" -Members (Get-ADUser carlos) -WhatIf

    Add-ADGroupMember -Identity "Genios" -Members (Get-ADUser carlos)


    #Borrar un miembro al grupo

    remove-ADGroupMember -Identity "Genios" -Members (Get-ADUser carlos) -WhatIf

    remove-ADGroupMember -Identity "Genios" -Members (Get-ADUser carlos) -Confirm:$false


    #Anadir en bulk usuarios a un grupo en base a un atributo

    Add-ADGroupMember -Identity "Genios" -members ( Get-ADUser -Filter 'office -eq "Edificio1"')


    #Borrar en bulk usuarios de un grupo en base a un atributo

    remove-ADGroupMember -Identity "Genios" -members ( Get-ADUser -Filter 'office -eq "Edificio1"') -Confirm:$false


    #Listar los miembros de un grupo de usuarios

    Get-ADGroupMember "genios"

    Get-ADGroupMember "genios" | Out-GridView

    Get-ADGroupMember "genios" | Format-Table name,samaccountname,objectclass


Mantenimiento de AD con Powershell
  • Tareas de mantenimiento de AD con Powershell  
  • Script mantenimiento de AD  
Centro Administración de Active Directory (ADAC)
  • Centro Administración de Active Directory (ADAC)  
Papelera de reciclaje en AD con Powershell
  • Vida Extra - Papelera de reciclaje  
  • Script Papelera de reciclaje  

    #Instalación de la papelera de reciclaje

    #Requisitos


      #Nivel funcional del bósque 2008R2 o superior

      #Usuario miembro de administradores del dominio y de esquema


    #Comprobar si el usuario pertenece a los grupos

    Get-ADUser -Identity carlos -Properties memberof


    #Comprobar Requisitos y si tenemos la papelera de reciclaje activada

    Get-ADOptionalFeature -Filter 'name -like "Recycle Bin Feature"'


    #Comprobar nuestro nivel funcional

    Get-ADForest


    #Cambiar el nivel funcional de nuestro Bósque (Requisito mínimo Windows Server 2008R2 o superior)

    get-help set-adforestmode


    #Obtener el DC que tienes el rol de master y es capaz de borrar o incorporar DCs a nuestro dominio. FSMO

    (Get-ADForest).domainnamingmaster

    #Obtener el root del dominio

    (Get-ADForest).rootdomain


    #Instalar la caracterísitca de la papelera de reciclaje

    Enable-ADOptionalFeature -Identity 'Recycle Bin Feature' -Scope ForestOrConfigurationSet -Target (Get-ADForest).rootdomain -Server (Get-ADForest).domainnamingmaster -confirm:$false


    #Comprobar si se ha instalado la papelera

    Get-ADOptionalFeature -Filter *

  • Listar y restaurar usuarios y equipos borrados con Powershell  
  • Script Jugando con la papelera de reciclaje  

    #Trabajar con la papelera de reciclaje



    #Listar usuarios borrados

    get-adobject -filter 'objectclass -eq "user" -AND IsDeleted -eq $True' -IncludeDeletedObjects -properties IsDeleted,LastKnownParent | Format-List Name,IsDeleted,LastKnownParent,DistinguishedName


    #Listar equipos borrados

    get-adobject -filter 'objectclass -eq "computer" -AND IsDeleted -eq $True' -IncludeDeletedObjects -properties IsDeleted,LastKnownParent | Format-List Name,IsDeleted,LastKnownParent,DistinguishedName


    #Recuperar todos los usuarios borrados en la OU en la que estaban

    get-adobject -filter 'objectclass -eq "user" -AND IsDeleted -eq $True' -IncludeDeletedObjects -properties IsDeleted,LastKnownParent | Restore-ADObject -WhatIf

    #Recuperar todos los equipos borrados en la OU en la que estaban

    get-adobject -filter 'objectclass -eq "computer" -AND IsDeleted -eq $True' -IncludeDeletedObjects -properties IsDeleted,LastKnownParent | Restore-ADObject


    #Recuperar un objeto en otra OU

    get-adobject -filter 'name -like "Sole*"' -IncludeDeletedObjects | Restore-ADObject –TargetPath "OU=Empleados,DC=nosolohacking,DC=info" -passthru

Scripts avanzados de admiinistración
  • Usuarios inactivos en AD  

    #Script para encontrar todos los usuarios inactivos en base a 4 criterios para elegir 1, dos acciones disponibles a elegir 1 y generación de un reporte.

    Import-Module ActiveDirectory


    # Selecciona los días de inactividad

    $DaysInactive = 90

    $InactiveDate = (Get-Date).Adddays(-($DaysInactive))

     

    #-------------------------------

    # Encontrar Usuarios inactivos

    #-------------------------------

    # A continuación 4 acciones para buscar usuarios inactivos. Selecciona la que sea más apropiada para ti o modfícala si lo necesitas.


    # Obtén los usuarios que no se han logueado en los últimos XXXX días

    $Users = Get-ADUser -Filter { LastLogonDate -lt $InactiveDate -and Enabled -eq $true } -Properties LastLogonDate | Select-Object @{ Name="Username"; Expression={$_.SamAccountName} }, Name, LastLogonDate, DistinguishedName


    # Obtén los usuarios que no se han logueado en los últimos XXXX días y no son cuentas de servicios

    $Users = Get-ADUser -Filter { LastLogonDate -lt $InactiveDate -and Enabled -eq $true -and SamAccountName -notlike "*svc*" } -Properties LastLogonDate | Select-Object @{ Name="Username"; Expression={$_.SamAccountName} }, Name, LastLogonDate, DistinguishedName


    # Obtén los usuarios que no se han logueado nunca

    $Users = Get-ADUser -Filter { LastLogonDate -notlike "*" -and Enabled -eq $true } -Properties LastLogonDate | Select-Object @{ Name="Username"; Expression={$_.SamAccountName} }, Name, LastLogonDate, DistinguishedName


    # Automatizado incluyendo los que no se hanlogueado

    $Users = Search-ADAccount -AccountInactive -DateTime $InactiveDate -UsersOnly | Select-Object @{ Name="Username"; Expression={$_.SamAccountName} }, Name, LastLogonDate, DistinguishedName


    #-------------------------------

    # Creación de reporte

    #-------------------------------

    # Exportarlo a CSV (Debéis tener creado el directorio c:\TEMP)

    $Users | Export-Csv C:\Temp\InactiveUsers.csv -NoTypeInformation


    #-------------------------------

    # Administración de usuarios inactivos

    #-------------------------------

    # A continuación 2 acciones para buscar usuarios inactivos. Selecciona la que sea más apropiada para ti o modfícala si lo necesitas.


    # Deshabilitar los usuarios inactivos

    ForEach ($Item in $Users){

     $DistName = $Item.DistinguishedName

     Disable-ADAccount -Identity $DistName

     Get-ADUser -Filter { DistinguishedName -eq $DistName } | Select-Object @{ Name="Username"; Expression={$_.SamAccountName} }, Name, Enabled

    }


    # Borrado de usuarios inactivos

    ForEach ($Item in $Users){

     Remove-ADUser -Identity $Item.DistinguishedName -Confirm:$false

     Write-Output "$($Item.Username) - Deleted"

    }

  • PCs Inactivos  

    #Script para encontrar todos los PCv inactivos en base a 3 criterios para elegir 1, dos acciones disponibles a elegir 1 y generación de un reporte.


    Import-Module ActiveDirectory



    # Selecciona los días de inactividad


    $DaysInactive = 90


    $InactiveDate = (Get-Date).Adddays(-($DaysInactive))



    #-------------------------------


    # Encontrar objetos de tipo PCs inactivos


    #-A continuación 3 acciones para buscar PCs inactivos. Selecciona la que sea más apropiada para ti o modfícala si lo necesitas.



    # Obtén los PCs que no se han logueado en los últimos XXXX días


    $Computers = Get-ADComputer -Filter { LastLogonDate -lt $InactiveDate -and Enabled -eq $true } -Properties LastLogonDate | Select-Object Name, LastLogonDate, DistinguishedName



    # Obtén los PCs que no se han logueado nunca


    $Computers = Get-ADComputer -Filter { LastLogonDate -notlike "*" -and Enabled -eq $true } -Properties LastLogonDate | Select-Object Name, LastLogonDate, DistinguishedName



    # Automatizado incluyendo los que no se hanlogueado


    $Computers = Search-ADAccount -AccountInactive -DateTime $InactiveDate -ComputersOnly | Select-Object Name, LastLogonDate, Enabled, DistinguishedName



    #-------------------------------


    # Creación de reporte


    #-------------------------------


    # Exportarlo a CSV (Debéis tener creado el directorio c:\TEMP)


    $Computers | Export-Csv C:\Temp\InactiveComputers.csv -NoTypeInformation



    #-------------------------------


    # Administración de usuarios inactivos


    #-------------------------------


    # A continuación 2 acciones para buscar usuarios inactivos. Selecciona la que sea más apropiada para ti o modfícala si lo necesitas.



    # Deshabilitar los PCs inactivos


    ForEach ($Item in $Computers){


     $DistName = $Item.DistinguishedName


     Set-ADComputer -Identity $DistName -Enabled $false


     Get-ADComputer -Filter { DistinguishedName -eq $DistName } | Select-Object Name, Enabled


    }



    # Borrado de PCs inactivos


    ForEach ($Item in $Computers){


     Remove-ADComputer -Identity $Item.DistinguishedName -Confirm:$false


     Write-Output "$($Item.Name) - Deleted"


    }

  • Grupos Vacíos  

    #Script para encontrar todos los grupos vacíos, borrado y generación de un reporte.


    Import-Module ActiveDirectory



    #Especifica abajo la OU sobre la que quieras hacer la búsqueda o el nivel


    #Ejemplo de Searchbase


    $searchbase = "OU=empleados,DC=nosolohacking,DC=info"



    #-------------------------------


    # Encontrar grupos vacíos


    #-------------------------------



    # Encontrar grupos vacíos en una OU específica


    $Groups = Get-ADGroup -Filter { Members -notlike "*" } -SearchBase $searchbase | Select-Object Name, GroupCategory, DistinguishedName



    #-------------------------------


    # Creación de reporte


    #-------------------------------



    # Exportarlo a CSV (Debéis tener creado el directorio c:\TEMP)


    $Groups | Export-Csv C:\Temp\InactiveGroups.csv -NoTypeInformation



    #-------------------------------


    # Administración de grupos inactivos


    #-------------------------------



    # Borrado de grupos inactivos


    ForEach ($Item in $Groups){


     Remove-ADGroup -Identity $Item.DistinguishedName -Confirm:$false


     Write-Output "$($Item.Name) - Deleted"


    }

  • OUs vacías en AD  

    #Script para encontrar todos lasOUs vacías, borrado y generación de un reporte.


    Import-Module ActiveDirectory



    #-------------------------------


    # Encontrar OUs vacías


    #-------------------------------



    # Encontrar OUs vacías


    $OUs = Get-ADOrganizationalUnit -Filter * | ForEach-Object { If ( !( Get-ADObject -Filter * -SearchBase $_ -SearchScope OneLevel) ) { $_ } } | Select-Object Name, DistinguishedName



    #-------------------------------


    # Creación de reporte


    #-------------------------------



    # Exportarlo a CSV (Debéis tener creado el directorio c:\TEMP)


    $OUs | Export-Csv C:\Temp\InactiveOUs.csv -NoTypeInformation



    #-------------------------------


    # Administración de OUs vacías


    #-------------------------------



    # Borrado de OUs vacías


    ForEach ($Item in $OUs){


     Remove-ADOrganizationalUnit -Identity $Item.DistinguishedName -Confirm:$false


     Write-Output "$($Item.Name) - Deleted"


    }


Reviews (0)