Может быть.Возможно, нет.Вот что я имею в виду ...
a) Если Get-AppXPackage
ничего не возвращает, Remove-AppXPackage
ничего не удалит, а файл маркера все равно будет создан.
б) Если какой-либо оператор выдает исключение, из того, что вы написали, это не остановит выполнение скрипта и файл маркера будет создан.Например, вставьте следующее в файл и запустите его.Вы увидите, что Remove-AppXPackage
выдает исключение, но thinger.txt
все еще создается.
Remove-AppXPackage xyz
write-output 'test' > thinger.txt
Когда скрипт выполняется во время процесса загрузки / входа в систему / любого другого процесса, он запускается как пользователь, которыйпакеты удаляются, или он запускается в контексте другого пользователя?Если последнее, пользователь должен быть администратором (работающим с повышенными правами) для удаления пакетов приложений из профиля другого пользователя.если вы не уверены, добавьте whoami
к выводу в файле маркера, который вы создаете.
Просто примечание, я смутно припоминаю людей Remove-AppxPackage
и Remove-ProvisionedAppxPackage
.Первым удалил пакет для данного локального пользователя.Второй удаляет пакет с компьютера, поэтому новым пользователям пакет не будет установлен.Меня не удивит, если вам понадобится запустить Remove-ProvisionedAppxPackage
с повышенными разрешениями, но я не вижу этого в документации командлета.