![在 Windows 10 中删除 3D Builder](https://linux22.com/image/1575579/%E5%9C%A8%20Windows%2010%20%E4%B8%AD%E5%88%A0%E9%99%A4%203D%20Builder.png)
我在以管理员身份运行的 PowerShell 中输入此内容来删除 3D Builder:
C:\Windows\System32>get-appxpackage *3dbuilder* | remove-appxpackage
它运行良好,但是我怎样才能在批处理文件中写入行来执行同样的事情?
答案1
这不起作用的原因是 PowerShell 脚本与批处理文件在内容和 Windows(默认情况下)处理方式方面都有很大的不同。
例如 - 如果您保存Write-Host $ENV:COMPUTERNAME
到 PowerShell (.ps1) 文件并双击它 - 它很可能会在记事本中打开!
如果您确实想将这一行 PowerShell 命令放入批处理文件中 - 您需要将类似内容powershell.exe -command "get-appxpackage *3dbuilder* | remove-appxpackage"
保存在批处理文件中。然后,您应该能够右键单击批处理文件并“以管理员身份运行”以获得所需的效果。
否则 - 如果您有一个 .ps1 PowerShell 脚本 - 您可以使用批处理文件调用它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!
附注 - 您可以选择重新配置 Windows 以在 PowerShell 中打开 PowerShell 脚本的可怕方式和/或添加 Windows 上下文菜单以以管理员身份在 PowerShell 中运行 - 但这至少可以说是混乱和危险的。