PowerShell Scannen des Netzwerkes nach Hosts

Registriert
Aug. 2012
Beiträge
2
Hallo,

ich soll für meine Firma ein Programm entwickeln, dass eine Hardware und Softwareliste der Computer in einem Netzwerk erstellt. Die Hardware- und Softwareliste sind fertig. Es sieht bisher so aus:

Code:
$Hersteller = "%Microsoft%" 
$Eingabedateiname = "computer.txt"  
$Query = "SELECT * FROM Win32_Product where not Vendor like '%Microsoft%'"

filter select-Online 
{ 
$status = Get-WmiObject Win32_PingStatus -Property StatusCode -filter "Address='$_'"  
if ($status.Statuscode -eq 0) 
{ $_ } 
} 

# Import der Computernamen
$Computernamen = Get-Content "Computerliste.txt" 
$Computernamen | foreach { 
if (Ping($_))
{
 Write-Host "Inventarisiere Software für Computer $_ ..."
 
 # Auslesen der installierten MSI-Pakete auf allen Computern
 $Software += foreach-object { 
 get-wmiobject -query $Query -computername $_ | select Name, 
 Version |export-csv -path .\$svr\Softwareinventarliste.csv -noType
 } 
}
else
{ Write-Error "Computer nicht erreichbar!" }
}


# Check to see if a directory exists for this machine, if not create one
    if (!(Test-Path -path .\$Computernamen)) {
    New-Item .\$Computernamen\ -type directory
    }

# Get the server info
#getwmiinfo $Eingabename zuerst laufen lassen, Fehlermeldung ignorieren, danach getwmiinfo $Computernamen eingeben und $Eingabename aus"rauten"
#    getwmiinfo $Eingabename
    getwmiinfo $Computernamen



function getwmiinfo ($Computernamen) {
# Get ComputerSystem info and write it to a CSV file
    gwmi -query "select * from
        Win32_ComputerSystem" -computername $Computernamen | select Name,
        Model, Manufacturer, DNSHostName,
        Domain, PartOfDomain, NumberOfProcessors,
        SystemType, TotalPhysicalMemory, 
        UserName | export-csv -path .\$svr\ComputerSystem.csv -noType

# Get OperatingSystem info and write it to a CSV file
    gwmi -query "select * from
        Win32_OperatingSystem" -computername $Computernamen | select Name,
        Version, FreePhysicalMemory, ServicePackMajorVersion, 
        ServicePackMinorVersion | export-csv -path .\$svr\OperatingSystem.csv -noType

# Get PhysicalMemory info and write it to a CSV file
    gwmi -query "select * from
       Win32_PhysicalMemory" -computername $Computernamen | select Name,
       Capacity, DeviceLocator, 
       Tag | export-csv -path .\$svr\PhysicalMemory.csv -noType

# Get LogicalDisk info and write it to a CSV file
   gwmi -query "select * from Win32_LogicalDisk
       where DriveType=3" -computername $Computernamen | select Name, FreeSpace,
       Size | export-csv -path .\$svr\LogicalDisk.csv –noType
}

Sooo nun soll ich dafür Sorgen, dass alle Computer in einem Netzwerk abgefragt werden, möglichst automatisch und auch automatisch in einer Tabelle abgespeichert werden. Am besten als "computerliste.txt", damit dann gleich die Softliste und Hardwareliste erstellt wird.

Tja, da ich ein Anfänger bin, habe ich keine Ahnung, wie ich das bewerkstelligen kann... Könnt ihr mir vielleicht hierbei helfen?

Dankeschön, ManLerntNieAus
 
Der Bereich der IP-Adressen ist ja bekannt bzw. kann man den erfragen. Dann kannst du einfach alle IP-Adressen durchprobieren.
 
Für die IP-Adressenerfragung habe ich dieses hier:

$i =1
$Ip = "10.0.0."
$ipsamling = @()
Write-Host "IP Address"
Write-Host "----------------------------------------"
do { $Ip4th = $Ip + $i
$Pingy = get-WmiObject Win32_PingStatus -f "Address='$Ip4th'"
if($Pingy.StatusCode -eq 0) {
"{0,0} {1,5} {2,5}" -f
$Pingy.Address, $Pingy.StatusCode," ON NETWORK"
$ipsamling += $Pingy.Address
}
else
{"{0,0} {1,5} {2,5}" -f $Pingy.Address, $Pingy.StatusCode, " xxxxxxxxx"
}
$i++
}
until ($i -eq 20)

echo "Kontakt til:"
echo $ipsamling

Aber irgendwie will es immer noch nicht so wirklich funktionieren... Das Problem ist, dass ich über die Domäne auf alle zugreifen soll... Jemand ich soll das über AD machen, aber ich wüsste nicht so wirklich wie das Programmieren dafür aussieht. Außerdem, was mache ich, wenn die Domäne nicht mit AD arbeitet...

Danke für die Infos soweit!!!
 
Zurück
Oben