Ermitteln Sie nicht verwendete Software auf allen Computern in Ihrem Netzwerk - Wie Man

Ermitteln Sie nicht verwendete Software auf allen Computern in Ihrem Netzwerk

Auf jedem Computer in allen Büros der Welt befindet sich nicht benötigte, unerwünschte oder nicht verwendete Software. Unternehmen können Millionen von Dollar sparen, wenn sie solche Shelfware proaktiv erkennen und deinstallieren.

Mit diesem HOWTO können Sie nicht verwendete Software auf allen Windows-Computern in Ihrem Netzwerk erkennen und deinstallieren.

3 Schritte insgesamt

Schritt 1: Rufen Sie eine Liste installierter Software auf einem Remote-Computer ab

Führen Sie den Powershell-Befehl aus (stellen Sie sicher, dass Sie "RemoteComputerName" durch den Computernamen ersetzen, von dem Sie die Informationen abrufen möchten):
Get-WmiObject -Namespace ROOT CIMV2 -Class Win32_SoftwareFeature -Computer RemoteComputerName

Schritt 2: Ergebnisse sortieren und filtern

Speichern Sie als * .ps1-Datei und führen Sie das Skript aus:
$ result = @ ();
$ soft = @ {};
Get-WmiObject -Namespace ROOT CIMV2 -Class Win32_SoftwareFeature -Computer RemoteComputerName |
Select-Object PSComputerName, ProductName, LastUse -unique |
Sort-Objekt ProductName, LastUse |
Where-Object -FilterScript {$ _. ProductName -wie "Microsoft Visio *"} |
ForEach-Object {$ soft [$ _. ProductName] = $ _. LastUse};
$ soft.Keys |
ForEach-Object {$ dt = [datetime] :: parseexact ($ soft [$ _]. Substring (0,8), "yyyyMMdd", [System.Globalization.CultureInfo] :: InvariantCulture); if ($ dt -lt (Get-Date) .AddDays (-60)) $ line = ""};
$ result |
Sort-Object Computername, ProductName, LastUsed |
Format-Tabelle -autosize;

Schritt 3: Mehrere Computer abfragen

Ersetzen Sie "SCRIPT" unten durch das Skript aus Schritt 2 oben. Vergessen Sie nicht, "RemoteComputerName" durch "$ comp" im Skript zu ersetzen.
Computer aus einer Textdatei abfragen:
$ result = @ ();
Get-Content -Pfad d: computers.txt | ForEach-Objekt {
$ comp = $ _;
SKRIPT;
}
Computer aus AD-Domäne abfragen:
$ result = @ ();
Get-ADComputer -Filter {Betriebssystem wie "Windows 10 *"} | ForEach-Objekt {
$ comp = $ _. Name;
SKRIPT;
}