以管理员身份运行的批处理脚本

Fru*_*der 18 administrator batch-file runas

我正在编写客户端/服务器检查程序,但它需要以管理员身份运行.

我希望这在我的网络和用户上静默运行,我不希望"运行为"管理员"提示.是否有任何开始代码可以放入批处理文件,使其以管理员身份自动运行?

小智 14

解决方案无效

否: - 创建快捷方式[ - >兼容性 - >"以管理员身份运行此程序"]解决方案不起作用.

此选项在Windows 7中显示为灰色.即使禁用了UAC也是如此

否:这runas /env /user:domain\Administrator <program.exe/command you want to execute>还不够,因为它会提示用户输入管理员密码.

解决方案有效

是:禁用UAC - >使用任务计划程序创建作业,这对我有用.

  • 在任务计划程序下创建作业,并使其以具有管理员权限的用户身份运行.
  • 明确标记:"以最高权限运行"
  • 禁用UAC,因此不会提示运行此任务

如果需要,您可以通过编辑注册表让脚本启用UAC.在我的情况下,此脚本仅通过创建Windows虚拟机运行一次,其中UAC在映像中被禁用.

仍然期待脚本运行的最佳方法没有太多的麻烦.


小智 11

@echo off

 call :isAdmin

 if %errorlevel% == 0 (
    goto :run
 ) else (
    echo Requesting administrative privileges...
    goto :UACPrompt
 )

 exit /b

 :isAdmin
    fsutil dirty query %systemdrive% >nul
 exit /b

 :run
  <YOUR BATCH SCRIPT HERE>
 exit /b

 :UACPrompt
   echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
   echo UAC.ShellExecute "cmd.exe", "/c %~s0 %~1", "", "runas", 1 >> "%temp%\getadmin.vbs"

   "%temp%\getadmin.vbs"
   del "%temp%\getadmin.vbs"
  exit /B`
Run Code Online (Sandbox Code Playgroud)


小智 5

其可能的语法:

RUNAS [/profile] [/env] [/netonly] /user:user Program

Key :
/profile Option to load the user's profile (registry)
/env Use current environment instead of user's.
/netonly Use the credentials specified only for remote connections.
/user Username in form USER@DOMAIN or DOMAIN\USER
(USER@DOMAIN is not compatible with /netonly)
Program The command to execute
Run Code Online (Sandbox Code Playgroud)

例如:

runas /env /user:domain\Administrator <program.exe/command you want to execute>
Run Code Online (Sandbox Code Playgroud)

  • 这将提示您输入他不想要的密码。 (10认同)

小智 5

以下是一种变通方法:

  1. 创建 .bat文件的快捷方式
  2. 打开快捷方式的属性。在快捷方式标签下,点击高级
  3. 勾选“以管理员身份运行”

运行快捷方式将以管理员身份执行批处理脚本。