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
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
...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
}
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
9 Antworten
- LÖSUNG DerWoWusste schreibt am 14.09.2011 um 12:54:29 Uhr
- LÖSUNG hajowe schreibt am 14.09.2011 um 13:27:49 Uhr
- LÖSUNG h1e15 schreibt am 14.09.2011 um 13:31:39 Uhr
- LÖSUNG hajowe schreibt am 14.09.2011 um 15:51:04 Uhr
- LÖSUNG hajowe schreibt am 14.09.2011 um 16:48:40 Uhr
- LÖSUNG h1e15 schreibt am 15.09.2011 um 08:03:33 Uhr
- LÖSUNG DerWoWusste schreibt am 15.09.2011 um 10:37:46 Uhr
- LÖSUNG laster schreibt am 16.09.2011 um 12:44:35 Uhr
- LÖSUNG hajowe schreibt am 15.09.2011 um 11:04:02 Uhr
- LÖSUNG DerWoWusste schreibt am 15.09.2011 um 10:37:46 Uhr
- LÖSUNG h1e15 schreibt am 15.09.2011 um 08:03:33 Uhr
- LÖSUNG hajowe schreibt am 14.09.2011 um 16:48:40 Uhr
- LÖSUNG hajowe schreibt am 14.09.2011 um 15:51:04 Uhr
- LÖSUNG h1e15 schreibt am 14.09.2011 um 13:31:39 Uhr
LÖSUNG 14.09.2011 um 12:54 Uhr
LÖSUNG 14.09.2011 um 13:27 Uhr
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
Ä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
LÖSUNG 14.09.2011 um 13:31 Uhr
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.
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.
LÖSUNG 14.09.2011 um 15:51 Uhr
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:
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:
LÖSUNG 14.09.2011 um 16:48 Uhr
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...}
....
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...}
....
LÖSUNG 15.09.2011 um 08:03 Uhr
LÖSUNG 15.09.2011 um 10:37 Uhr
LÖSUNG 15.09.2011 um 11:04 Uhr
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.
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.
LÖSUNG 16.09.2011, aktualisiert 18.10.2012
Hallo DerWoWusste,
ich finde PsInfo auch nicht schlecht (siehe https://www.administrator.de/wissen/inventur-mit-psinfo-125713.html), 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
ich finde PsInfo auch nicht schlecht (siehe https://www.administrator.de/wissen/inventur-mit-psinfo-125713.html), 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