h1e15
Goto Top

Software im Netzwerk über PowerShell Script auslesen

Hallo Leute...
...ich versuche momentan ein PowerShell-Script zu schreiben welches das Netzwerk durchsucht und mir die Rechner in eine CSV schreibt welche eine bestimmte Software installiert haben.
Ich habe ein fertiges Skript gefunden und versuche das gerade auf meine Bedürfnisse umzuschreiben, was mir aber leider nicht so gelingen will.

Das Skript
$Hersteller = "%Microsoft%"  
$Eingabedateiname = "computer.txt"   
$Ausgabedateiname = "Softwareinventar.csv"  

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

# Import der Computernamen
$Computernamen = Get-Content $Eingabedateiname
$Computernamen | select-Online | foreach { 
   Write-Host "Inventarisiere Software für Computer $_ ..."  
   $Software += get-wmiobject win32_product -computername $_ -Filter "vendor like '$Hersteller'"   
   } -end { 
      # Export in CSV
      $Software | export-csv $Ausgabedateiname -notypeinformation
   }

Funktioniert auch soweit.....nur ich möchte eine kleine Änderung
In der Zeile 18 : mit -Filter "vendor like $Hersteller" sucht er ja aus der "Software-Liste" Software die mit einem Hersteller eingetragen wird. Aber bei einigen steht dieser Wert gar nicht da (z.B. beim Firefox welchen ich gerne suchen möchte) Wie kann ich da nur nach dem direkten Namen suchen. name like funktioniert nicht.
Der Rest funktioniert wirklich einwandfrei.

Wäre dankbar für Hilfe ... jemand der sich damit ein wenig besser auskennt, wird das mit Sicherheit mit Leichtigkeit beantworten können.
Über eine Alternative Lösung über eine Freeware die das kann würde ich mich auch freuen. Muss halt Freeware sein und ca 250 rechner auslesen können.

mfg h1e

Content-ID: 173086

Url: https://administrator.de/contentid/173086

Ausgedruckt am: 23.11.2024 um 02:11 Uhr

DerWoWusste
DerWoWusste 14.09.2011 um 12:54:29 Uhr
Goto Top
Moin.

Du könntest psinfo -s benutzen und die Ausgabe mit findstr kürzen. psinfo ist Teil der kostenlosen pstools.
hajowe
hajowe 14.09.2011 um 13:27:49 Uhr
Goto Top
Hallo h1e,

Ändere doch die Filterbedingung und suche nich nach dem Object vendor sondern nach name

Schau dir das mal an
http://technet.microsoft.com/de-de/library/dd347651.aspx

Gruß
Hajowe
h1e15
h1e15 14.09.2011 um 13:31:39 Uhr
Goto Top
die seite hab ich schon durch ;)
also hab grad weiter getestet...
Wenn man vendor durch name tauscht, funktioniert das Script auch wunderbar aber nur mit verschiedenen namen -.-
Also bei Microsoft findet er Office etc.. Bei Adobe den Flash Player + Reader .. wunderbar
sobald ich Firefox oder Mozilla eingeb, findet er nichts, obwohl ich den definitiv bei mir drauf habe und ich meinen Rechner zum testen durchsuche -.-
Versteh momentan noch nich genau warum er das nicht macht.
hajowe
hajowe 14.09.2011 um 15:51:04 Uhr
Goto Top
Denke du hast Recht.
Ich habe auch mal über PS ISE
get-wmiobject win32_product -computername "localhost"
abgerufen und sehe da bei mir auch so einige nicht.

Ich kann derzeit auch nur vermuten das diese Programme ihre Einträge nicht so vornehmen, das sie mit
get-wmobject zum auslesen vorhanden sind.
"""""""""""""""""""""""""""""""""""""""""""""""
Auszug aus Hilfe
Sie haben nun mehrere Möglichkeiten kennengelernt, Anwendungen aufzulisten, die mit Windows Installer installiert werden. Dabei wurde jedoch noch nicht auf andere Anwendungen eingegangen. Da die Standardanwendungen i. d. R. eine Registrierung des Deinstallationsprogramms unter Windows vornehmen, können diese in der Windows-Registrierung gesucht und lokal bearbeitet werden.

Auflisten aller deinstallierbaren Programme
Eine hundertprozentige Sicherheit, alle Anwendungen auf einem System zu finden, besteht nicht. Es ist jedoch möglich, alle Programme zu finden, die im Dialogfeld "Software" aufgeführt sind. In der Systemsteuerungsoption "Software" finden Sie diese Anwendungen unter dem folgenden Registrierungsschlüssel:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall.

Die Anwendungen können auch über diesen Schlüssel gesucht werden. Um das Anzeigen des Uninstall-Schlüssels zu vereinfachen, kann einem Registrierungsspeicherort ein Windows PowerShell-Laufwerk zugeordnet werden:
hajowe
hajowe 14.09.2011 um 16:48:40 Uhr
Goto Top
Du findest die unter Systemsteuerung Software eingetragenen Programe
in dem du mit

damit6 abfragst und dann auswertest
get-childitem -path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

Ausgabe-Auszug :
...
0 11 Mozilla Firefox (3.6.12) {Comments, DisplayIcon, DisplayName, DisplayVersion...}
h1e15
h1e15 15.09.2011 um 08:03:33 Uhr
Goto Top
problem mit childitem ist das man kein filter direkt einbauen kann...naja man kann nachher ja auch die excel tabelle einfach filtern ..
...aber kriegs noch nich hin damit auf anderen computern zu suchen.
DerWoWusste
DerWoWusste 15.09.2011 um 10:37:46 Uhr
Goto Top
Hi und vielen Dank, dass Du meinen Kommentar unkommentiert gelassen hast ;)
Willst Du es unbedingt mit der Powershell machen? psinfo -s läuft zumindest auch remote.
hajowe
hajowe 15.09.2011 um 11:04:02 Uhr
Goto Top
Damit du Remote auf andere Computer mit PowerShell zugreifen kannst sind einige Dinge zu beachten.
Denke dazu mußt du dich auch mit dem Thema

about_Remote_Requirements
(KURZBESCHREIBUNG
Beschreibt die System- und Konfigurationsanforderungen zum
Ausführen von Remotebefehlen in Windows PowerShell.

)

aus der Hilfe auseinander setzen.
laster
laster 16.09.2011, aktualisiert am 18.10.2012 um 18:48:20 Uhr
Goto Top
Hallo DerWoWusste,

ich finde PsInfo auch nicht schlecht (siehe Inventur mit PSInfo), habe aber damit mittlerweile Probleme bei Servern mit Win2k8 und mehr als 4GB RAM. Ausserdem ist PsInfo auf dem RemoteRegistryDienst angewiesen und bleibt manchmal auf Grund von NichtErreichbarkeit-des-RemoteRechners einfach hängen - für BatchTasks ein echtes Problem...
Hardware lässt sich mit systeminfo besser auslesen (bleibt aber noch öfter hängen als PsInfo), Software wird aber damit nicht gelistet.

Ich werd mir mal das Script von h1e anschauen (vielleicht ist es eine Alternative zu PsInfo?).

Gruß
LS