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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 576693
Url: https://administrator.de/forum/edit-powershell-array-durchlaeuft-schleife-genauere-fehlerangabe-benoetigt-576693.html
Ausgedruckt am: 22.12.2024 um 11:12 Uhr
8 Kommentare
Neuester Kommentar
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.