PowerShell-Skript, das über SCCM 2012 bereitgestellt wird, um Windows 8.1-Apps vollständig zu entfernen

1907
mcbla

Ich bin auf der Suche nach einer Anleitung zur Durchführung der obigen Aufgabe.

Mein Powershell-Skript ist wie folgt: Das Skript entfernt derzeit eine bestimmte benannte App.

$AppsToDelete="*Microsoft.WindowsReadingList*" Foreach ($AppName in $AppsToDelete) { get-appxprovisionedpackage -online | where packagename -like $AppName | remove-appxprovisionedpackage -Online Get-AppxPackage -name $AppName -allusers | Remove-AppxPackage } 

Das von SCCM2012 zum Ausführen des Skripts verwendete Programm lautet wie folgt:

PowerShell.exe -ExecutionPolicy UnRestricted -File .\delappsreadinglistonly.ps1 

Ich habe in SCCM 2012 ein Programm erstellt und auf einem Client bereitgestellt.

Das Programm ist so eingestellt, dass es als Benutzer und nicht als System ausgeführt wird.

Die Datei EXECMGR.log meldet, dass das Skript vom Client empfangen wurde und erfolgreich ausgeführt wurde. Exitcode = 0, der Ausführungsstatus ist "Success".

Die Kachel „Leseliste“ befindet sich jedoch immer noch auf dem Startbildschirm (Metro?). Die App „Leseliste“ wird weiterhin in der alphabetisch alphabetischen Liste „Apps by Name“ angezeigt. Sie kann ausgeführt werden, und in C: \ Programme \ windowsapps \ sind noch verschiedene Ordner vorhanden.

Hinweise wären dankbar.

1
Ich weiß, dass dies ein dummer Kommentar sein kann, aber ich möchte darauf hinweisen, dass die App nur neu installiert wird, wenn sich der Computer noch in der SCCM-Sammlung befindet, um diese App zu erhalten. EBGreen vor 8 Jahren 1
Hallo, danke für deinen Kommentar. Um Zweifel zu vermeiden, sind die "Apps", die ich entfernen möchte, die verschiedenen "Apps", die in das Betriebssystem Windows 8.1 integriert sind und auf dem Metro-Startbildschirm als Kacheln sichtbar sind. Ich glaube, dass solche Apps als .appx bekannt sind. Es handelt sich nicht um Anwendungen, die mit der Methode innerhalb von SSCM 2012 bereitgestellt werden. Entschuldigung für die Verwirrung. Vielen Dank. mcbla vor 8 Jahren 0

1 Antwort auf die Frage

1
alx9r

Ich sehe zwei mögliche Probleme mit Ihrem Skript:

  1. Die Anrufe -AppxProvisionedPackageerfordern höchstwahrscheinlich eine Erhöhung. Wenn Sie Ihr Skript als Benutzer ausführen, wird wahrscheinlich eine Ausnahme ausgelöst.
  2. Der Aufruf an Get-AppxPackage -alluserserfordert Administratorberechtigungen. Die Dokumentation für -allusersreads "Um diesen Parameter zu verwenden, müssen Sie den Befehl mit Administratorberechtigungen ausführen."

Mir ist nicht genau klar, was Ihr Ziel ist. So gehe ich mit dem Chaos der Kacheln im Windows 8.1-Startbildschirm um:

  • Erstellen Sie eine SCCM-Anwendung mit den folgenden Eigenschaften:
    • kein Installer
    • Deinstallationsprogramm, das Remove-AppxPackageeine Liste der häufigsten Apps aufruft
    • Erkennungsskript für diese Liste von Apps
  • Stellen Sie die Anwendung mit der Deinstallationsaktion für die betroffenen Benutzer bereit .

Ich verwende diese Strategie, weil sie die Dinge so gestaltet, dass sie künftig bestimmten Benutzern zur Verfügung steht, falls dies sich als notwendig herausstellt.

Wenn ein Benutzer, für den diese Anwendung zum Entfernen bereitgestellt wird, angemeldet ist, CcmExecerkennt er die Anwendung und ruft den Deinstallationsbefehl auf. Nachdem der Deinstallationsbefehl aufgerufen wurde, sollten die Anwendungen für den Benutzer nicht mehr sichtbar oder verfügbar sein.

Deinstallationsanwendung.ps1

Hier ist der Körper des Deinstallationsskripts, das ich verwende. Sie müssen vorsichtig sein, wie Sie PowerShell-Skripts einrichten, die für die (Deinstallation) Installation aufgerufen werden, da Beendigungscodes ein wenig schwierig sind, um das Skript zuverlässig abzurufen .

$appList = 'Microsoft.BingSports', # ...longlist of other apps... 'Microsoft.WindowsReadingList' Get-AppxPackage |  ? { $_.Name -in $appList } |  % { Remove-AppxPackage $_.PackageFullName } 

Detect-Application.ps1

Unten ist der Körper des von mir verwendeten Erkennungsskripts. Beachten Sie, dass bei der Verwendung von PowerShell-Erkennungsskripts einige Fehler auftreten:

Wenn Sie all die PowerShell-Erkennungsskripts ausführen, funktionieren sie hervorragend für eine komplizierte, chirurgische oder unkonventionelle Erkennung wie diese.

 $appList = 'Microsoft.BingSports', # ...longlist of other apps... 'Microsoft.WindowsReadingList' Get-AppxPackage |  ? { $_.Name -in $appList } 
alx9r, danke für die Hinweise, sehr umfassend. Ich werde es zu gegebener Zeit versuchen. Ich war weg von der späten Antwort. Danke nochmal. mcbla vor 8 Jahren 0