Hallo liebe ITler,
ich habe hier schon einmal einen Post gemacht zum IP's sammeln, habe auch was gefunden und versucht in meine Hard- und Softwareliste einzubauen. Leider hat es nicht wirklich funktioniert. Außerdem habe ich bei meiner Hard- und Softwareliste einen seltsamen Fehler drinnen, wenn ich es einmal durchlaufen lassen.
Bin Anfänger und habe nicht wirklich das KnowHow...
Hier ist der 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 IP's vom Netzwerk
$i =1
$Ip = "192.168.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 255)
echo "Kontakt til:"
echo $ipsamling
# Abpeichern der IP'S in eine Liste
#get-WmiObject -query $Query -ipsamling $_ | select Ip | export-csv -path .\$svr\Computerversuch.csv –noType
# Import der Computernamen
$Computernamen = Get-Content \.$ipsammling
$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
}
Bei diesem Teil in der Softwareliste kommt beim ersten Durchlauf immer ein Fehler:
# Get the server info
#getwmiinfo $Eingabename zuerst laufen lassen, Fehlermeldung ignorieren, danach getwmiinfo $Computernamen eingeben und $Eingabename aus"rauten"
# getwmiinfo $Eingabename
getwmiinfo $Computernamen
Ich würde mich sehr über Hilfe freuen!
Danke schonmal und einen schönen Freitag