获得管理员权限后在Windows终端中运行

问题描述 投票:0回答:2

有谁知道如何在

Windows Terminal
中获取批处理文件的Admin Privileges

下面的脚本在 cmd 中得到提升,它是自身的,而不是在 Windows 终端中/通过 Windows 终端

@echo off 
Net session >nul 2>&1 || (PowerShell start -verb runas '%~0' &exit /b)
Echo Administrative privileges have been got. & pause

我希望在 Windows 终端中打开上面的批处理文件,如下面的屏幕截图:

有人可以帮助我吗?

batch-file cmd elevated-privileges windows-terminal
2个回答
0
投票

我找到了一种方法,让

batch file
始终在
windows terminal
中运行,而
Elevated

  • 通过调用 PowerShell
@echo off
fltmc >nul && goto :Elevated
PowerShell start -verb runas wt.exe '%~0'&exit /b

:Elevated
fltmc >nul && echo admin || echo not
pause
  • 通过调用 VBScript
@echo off
fltmc >nul && goto :Elevated
echo Set UAC=CreateObject^("Shell.Application"^)       > "%temp%\ga.vbs"
echo UAC.ShellExecute "wt.exe", "%~0", "", "runas", 1 >> "%temp%\ga.vbs"
"%temp%\ga.vbs"& exit /B

:Elevated
fltmc >nul && echo admin || echo not
pause
@echo off
fltmc >nul && goto :Elevated
set "nirapp=D:\nircmd-x64\nircmd.exe"
%nirapp% elevate wt.exe "%~0"& exit /b

:Elevated
fltmc >nul && echo admin || echo not 
pause

从方法来看,

the simplest is PowerShell
,但是那些
load faster are VBScript and NirCMD


-1
投票

终端是运行 CMD 的“虚拟机”,实际上,您实际上正在使用 CMD 及其进程(见下图),主要区别在于处理一些特殊字符(例如表情符号)的能力。

因此无需关心您的脚本是在终端还是 CMD 中运行,它们都是一样的(除非您喜欢终端的外观,或者如果您使用特殊字符)

© www.soinside.com 2019 - 2024. All rights reserved.