Site Overlay

Eseguire il pull degli account di amministratore locale dei dispositivi nel dominio con Powershell

Estrarre
gli account amministratore locale dei dispositivi nel dominio con Powershell Dopo aver configurato il comando seguente in base alla struttura del dominio, salvarlo come .ps1 con l'aiuto del blocco note.

Eseguire l'applicazione PowerShell in modalità amministratore ed eseguire il codice preparato con l'estensione ps1.

<#
. SINOSSI
    .
. DESCRIZIONE
    Questo script troverà gli amministratori locali dei computer client nel tuo
    e li scambierà come file CSV nella directory corrente.

. Percorso PARAMETER
    Questo sarà il DN dell'unità organizzativa o dell'ambito di ricerca. Basta copiare il DN di OU
    in cui si desidera eseguire una query per gli amministratori locali. Se non definito, il tutto
    il dominio sarà considerato come ambito di ricerca.

. PARAMETRO NomeComputer
    Questo parametro definisce l'account computer in cui verrà eseguita la funzione
    corri contro. Se non specificato, tutti i computer saranno considerati come ricerca
    e di conseguenza questa funzione otterrà amministratori locali di tutti 
    elaboratori. È possibile definire più computer utilizzando la virgola (,).

. ESEMPIO
    C:PS> Get-LocalAdminToCsv
    
Questo comando otterrà gli amministratori locali di tutti i computer del dominio.

    C:PS> Get-LocalAdminToCsv -NomeComputer PC1,PC2,PC3

Questo comando otterrà amministratori locali di PC1, PC2 e PC3.

    C:PS> Get-LocalAdminToCsv -Path "OU=Computers,DC=Contoso,DC=com"

. NOTE
    Autore: Mahdi Tehrani
    Data : 18 febbraio 2017   
#>

Import-Module activedirectory
# Clear-Host
funzione Get-LocalAdminToCsv {
    Param(
            $Path=(Get-ADDomain). DistinguishedName,   
            $ComputerName= (Get-ADComputer -Filter * -Server(Get-ADDomain). DNsroot -SearchBase $Path -Proprietà abilitate | Where-Object {$_. Abilitato -eq "True"})
         )

begin{
        [matrice]$Table = $null
        $Counter = 0
         }
    
processo
       {
    $Date = Get-Date -Format MM_dd_yyyy_HH_mm_ss
    $FolderName = "LocalAdminsReport("+ $Date + ")"
    New-Item -Path ".$FolderName" -ItemType Directory -Force | Out-Null

foreach($Computer in $ComputerName)
        {
            Provare
            {
                $PC = $Computer Get-ADComputer
                $Name = $PC.Name
                $CountPC = @($ComputerName).count
            }

Prendere
            {
                Write-Host "Impossibile recuperare $Computer computer" -ForegroundColor Yellow -BackgroundColor Red
                Add-Content -Path ".$FolderNameErrorLog.txt" "$Name"
                continuare
            }

finalmente
            {
                $Counter++
            }

Write-Progress -Activity "Connecting PC $Counter/$CountPC " -Status "Querying ($Name)" -PercentComplete (($Counter/$CountPC) * 100)

Provare
            {
                $row = $null
                $members=[ADSI]"WinNT://$Name/Administrators"
                $members = @($members.psbase.Invoke("Membri"))
                $members | foreach {
                            $User = $_. GetType(). InvokeMember("Name", 'GetProperty', $null, $_, $null)
                                    $row += $User
                                    $row += " ; "
                                    }
                write-host "Computer ($Name) è stato interrogato ed esportato." -ForegroundColor Verde -SfondoColore nero 
                
$obj = New-Object -TypeName PSObject -Property @{
                                "Nome" = $Name
                                "LocalAdmins" = $Row
                                                    }
                $Table += $obj
            }

Prendere
            {
            Write-Host "Errore di accesso ($Name)" -ForegroundColor Yellow -BackgroundColor Red
            Add-Content -Path ".$FolderNameErrorLog.txt" "$Name"
            }

}
        Provare
        {
            $Table | Ordina nome | Selezionare Nome,LocalAdmins | Export-Csv -path ".$FolderNameReport.csv" -Append -NoTypeInformation
        }
        Prendere
        {
            Write-Warning $_
        }
    }

fine{}
   }
    
Get-localAdmintoCSV

image 3
Arif Akyüz Produttore di contenuti Esperto di sicurezza informatica

Arif Akyüz
Produttore di contenuti ed esperto
di sicurezza informatica [email protected]

© 2024 Arif Akyüz. Tüm Hakları Saklıdır. Gizlilik politikası
Yasal Uyarı: Bu sitede yer alan makaleler bilgi amaçlıdır ve hatalar içerebilir. Site sahibi, bu bilgilerin kullanımı sonucunda oluşabilecek zararlardan sorumlu tutulamaz.