
[已解決]批處理通過CALL調用不能繼承權限最后由 cntanglang 于 -10-8 09:43在一個腳本中通過 CALL 調用另一個腳本主腳本代碼
子腳本代碼nclick="copycode($('code0'));">復制代碼
- %1 mshta.exe vbscript:createobject(shell.application).shellexecute(%~f0,::,,runas,1)(window.close)&&exit
- CALL DOALL.BAT DO_FILE.TXT File 1> LOGDO_FILE_%DATE:~-2,2%.LOG 2>&1
現在的結果是:1、如果在登錄系統后,用管理員身份運行主腳本,一切正常;2、如果將主腳本加入系統策略-腳本(啟動)中,則出現錯誤: 【你沒有足夠的權限執行此操作。】—— 雖然我已經在主腳本加入了提權代碼請求大神指點:1、是我的提權代碼有問題?2、還是通過 CALL 調用不能繼承權限?3、我應該怎么處理?多謝多謝----------------------------------------------使用 whoami 命令測試,發現調用者是 System 身份本就屬于管理員組,但在啟動時具有的特權中,被系統刻意忽略了 SeCreateSymboliclinkPrivilege 權限哪怕在安全策略中配置這個權力給 System ,也同樣被忽視。后查詢到一篇外文,提及Window8后的系統在啟動過程中會可以去掉部分權限,其中就包含這個權限。不過有意思的是:在啟動中調用 MKlink 的話 —— 針對文件的MKlink會提示無權,但針對文件夾的則會成功。 雙標還是BUG呢?nclick="copycode($('code1'));">復制代碼
- 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%

