Site Overlay

Abrufen lokaler Administratorkonten von Geräten in der Domäne mit Powershell

Ziehen Sie die lokalen Administratorkonten der Geräte in der Domäne mit Powershell Nachdem Sie
den folgenden Befehl entsprechend Ihrer Domänenstruktur konfiguriert haben, speichern Sie ihn mit Hilfe von Editor

als .ps1. Führen Sie die PowerShell-Anwendung im Administratormodus aus, und führen Sie den Code aus, den wir mit der Erweiterung .ps1 vorbereitet haben.

<#
. ZUSAMMENFASSUNG
    .
. BESCHREIBUNG
    Dieses Skript findet lokale Administratoren von Clientcomputern in Ihrem
    domain und wird sie als CSV-Datei im aktuellen Verzeichnis identisch sein.

. PARAMETER-Pfad
    Dies ist der DN der Organisationseinheit oder des Suchbereichs. Kopieren Sie einfach den DN der Organisationseinheit
    in dem Sie nach lokalen Administratoren fragen möchten. Wenn nicht definiert, ist das Ganze
    Domain wird als Suchbereich betrachtet.

. PARAMETER ComputerName
    Dieser Parameter definiert das Computerkonto, in dem die Funktion
    erneut laufen. Wenn nicht angegeben, werden alle Computer als Suche betrachtet.
    Umfang und folglich erhält diese Funktion lokale Administratoren aller 
    Computer. Sie können mehrere Computer definieren, indem Sie ein Komma (,) verwenden.

. BEISPIEL
    C:PS> Get-LocalAdminToCsv
    
Mit diesem Befehl werden lokale Administratoren aller Computer in der Domäne abgerufen.

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

Dieser Befehl ruft lokale Administratoren von PC1, PC2 und PC3 ab.

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

. NOTIZEN
    Autor: Mahdi Tehrani
    Datum : 18. Februar 2017   
#>

Import-Modul activedirectory
# Clear-Host
function Get-LocalAdminToCsv {
    Parameter(
            $Path=(Get-ADDomain). DistinguishedName,   
            $ComputerName= (Get-ADComputer -filter * -server(Get-ADDomain). DNsroot -SearchBase $Path -properties aktiviert | Where-Object {$_. Aktiviert -eq "True"})
         )

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

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

Fangen
            {
                Write-Host "Computer $Computer kann nicht abgerufen werden" -ForegroundColor Gelb -BackgroundColor Red
                Add-Content -Pfad ".$FolderNameErrorLog.txt" "$Name"
                fortsetzen
            }

endlich
            {
                $Counter++
            }

Schreibfortschritt -Aktivität "Connecting PC $Counter/$CountPC " -Status "Abfragen ($Name)" -ProzentComplete (($Counter/$CountPC) * 100)

Versuchen
            {
                $row = $null
                $members=[ADSI]"WinNT://$Name/Administratoren"
                $members = @($members.psbase.Invoke("Mitglieder"))
                $members | foreach {
                            $User = $_. GetType(). InvokeMember("Name", 'GetProperty', $null, $_, $null)
                                    $row += $User
                                    $row += " ; "
                                    }
                write-host "Computer ($Name) wurde abgefragt und exportiert." -ForegroundColor Grün -HintergrundFarbe schwarz 
                
$obj = New-Object -TypeName PSObject -Eigenschaft @{
                                "Name" = $Name
                                "LocalAdmins" = $Row
                                                    }
                $Table += $obj
            }

Fangen
            {
            Write-Host "Fehler beim Zugriff ($Name)" -ForegroundColor Yellow -BackgroundColor Red
            Add-Content -Pfad ".$FolderNameErrorLog.txt" "$Name"
            }

}
        Versuchen
        {
            $Table | Sortiername | Wählen Sie Name,LocalAdmins | Export-CSV -Pfad ".$FolderNameReport.csv" -Append -NoTypeInformation
        }
        Fangen
        {
            Schreibwarnung $_
        }
    }

end{}
   }
    
Get-localAdmintoCSV

image 3
Arif Akyüz Content Producer Cyber Security Experte

Arif Akyüz
Content Producer & Cyber Security Expert
[email protected]