rob*_*nes 6 powershell batch-file
这可能是不可能的,但我希望从命令行运行 .ps1 powershell 脚本,它需要以提升的权限运行,而无需或绕过任何 UAC 提示。
这是从脚本的角度来看,没有用户交互。因此,CMD 或 Powershell 的“以管理员身份运行”不是一个选项。不能有任何 UAC 提示可以点击,因为这些很可能会被隐藏起来。
我的命令是这样开始的 -
powershell.exe -executionpolicy bypass -file .\remove-default-apps.ps1
这将很好地启动 .ps1,但脚本最终会失败,因为脚本中的命令需要提升 (Get-AppxPackage | Remove-AppxPackage)
我的下一次尝试是使用 Powershell 运行脚本 -
Start-Process PowerShell -ArgumentList '-NoProfile -ExecutionPolicy Bypass -File MyScript.ps1' -Verb RunAs
但这仍然提示提升。我可以手动复制从非提升的 cmd 窗口运行脚本的错误,但运行提升它工作正常。
有谁知道这是否可能?或者有任何提示可以指出我正确的方向,我尝试了很多其他方法(psexec,计划任务......)但我无法实现这一点。
这是设计使然。如果UAC可以在某种方法中被忽略,那么就会失去UAC的意义。每个恶意软件都会在没有提示的情况下自行升级,就像 UAC 之前的狂野西部一样。
通过提升,您可以设置其他东西来运行提升,无论是计划任务还是其他。在企业范围内运行此类事物的最常见方法是通过代理使用配置管理(SCCM、LANDesk、Puppet、Salt 等)或通过PSRemoting
/远程运行PSexec
。(请注意,首先必须以管理员权限安装代理)
至于删除预配的包,这似乎是在映像时完成的任务。要么在部署之前直接从 WIM 中删除,要么在放置映像后仍处于 WinPE 中的情况下在任务序列任务中删除它,要么在 SysPrep 之前删除。我偏向于第二种方法,即在 MDT 中保持所有映像任务的编程性,并尽可能接近默认的 Windows 映像。
如果您不想要提示,可以关闭UAC(或设置为从不通知等Win8+)。如果您想在多台计算机上执行此操作,则可以通过组策略来完成。然而,这并不明智。
归档时间: |
|
查看次数: |
59594 次 |
最近记录: |