Удаление 3D Builder в Windows 10

464
Ubaldo Madrigal

Я набираю это в PowerShell, работающем от имени администратора, чтобы удалить 3D Builder:

C:\Windows\System32>get-appxpackage *3dbuilder* | remove-appxpackage 

Это работает нормально, но как я могу написать строку в пакетном файле, чтобы сделать то же самое?

2
Включите файлы .PS1 на ПК (не включены по умолчанию) и сохраните эту строку в сценарии PS1. См. Https://superuser.com/questions/106360/how-to-enable-execution-of-powershell-scripts. DrMoishe Pippik 5 лет назад 1
Другой способ - добавить в кавычки всю команду и добавить `Powershell` перед ней. Затем сохраните его как командный файл Biswapriyo 5 лет назад 0
Эта ссылка будет полезна для вас: удаление встроенных приложений из WIM-файла Windows 10 с помощью Powershell - версия 1.3 https://gallery.technet.microsoft.com/Removing-Built-in-apps-65dc387b Joy 5 лет назад 0

1 ответ на вопрос

0
Fazer87

Причина, по которой это не будет работать, заключается в том, что сценарий PowerShell сильно отличается от командного файла как с точки зрения его содержимого, так и способа, которым окна (по умолчанию) будут его обрабатывать.

Например, если вы сохраните Write-Host $ENV:COMPUTERNAMEфайл PowerShell (.ps1) и дважды щелкните по нему, он, скорее всего, откроется в Блокноте!

Если вы действительно хотите поместить эту однострочную команду PowerShell в командный файл - вам нужно что-то вроде powershell.exe -command "get-appxpackage *3dbuilder* | remove-appxpackage"сохранения в вашем командном файле. После этого вы сможете щелкнуть правой кнопкой мыши и «запустить от имени администратора» в командном файле, чтобы получить желаемые эффекты.

В противном случае - если у вас есть сценарий PowerShell .ps1 - вы можете вызвать его из командного файла PowerShell.exe -File C:\Folder\script.ps1и использовать его из командной строки администратора.

В качестве альтернативы вам нужно будет открыть PowerShell (или ISE) от имени администратора и выполнить скрипт ( & C:\Folder\file.ps1)

Наконец, вы можете использовать этот -verb RunAsпереключатель, чтобы при необходимости вызвать PowerShell.exe и принудительно повысить его, или использовать следующий блок скрипта внутри скрипта, чтобы вызвать повышение сеанса (при необходимости с запросом UAC):

If (-NOT ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) {   $arguments = "& '" + $myinvocation.mycommand.definition + "'" Start-Process powershell -Verb runAs -ArgumentList $arguments Break  } ###My Script Code Goes Here and will be executed if I am an administrator! 

Примечание: вы можете пойти по ужасному пути переконфигурирования окон, чтобы открыть сценарии PowerShell в PowerShell и / или добавить контекстное меню Windows для запуска в powershell от имени администратора - но это, по меньшей мере, грязно и опасно.