使用 javascript 以管理员身份运行批处理的简单方法

2023-12-10

我想导出一种简单可靠的方法来自动提升正在运行的批处理,而无需使用其他线程中建议的额外 VBS 文件或提升的快捷方式。通过 javascript 从批处理中调用 UAC 对话框可确保代码简短。

当在对话框中选择“是”时,下面的脚本会自动将用户正确提升为管理员权限,但会弹出错误对话框(在 Cmd 窗口之外)”Windows 找不到“test.bat”'”。可能是因为文件路径包含空格吗?如何修复代码或抑制此错误弹出窗口?

@echo off
:: test admin rights
>nul 2>&1 net file
echo '%errorlevel%'
MSHTA "javascript: var shell = new ActiveXObject('shell.application'); shell.ShellExecute("%~nx0", '', '', 'runas', 1);close();"
:: test admin rights
>nul 2>&1 net file
echo '%errorlevel%'
if !errorlevel! equ 0 echo Hello >%temp%\tst.txt
exit /b

我修复了脚本,现在运行得很好。根据我的研究,这是在任何地方发布的运行批处理中的 Cmd 会话期间动态授予常规用户管理员权限的最简单可靠的方法。

它不需要使用函数、混合批处理和 VBS 构造、额外文件或提升的快捷方式。它是 Windows 原生的。用户可以在其中添加自己的任务代码:usercode部分按批运行。

@echo off
setlocal EnableDelayedExpansion
:: test and acquire admin rights
cd /d %~dp0 & echo/
if not "%1"=="UAC" (
    >nul 2>&1 net file && echo Got admin rights || (echo No admin rights & ^
MSHTA "javascript: var shell = new ActiveXObject('shell.application'); shell.ShellExecute("%~snx0", 'UAC', '', 'runas', 1);close();"))
:: re-test admin rights
echo/ & >nul 2>&1 net file && (echo Got admin rights & echo/) || (echo No admin rights. Exiting... & goto :end)

:usercode
:: add your code here
echo Performing admin tasks
echo Hello >C:\test.txt

:end
timeout /t 5 >nul
exit /b
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 javascript 以管理员身份运行批处理的简单方法 的相关文章

