Powershell запускается при запуске, но не выполняет Remove-AppxPackage - PullRequest
0 голосов
/ 15 мая 2019

Выполнение скрипта Powershell при запуске, чтобы убрать часть раздувания, которое поставляется с Windows 10. Он включает в себя проверку, чтобы убедиться, что он уже выполнен, что создает файл флага (так что я знаю, что скрипт работает).Однако команды удаления не выполняются (они работают нормально вручную).

Хосты работают под управлением Windows 10 Pro.Скрипт доставляется через GPO;применяется нормально, о чем свидетельствует запущенный скрипт.

$DestinationFile = "C:\BloatFlag.txt"
if (Test-Path $DestinationFile) {

echo "Already Done"

} else {

Get-AppXPackage Microsoft.Microsoft3DViewer | Remove-AppXPackage
Get-AppXPackage DellInc.DellSupportAssistforPCs | Remove-AppXPackage
Get-AppXPackage DellInc.DellCommandUpdate | Remove-AppXPackage
# and the list goes on

echo "ONLY DELETE THIS FILE IF YOU REQUIRE TO RUN THE BLOAT REMOVAL SCRIPT AGAIN" > "C:\BloatFlag.txt"

}
  • BloatFlag.txt создается при проверке C:\.
  • Ни одно из перечисленных программ не было удалено

Я ожидал, что приложения будут удалены, если код достигнет создания текстового файла.

Ответы [ 2 ]

0 голосов
/ 15 мая 2019

Пакет Remove-Appxpackage в настоящее время в значительной степени отключен, если вы не хотите выполнять какие-либо манипуляции с базой данных sqlite. https://superuser.com/questions/1115801/unable-to-uninstall-universal-apps-through-powershell

0 голосов
/ 15 мая 2019

Может быть.Возможно, нет.Вот что я имею в виду ...

a) Если Get-AppXPackage ничего не возвращает, Remove-AppXPackage ничего не удалит, а файл маркера все равно будет создан.

б) Если какой-либо оператор выдает исключение, из того, что вы написали, это не остановит выполнение скрипта и файл маркера будет создан.Например, вставьте следующее в файл и запустите его.Вы увидите, что Remove-AppXPackage выдает исключение, но thinger.txt все еще создается.

Remove-AppXPackage xyz
write-output 'test' > thinger.txt

Когда скрипт выполняется во время процесса загрузки / входа в систему / любого другого процесса, он запускается как пользователь, которыйпакеты удаляются, или он запускается в контексте другого пользователя?Если последнее, пользователь должен быть администратором (работающим с повышенными правами) для удаления пакетов приложений из профиля другого пользователя.если вы не уверены, добавьте whoami к выводу в файле маркера, который вы создаете.

Просто примечание, я смутно припоминаю людей Remove-AppxPackage и Remove-ProvisionedAppxPackage.Первым удалил пакет для данного локального пользователя.Второй удаляет пакет с компьютера, поэтому новым пользователям пакет не будет установлен.Меня не удивит, если вам понадобится запустить Remove-ProvisionedAppxPackage с повышенными разрешениями, но я не вижу этого в документации командлета.

...