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-ID: 6173124152

Url: https://administrator.de/forum/powershell-logon-script-software-inventar-6173124152.html

Ausgedruckt am: 22.12.2024 um 20:12 Uhr

6017814589
6017814589 01.03.2023 aktualisiert um 10:08:46 Uhr
Goto Top
........... | Select-Object -Property DisplayName,DisplayVersion,UninstallString,InstallDate | sort DisplayName | export-csv "\\server\share\$env:COMPUTERNAME.csv" -Delimiter ";" -NoTypeInformation -Encoding UTF8  
Doskias
Doskias 01.03.2023 aktualisiert um 10:09:53 Uhr
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
flexi87
flexi87 01.03.2023 um 11:25:10 Uhr
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.
SlainteMhath
SlainteMhath 01.03.2023 um 11:48:28 Uhr
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
6017814589
Lösung 6017814589 01.03.2023 aktualisiert um 12:44:23 Uhr
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.