Ich sehe zwei mögliche Probleme mit Ihrem Skript:
- Die Anrufe
-AppxProvisionedPackage
erfordern höchstwahrscheinlich eine Erhöhung. Wenn Sie Ihr Skript als Benutzer ausführen, wird wahrscheinlich eine Ausnahme ausgelöst. - Der Aufruf an
Get-AppxPackage -allusers
erfordert Administratorberechtigungen. Die Dokumentation für-allusers
reads "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-AppxPackage
eine 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, CcmExec
erkennt 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:
- Sie müssen die Skripts signieren, wenn Sie über eine
xSigned
Ausführungsrichtlinie für einen Client verfügen, ungeachtet der Clienteinstellungen und der Protokolle zur Verwendung-ByPass
. - Die Semantik der Erkennungsskriptausgabe ist arkane und nur inoffiziell dokumentiert, IME ist jedoch zuverlässig.
- Sie müssen Ihre PowerShell-Erkennungsskripts mit der Problemumgehung von Adam Meltzer kochen, um sie zum Laufen zu bringen.
- Sie sollten sich zumindest auch mit einer gewissen Eigenartigkeit im Zusammenhang mit dem Kontext auskennen, in dem PowerShell-Erkennungsskripts ausgeführt werden .
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 }