Windows Defender Update Platform (KB4052623) Dateien per Powershell umbenennen. Wer kann helfen? [gelöst]

Deine Frage passt nicht in die anderen Bereiche, dann stelle sie hier.
Antworten
Benutzeravatar
Holgi
Senior
Senior
Beiträge: 453
Registriert: 12.05.2018, 12:33
Geschlecht:

Windows Defender Update Platform (KB4052623) Dateien per Powershell umbenennen. Wer kann helfen? [gelöst]

Beitrag von Holgi » 17.05.2021, 19:43

MS bietet die Updateplatform Dateien (Update für Microsoft Defender Antivirus-Antischadsoftwareplattform) im Microsoft Update Catalog hier an:
https://www.catalog.update.microsoft.co ... =kb4052623
Anders als mit dem alten InternetExplorer (IEXPLORE.exe) bekommt man 3 Dateien zum Download und zwar für die Plattformen X86, AMD64 und ARM64, deren Prozessorarchitektur leider nur aus den Dateieigenschaften hervorgeht.
Ich benötige Hilfe bei einem Powershell Script, welches die Dateieigenschaften der 3 heruntergeladenen Dateien ausliest und dann mit den gewonnenen Informationen die Dateien umbenennt.
Beispiel:
vorher:
updateplatform_e46f4a0fc97a79791f899a7d6cdfa8a88233e359.exe
updateplatform_a1b3a76664f280151fbbf494ad960ca04b2afa00.exe
updateplatform_10e2d27f21c824798c459c9e42bd7499d2cea082.exe
nachher:
AntiMalware Platform Update (amd64fre).exe
AntiMalware Platform Update (x86fre).exe
AntiMalware Platform Update (arm64fre).exe
Im Netz habe ich schon zwei Powershell-Scripte gefunden, die müssen aber noch kombiniert werden.
Das erste (von mir schon leicht abgeändert) liest die Dateiinformationen der 3 Updateplatform-EXE Dateien aus (PS-Script und Dateien im gleichen Ordner!):

Code: Alles auswählen

cls

# Change to current directory
cd $PSScriptRoot
# Display all executable files along with their file description
get-childitem * -include *.exe | foreach-object {
    "{0}, {1}" -f $_.Name,
    [System.Diagnostics.FileVersionInfo]::GetVersionInfo($_).FileDescription }
pause
Das funktioniert soweit.

Jetzt sollen die Dateien aber auch noch entsprechend umbenannt werden.
Da habe ich im Netz etwas gefunden, wo ein User seine MP3 Dateien mit umbenennt:

Code: Alles auswählen

$Path = Get-ChildItem -path "C:\Music" -recurse | Where-Object {$_.Extension -eq ".mp3"}
ForEach ($file in $Path) {
$filenew = "SomeText" + $file.name 
Rename-Item "$file" "$filenew"}
Wie kann man das so abändern, dass die Informationen aus dem ersten Script auch gleich mit ähnlichen Befehlen aus dem zweiten Script einfließen? Also alles mit einem Script?

Tante Google

Windows Defender Update Platform (KB4052623) Dateien per Powershell umbenennen. Wer kann helfen? [gelöst]

Beitrag von Tante Google » 17.05.2021, 19:43


Benutzeravatar
Ben
★ Team Blog ★
Beiträge: 846
Registriert: 28.12.2017, 15:19
Geschlecht:

Re: Windows Defender Update Platform (KB4052623) Dateien per Powershell umbenennen. Wer kann helfen?

Beitrag von Ben » 17.05.2021, 20:53

Hallo Holgi
Mit dieser Abwandlung lassen sich die Dateien umbenennen.

Code: Alles auswählen

cls

# Change to current directory
cd $PSScriptRoot
# Display all executable files along with their file description
get-childitem * -include *.exe | foreach-object {Rename-Item ($_.Name) ([System.Diagnostics.FileVersionInfo]::GetVersionInfo($_).FileDescription + ".exe")}
pause
Hawadere! :salute: :saufen: :duckundweg: Danke im voraus! Vergesse es nämlich immer wieder mich zu bedanken. :hihi:
Bild

Benutzeravatar
DK2000
Legende
Legende
Beiträge: 5845
Registriert: 03.04.2018, 00:07
Geschlecht:

Re: Windows Defender Update Platform (KB4052623) Dateien per Powershell umbenennen. Wer kann helfen?

Beitrag von DK2000 » 17.05.2021, 21:34

Oder so:

Code: Alles auswählen

cd $PSScriptRoot

