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
}
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 173086
Url: https://administrator.de/contentid/173086
Ausgedruckt am: 13.11.2024 um 11:11 Uhr
9 Kommentare
Neuester Kommentar
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
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:
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.
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
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