flexi87
Goto Top

PowerShell Logon-Script Software Inventar

Hallo Zusammen

ich brauche eure Hilfe. Ich möchte mit PowerShell ein Logon-Script erstellen und so ein Software Inventar von allen PC / Notebooks im Betrieb machen. Das Script möchte ich per GPO laufen lassen. Ich brauche eine Liste in der ich folgendes Filtern kann: PC Name, Software und Version.

Hier habe ein Script gefunden:
wie kann ich dies anpassen das es mir mir die csv Datei in einem Share speichert mit zusätzlich den PC Namen?
//https://www.itnator.net/software-inventarisierung-mit-powershell///
# Alle Sub-Keys auslesen und Fehler ignorieren
Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*',  
                    'HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*',  
                    'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*',  
                    'HKCU:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*' -ErrorAction Ignore |  
# Nur Einträge mit einem "DisplayName" verarbeiten 
Where-Object DisplayName |
# Nur "interessante" Eigenschaften ausgeben 
Select-Object -Property DisplayName, DisplayVersion, UninstallString, InstallDate |
# Nach Namen sortieren
Sort-Object -Property DisplayName

Danke im Voraus

Content-Key: 6173124152

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

Printed on: April 28, 2024 at 08:04 o'clock

Mitglied: 6017814589
6017814589 Mar 01, 2023 updated at 09:08:46 (UTC)
Goto Top
........... | Select-Object -Property DisplayName,DisplayVersion,UninstallString,InstallDate | sort DisplayName | export-csv "\\server\share\$env:COMPUTERNAME.csv" -Delimiter ";" -NoTypeInformation -Encoding UTF8  
Member: Doskias
Doskias Mar 01, 2023 updated at 09:09:53 (UTC)
Goto Top
Moin,

also vielleicht solltest du das Skript erstmal so schreiben/posten, dass es funktionier (inkl. Code-Tags). Ansonsten wird das nur ein wilde Raterei.

Wenn dein Skript läuft, dann brauchst du nur noch export-csv hinten an-pipen und den Rechnernamen mittels $env:COMPUTERNAME in den Dateinamen stecken.

Fertig.

Gruß
Doskias

Nachtrag: Also genau so wie Hagelschaden es schreibt, nur ohne Lerneffekt face-wink
Member: flexi87
flexi87 Mar 01, 2023 at 10:25:10 (UTC)
Goto Top
super besten Dank. Ich möchte jedoch nur eine Datei erstellen lassen und nicht per Client / User.
Wie kann ich dies machen?
Ich möchte danach z.B. Filter können wo die einte Software überall installiert ist.
Member: SlainteMhath
SlainteMhath Mar 01, 2023 at 10:48:28 (UTC)
Goto Top
Moin,

Ich möchte jedoch nur eine Datei erstellen lassen
Das würde ich nicht machen, da sich die Clients dann ggfs gegenseitig die Datei sperren oder wenns blöd läuft überschreiben.

Bastel dir einfach noch ein "Sammel"-ps1 die dir die vorhandenen Files in eine große zusammen fast.

lg,
Slainte
Mitglied: 6017814589
Solution 6017814589 Mar 01, 2023 updated at 11:44:23 (UTC)
Goto Top
Zitat von @SlainteMhath:
Ich möchte jedoch nur eine Datei erstellen lassen
Das würde ich nicht machen, da sich die Clients dann ggfs gegenseitig die Datei sperren oder wenns blöd läuft überschreiben.
Dito. Wegen Race-Condition, gibt das Chaos.

Nur als Referenz hier noch angefügt wie man sowas machen kann
........... | Select-Object -Property @{n='Computername';e={$env:Computername}},DisplayName,DisplayVersion,UninstallString,InstallDate | sort Computername,DisplayName | export-csv "\\server\share\apps.csv" -Delimiter ";" -NoTypeInformation -Encoding UTF8 -Append  
Aber wie gesagt unzuverlässig ohne zusätzliche vorherige Prüfung auf Sperrung.