$Files = Get-Childitem * -Include updateplatform*.exe|% {$_.VersionInfo}
ForEach ($File in $Files)
{
   Rename-Item ($File.FileName) -NewName ($File.FileDescription+".exe")    
}
Über "System.Diagnostics.FileVersionInfo" braucht man nicht zu gehen, da Get-Childitem die Info bereits liefert. Man muss sie nur so in eine Variable übertragen, dass man damit arbeiten kann.

Könnte man wohl auch als Einzeiler zusammenfassen, aber habe es da lieber etwas übersichtlicher.

Code: Alles auswählen

Rename-Item ($File.FileName) -NewName (($File.FileDescription).Replace("AntiMalware Platform Update ",("AMPU-"+$File.ProductVersion+"-"))+".exe")   
Macht dann als Dateiname "AMPU-4.18.2104.14-(amd64fre).exe". Finde ich so mit kurzem Dateinamen und Version übersichtlicher.

Benutzeravatar
Holgi
Senior
Senior
Beiträge: 453
Registriert: 12.05.2018, 12:33
Geschlecht:

Re: Windows Defender Update Platform (KB4052623) Dateien per Powershell umbenennen. Wer kann helfen?

Beitrag von Holgi » 18.05.2021, 08:11

Super! Danke Ben und DK2000.
Endlich kein manuelles Umbenennen dieser Dateien mehr nötig.
:dankeschoen:
@Moderator: "gelöst"

Benutzeravatar
Holgi
Senior
Senior
Beiträge: 453
Registriert: 12.05.2018, 12:33
Geschlecht:

Re: Windows Defender Update Platform (KB4052623) Dateien per Powershell umbenennen. Wer kann helfen? [gelöst]

Beitrag von Holgi » 30.06.2021, 10:25

noch mal ein Frage an Ben und DK2000:
ich nutze zum Umbenennen jetzt gerne diese Form des Scripts:

Code: Alles auswählen

cd $PSScriptRoot

$Files = Get-Childitem * -Include updateplatform*.exe|% {$_.VersionInfo}
ForEach ($File in $Files)
{
   Rename-Item ($File.FileName) -NewName ($File.FileDescription+".exe")    
}
Remove-Item -Path "AntiMalware Platform Update (arm64fre).exe" -Recurse -Verbose
pause
Der löscht mir auch gleich die ARM Variante, die ich sowieso nie brauche (noch nicht).
Ich hätte da gerne noch zusätzlich die ProductVersion (also z.B. aktuell 4.18.2105.(5)) drin.
Ich habe es schon selbst versucht, bekomme es aber nicht hin.
Was man braucht ist - das habe ich herausbekommen - die $File.ProductVersion+".exe"
Wie aber kann ich die Informationen
a) FileDescription
und
b) ProductVersion
gleichzeitig als Ausgabe bekommen?
Sollte dann so etwa AntiMalware Platform Update (x86fre) 4.18.2105.exe bei herauskommen.

Benutzeravatar
Ben
★ Team Blog ★
Beiträge: 846
Registriert: 28.12.2017, 15:19
Geschlecht:

Re: Windows Defender Update Platform (KB4052623) Dateien per Powershell umbenennen. Wer kann helfen? [gelöst]

Beitrag von Ben » 30.06.2021, 10:33

Denke so müsste das gehen. Habe es aber jetzt nicht getestet, da ich gerade keine Zeit für habe.

Code: Alles auswählen

cd $PSScriptRoot

$Files = Get-Childitem * -Include updateplatform*.exe|% {$_.VersionInfo}
ForEach ($File in $Files)
{
   Rename-Item ($File.FileName) -NewName ($File.FileDescription+"-"+$File.ProductVersion+".exe")    
}
Remove-Item -Path "AntiMalware Platform Update (arm64fre).exe" -Recurse -Verbose
pause
Hawadere! :salute: :saufen: :duckundweg: Danke im voraus! Vergesse es nämlich immer wieder mich zu bedanken. :hihi:
Bild

Benutzeravatar
Holgi
Senior
Senior
Beiträge: 453
Registriert: 12.05.2018, 12:33
Geschlecht:

Re: Windows Defender Update Platform (KB4052623) Dateien per Powershell umbenennen. Wer kann helfen? [gelöst]

Beitrag von Holgi » 30.06.2021, 11:25

Danke Ben! :dankeschoen: funktioniert!
Ich musste nur noch das Löschen der ARM Variante anpassen. Sowas bekomme ich schon selber hin, obwohl Powershell für mich Bömische Dörfer sind.
vorletzte Zeile dann:

Code: Alles auswählen

Remove-Item -Path "AntiMalware Platform Update (arm64fre)*.exe" -Recurse -Verbose

Antworten