Board logo

标题: [注册表类] 怎样以管理员身份隐藏运行BAT [打印本页]

作者: smss    时间: 2021-5-23 18:23     标题: 怎样以管理员身份隐藏运行BAT

本帖最后由 smss 于 2021-5-23 18:29 编辑

http://www.bathome.net/thread-49098-1-2.html
  1. for %%i in (Wim esd ISO)do ((if Wim==%%i set i=53)&(if %%i==ESD set i=57)&(if %%i==ISO set i=88)
  2. reg add "HKLM\SOFTWARE\Classes\Directory\shell\给朕打包为%%i" /v icon /t REG_SZ /d SHELL32.dll,1!i! /f
  3. reg add "HKCR\Directory\shell\给朕打包为%%i\Command" /f /ve /t REG_SZ /d "\"%~dp0HIDECMD.exe\" \"%~dp0执行.bat\" \"%%1\" %%i"
  4. if not ISO==%%i (reg add "HKCR\SystemFileAssociations\.%%i\Shell\给朕解开..." /v icon /t REG_SZ /d SHELL32.dll,1!i! /f
  5. reg add "HKCR\SystemFileAssociations\.%%i\Shell\给朕解开...\Command" /f /ve /t REG_SZ /d "\"%~dp0HIDECMD.exe\" \"%~dp0执行.bat\" \"%%1\" WimEsd"
  6. )
  7. )
复制代码
以管理员身份运行" 由注册表项:HKEY_CLASSES_ROOT\batfile\shell\runas\command 控制,其默认值为:%SystemRoot%\System32\cmd.exe /C "%1" %*
能不能在注册表中就把这个和HIDECMD合并为一句呢@WHY@Batcher管理员应该知道
在脚本头加以下代码 也是一知半解 用VBS隐藏会有黑窗一闪而过 最后用的HIDECMD来隐藏 大师们都是怎样处理这个问题呢
%2 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
作者: aceamuro    时间: 2021-11-27 22:02

本帖最后由 aceamuro 于 2021-11-27 22:04 编辑

我懂的很少,用的方法很麻烦,但好像勉强可以实现
首先写个run.vbs
  1. set ws=WScript.CreateObject("WScript.Shell")
  2. ws.Run "a.bat",0
复制代码
这个vbs的目的是隐藏a.bat的cmd窗口
然后下载个powerrun放在同一目录中,并且在a.bat中写入
  1. powerrun /SW:0 b.bat
复制代码
powerrun的目的是以最高权限运行b.bat并且隐藏窗口,b.bat中写的就是你想要实现的具体代码
最后运行run.vbs就能以最高权限并隐藏窗口来运行b.bat,但用户账户的提示还是会出现

当然你也可以打开powerrun软件直接载入b.bat运行,但想直接通过代码执行的话就要像上面那样多绕一步

希望有大大能补充更简单的方法




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2