Edit: Powershell: Array durchläuft Schleife, genauere Fehlerangabe benötigt!
Hallo Powershell User,
ich brauche mal wieder Eure Unterstützung, da ich beim scripten wahrlich keine Leuchte bin .
Ich lasse per Powershell bei Windows 10 (1909) im Audit Modus sowohl Apps des gerade aktiven users (Administrator/root) als auch für alle zukuenftigen user entfernen.
Edit: Jetzt kommt es seit kurzem vor, dass beim Entfernen der Apps des gerade aktiven users Fehler auftreten.
Im Script werden Fehler beim Ausfuehren unterdrueckt, in eine Logdatei geschrieben und das Script faehrt fort:
In der ErrorProgs.log steht bei Fehlern dann aber nur:
Ich brauche aber genauere Angaben, also welche im array definierte App wurde nicht deinstalliert!
Edit: hier steht ein falscher Code Schnippsel, konnte das hier nicht editieren, zu umfangreich.
Richtiger Schnippsel bei meinen Antwortpost für SlainteMhath
Wer kann mir helfen?
Grüße
Potshock
ich brauche mal wieder Eure Unterstützung, da ich beim scripten wahrlich keine Leuchte bin .
Ich lasse per Powershell bei Windows 10 (1909) im Audit Modus sowohl Apps des gerade aktiven users (Administrator/root) als auch für alle zukuenftigen user entfernen.
Edit: Jetzt kommt es seit kurzem vor, dass beim Entfernen der Apps des gerade aktiven users Fehler auftreten.
Im Script werden Fehler beim Ausfuehren unterdrueckt, in eine Logdatei geschrieben und das Script faehrt fort:
#######################################################################################
$ErrorActionPreference = "SilentlyContinue"
# Pfad zur Logdatei
$Log = "$env:SystemDrive\Users\$env:USERNAME\Desktop\ErrorProgs.log"
########################################################################################
In der ErrorProgs.log steht bei Fehlern dann aber nur:
Remove-AppxPackage : Die Argumenttransformation für den Parameter "Package" kann nicht verarbeitet werden.
Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
In Z:\Win10\Scripts\Win10Progs.ps1:42 Zeichen:20
+ Remove-AppXPackage $ProgsZuLoeschen[3]
+ ~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidData: (:) [Remove-AppxPackage], ParameterBindingArgumentTransformationE
xception
+ FullyQualifiedErrorId : ParameterArgumentTransformationError,Microsoft.Windows.Appx.PackageManager.Com
mands.RemoveAppxPackageCommand
Ich brauche aber genauere Angaben, also welche im array definierte App wurde nicht deinstalliert!
Edit: hier steht ein falscher Code Schnippsel, konnte das hier nicht editieren, zu umfangreich.
Richtiger Schnippsel bei meinen Antwortpost für SlainteMhath
########################################################################################
# Liste der fuer zukuenftige Benutzer installierten Programme erstellen:
Get-AppXProvisionedPackage -Online | Select PackageName > $env:SystemDrive\Users\$env:USERNAME\Desktop\ProvisionedApps.txt
########################################################################################
# array mit den Suchbegriffen/Namen der zu deinstalierenden Provisioned Apps
$array_ProvisionedAppsZuLoeschen = @("Microsoft.BingWeather","Microsoft.GetHelp","Microsoft.Getstarted","Microsoft.Messaging",
"Microsoft.MicrosoftOfficeHub","Microsoft.MicrosoftSolitaireCollection","Microsoft.MicrosoftStickyNotes","Microsoft.MixedReality.Portal",
"Microsoft.Office.OneNote","Microsoft.OneConnect","Microsoft.People","Microsoft.Wallet","Microsoft.WindowsAlarms","microsoft.windowscommunicationsapps",
"Microsoft.WindowsFeedbackHub","Microsoft.WindowsMaps","Microsoft.Xbox.TCUI","Microsoft.XboxApp","Microsoft.XboxGameOverlay",
"Microsoft.XboxGamingOverlay","Microsoft.XboxIdentityProvider","Microsoft.XboxSpeechToTextOverlay","Microsoft.ZuneMusic",
"Microsoft.ZuneVideo")
# Schleife durchlaeuft array bis zum Ende
for ($i=0; $i -lt $array_ProvisionedAppsZuLoeschen.length; $i++){
# Strings aus array werden nacheinander in oben generierter ProvisionedApps.txt gesucht
$ProvisionedAppsZuLoeschen = Select-String -path $env:SystemDrive\Users\$env:USERNAME\Desktop\ProvisionedApps.txt -pattern $array_ProvisionedAppsZuLoeschen[$i]
# Ausgabe wird am ":" in 3 teiliges array gesplittet
$ProvisionedAppsZuLoeschen = $ProvisionedAppsZuLoeschen -split ":"
# Leerzeichen am Ende jeder Zeile werden entfernt
$ProvisionedAppsZuLoeschen = $ProvisionedAppsZuLoeschen -replace "\s{0,}", ""
# Variable des zu löschenden Programm wird an "Remove-AppXProvisionedPackage -Online -PackageName" Befehl angehaengt
Remove-AppXProvisionedPackage -Online -PackageName $ProvisionedAppsZuLoeschen[3]
}
########################################################################################
Wer kann mir helfen?
Grüße
Potshock
Please also mark the comments that contributed to the solution of the article
Content-Key: 576693
Url: https://administrator.de/contentid/576693
Printed on: April 24, 2024 at 19:04 o'clock
8 Comments
Latest comment
Get-AppXProvisionedPackage -Online | Select PackageName > $env:SystemDrive\Users\$env:USERNAME\Desktop\ProvisionedApps.txt
Man kann sich seinen Bleistift auch im Allerwertesten anspitzen, macht mit Powershell aber keiner ....Start-Transcript "D:\meinLog.txt"
$array_ProvisionedAppsZuLoeschen = @("Microsoft.BingWeather","Microsoft.GetHelp","Microsoft.Getstarted","Microsoft.Messaging",
"Microsoft.MicrosoftOfficeHub","Microsoft.MicrosoftSolitaireCollection","Microsoft.MicrosoftStickyNotes","Microsoft.MixedReality.Portal",
"Microsoft.Office.OneNote","Microsoft.OneConnect","Microsoft.People","Microsoft.Wallet","Microsoft.WindowsAlarms","microsoft.windowscommunicationsapps",
"Microsoft.WindowsFeedbackHub","Microsoft.WindowsMaps","Microsoft.Xbox.TCUI","Microsoft.XboxApp","Microsoft.XboxGameOverlay",
"Microsoft.XboxGamingOverlay","Microsoft.XboxIdentityProvider","Microsoft.XboxSpeechToTextOverlay","Microsoft.ZuneMusic",
"Microsoft.ZuneVideo")
Get-AppxProvisionedPackage -Online | ?{$_.DisplayName -in $array_ProvisionedAppsZuLoeschen} | Remove-AppxProvisionedPackage -Online -verbose
Stop-Transcript
Naja, die Properties auf der Konsole hätte man sich zumindest mal ansehen können dann wäre dir aufgefallen das die Property anders heißt.
I'm out.
Get-AppxPackage | ?{(!($_.IsFramework -or $_.PublisherId -eq "cw5n1h2txyewy")) -and $_.Name -in $array_ProgsZuLoeschen} | Remove-AppXPackage -verbose
I'm out.