本帖最后由 cntanglang 于 2021-10-8 09:43 编辑
在一个脚本中通过 CALL 调用另一个脚本
主脚本代码- %1 mshta.exe vbscript:createobject("shell.application").shellexecute("""%~f0""","::",,"runas",1)(window.close)&&exit
-
- CALL DOALL.BAT "DO_FILE.TXT" "File" 1> "LOG\DO_FILE_%DATE:~-2,2%.LOG" 2>&1
复制代码 子脚本代码- echo off
-
- ECHO %time%
-
- if exist "%~1" (
-
- setlocal EnableDelayedExpansion
-
- for /f "usebackq delims== tokens=1,2" %%a in ("%~1") do (
-
- ECHO %%a
- ECHO %%b
-
- ATTRIB -S -H "%%b"
- RD /S /Q "%%b.Ray"
- MOVE /Y "%%b" "%%b.Ray"
-
- if /i "%~2" == "FILE" ( DODODO "%%b" "Z:\TEMP\%%a.Ray" )
-
- ECHO "-----------------------------------------------------------"
- )
-
- )
- ECHO %time%
复制代码 现在的结果是:
1、如果在登录系统后,用管理员身份运行主脚本,一切正常;
2、如果将主脚本加入系统策略-脚本(启动)中,则出现错误: 【你没有足够的权限执行此操作。】 —— 虽然我已经在主脚本加入了提权代码
请求大神指点:
1、是我的提权代码有问题?
2、还是通过 CALL 调用不能继承权限?
3、我应该怎么处理?
多谢多谢
----------------------------------------------
使用 whoami 命令测试,发现调用者是 System 身份
本就属于管理员组,但在启动时具有的特权中,被系统刻意忽略了 SeCreateSymbolicLinkPrivilege 权限
哪怕在安全策略中配置这个权力给 System ,也同样被忽视。
后查询到一篇外文,提及Window8后的系统在启动过程中会可以去掉部分权限,其中就包含这个权限。
不过有意思的是:在启动中调用 MKLINK 的话 —— 针对文件的MKLINK会提示无权,但针对文件夹的则会成功。 双标还是BUG呢? |