随机推荐

  • 如何在烧瓶响应中返回图像?

    举个例子 这个网址 http example com get image type 1 应该返回一个响应image gifMIME 类型 我有两个静态 gif images 如果类型是 1 它应该返回ok gif 否则返回error gif
  • ASP.NET MVC6 中的实体框架7对同一个表的多个外键

    您好 我有同样的问题 这里有一篇旧文章 那里提供的解决方案在带有 EF7 的 MVC 6 中对我不起作用很简单 public class Match Key public int MatchId get set public DateTim
  • Pytorch - 运行时错误:尝试再次向后浏览图表,但缓冲区已被释放

    我一直遇到这个错误 运行时错误 尝试再次向后浏览图形 但缓冲区已被释放 第一次向后调用时指定retain graph True 我在 Pytorch 论坛中搜索过 但仍然找不到我在自定义损失函数中做错了什么 我的模型是 nn GRU 这是我
  • Tor Stem - 前往俄罗斯,有爱情联系问题

    我正在尝试获取带着爱去俄罗斯教程来自 Stem 项目的工作 from io import StringIO import socket import urllib3 import time import socks SocksiPy mod
  • 让方法运行或引发异常的 Python 装饰器

    我需要一个装饰器 它接受一个参数并检查 基于一些简单的逻辑 是否应该允许该方法运行或引发异常 class One obj trend trend myDecorator self trend def click button self cl
  • 在 Sankey 工具提示中显示边缘信息

    我正在使用 networkD3 包中的 sankeyNetwork 来创建可视化 我想为每条边分配一个名称 ID 以便它出现在工具提示中 这可以通过 sankeyNetwork 或 networkD3 包中的任何其他函数来完成吗 这在技术上
  • php、jquery 只有第一个 id 工作正常

    我在 php 中有以下代码 代码经过编辑以便于理解 while row mysql fetch array biznis div div img src social images avatar empty avatar full jpg
  • 如何将所有网络流量重定向到特定页面?

    有没有办法将我网站的所有流量重定向到特定页面 我的免费主机确实支持 PHP 不确定这是否适合于此 谢谢 如果您的主机基于 Apache 并支持模组重写 用那个 例如 WordPress 典型的重写 将对不存在的文件 文件夹的请求重定向到in
  • std::数组的向量

    以下声明通过编译检查 int arr 3 vector
  • 如何将 Perlin 噪声值标准化到范围 [0, 1]?

    我正在使用 numpy 数组来保存柏林噪声值 有人告诉我 二维数组中的柏林噪声值分别在 0 7 0 7 范围内 但这似乎并非如此 至少对于凯斯曼来说不是 noise 库 当我调整八度 持久性和空白度的参数时 我会使用不同的库 但我找不到任何
  • Powerpoint VBA - 更改配色方案

    我需要通过 VBA 代码将演示文稿的配色方案更改为 Office 2007 2010 我怎样才能做到这一点 我尝试了类似下面的方法 但似乎不起作用 ActivePresentation ColorSchemes Add ActivePres
  • 如何在 laravel 5.3 中显示当前日期的日期名称?

    我想在 laravel 5 3 中打印当前日期的名称 我可以通过以下方式获取当前日期 上面的代码打印 25 但我希望它打印星期四 我应该怎么做 Try this
  • 有没有办法在密码文本模式下设置 ASP.NET 文本框密码字符?

    我希望当用户输入文本时 它应该显示 而不是一个简单的星号 有没有办法 在win forms的TextBox中有一个属性PasswordChar 它在web中有何相似之处 不 这是特定于浏览器的 也许你可以用 javascript 来伪造这个
  • 如何在 Delphi XE 中国际化我的应用程序?

    我正在使用 Delphi 中包含的翻译管理器 xe8 但在旧版本中应该相同 我转到 Projet gt 语言 gt 添加 选择英语 然后我翻译文本 这里是按钮 我全部更新并编译 我得到了 exe 和 enu 文件 它是法语的 当我转到 Pr
  • matlab中的KNN算法

    我正在研究拇指识别系统 我需要实现 KNN 算法来对我的图像进行分类 根据this 它只有 2 个测量值 通过这些测量值计算找到最近邻居的距离 但在我的例子中 我有 400 张 25 X 42 的图像 其中 200 个用于训练 200 个用
  • Spring Boot REST · @Constraint 用于删除?

    我正在开发一个使用 Spring Boot REST HATEOAS Hibernate 和 PostgreSQL 的系统后端 为了验证 我开始使用以下类extend org springframework validation Valid
  • LibGDX 移动旋转相机

    我在使用 LibGDX 构建的应用程序中遇到了一种情况 我需要相机能够旋转 并且可以由用户移动 并且能够缩放 我的相机移动和缩放相机的控件工作得很好 但是 当相机旋转时 相机会根据该旋转移动 例如 如果相机向左旋转 45 度 并且用户向右拖
  • 张量流/keras中输入的自相关

    我有一个一维输入信号 我想计算自相关作为神经网络的一部分 以便在网络内部进一步使用 我需要对输入与输入本身进行卷积 在 keras 自定义层 张量流中执行卷积 我们需要以下参数data shape is batch in height in
  • data.frame 中每组的平均值[重复]

    这个问题在这里已经有答案了 我有一个data frame我需要计算每组的平均值 即每Month 以下 Name Month Rate1 Rate2 Aira 1 12 23 Aira 2 18 73 Aira 3 19 45 Ben 1 5
  • 使用 javascript 以管理员身份运行批处理的简单方法

    我想导出一种简单可靠的方法来自动提升正在运行的批处理 而无需使用其他线程中建议的额外 VBS 文件或提升的快捷方式 通过 javascript 从批处理中调用 UAC 对话框可确保代码简短 当在对话框中选择 是 时 下面的脚本会自动将用户正