欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

set "script_dir=%~dp0" start %script_dir%\RunAsSpc.exe /cryptfile:"%script_dir%\disable_166.spc" 这个代码有问题 吗 AG chatgpt 有大用 有大大用

set "script_dir=%~dp0"

start %script_dir%\RunAsSpc.exe /cryptfile:"%script_dir%\disable_166.spc"

 这个代码有问题 吗

这段代码总体上是可以工作的,但存在几个潜在问题和优化空间:

主要问题:

  1. 路径含空格问题如果 script_dir 路径中包含空格,start 命令可能会报错。应该用引号包裹完整路径:

    bat
    start "" "%script_dir%\RunAsSpc.exe" /cryptfile:"%script_dir%\disable_166.spc"
  2. start命令的窗口标题: start 命令的第一个引号参数是窗口标题(可为空),缺少这个可能会导致参数解析错误。

改进建议:

bat
set "script_dir=%~dp0" start "" "%script_dir%RunAsSpc.exe" /cryptfile:"%script_dir%disable_166.spc"

其他注意事项:

  1. %~dp0 已经包含反斜杠,所以 %script_dir%\ 会导致双反斜杠(虽通常不影响功能,但不规范)

  2. 确保:

  • RunAsSpc.exe 存在于脚本目录

  • 用户有权限执行该程序

  • disable_166.spc 文件存在

  • 如果需要等待程序完成,应去掉 start 直接运行:

    bat
    "%script_dir%RunAsSpc.exe" /cryptfile:"%script_dir%disable_166.spc"
  • 这些修改会让脚本更健壮地处理各种路径情况。



    start "" "%script_dir%RunAsSpc.exe" /cryptfile:"%script_dir%disable_166.spc"

    start "" "%script_dir%RunAsSpc.exe" /cryptfile:"%script_dir%disable_jse.spc"

    start "" "%script_dir%RunAsSpc.exe" /cryptfile:"%script_dir%disable_adm.spc"

    start "" "%script_dir%RunAsSpc.exe" /cryptfile:"%script_dir%disable_ict.spc"

    Recall Information: 2

    ERRORL EVEL: 1326

    Command:

    "C:\Users\shipingzhong\Downloads\test4 admin_ approve\RunAsSpc.exe"

    C:\Users\shipingzhong\Downloads\test4_ admin_ approve\disable_ict.spc

    你的命令和脚本基本没问题,但出现 ERRORLEVEL 1326 (登录失败) 通常是因为以下几种原因:


    常见问题原因

    1. .spc 文件中的账号密码错误

    • 如果电脑是域环境,要用 域名\用户名(如 MYDOMAIN\Admin)。

    • 本地账户直接用 用户名(如 Administrator)。

    • 检查 disable_ict.spc 等文件里的用户名和密码是否正确,特别注意:

    • 密码是否过期或错误(需确认大小写和特殊字符)。

  • 路径或文件名问题

    • 你的路径中有空格(如 test4 admin_ approve),虽然引号包裹可以解决,但某些特殊工具可能存在兼容性问题。

    • 解决方法:去掉路径中的空格(例如改为 test4_admin_approve)。

  • 权限不足

    • 如果你的脚本尝试以管理员身份运行某些操作,但 .spc 中的账户没有管理员权限,会导致失败。

  • .spc 文件损坏或格式错误

    • 部分工具生成的 .spc 文件可能是加密的,直接修改会导致无法识别。


    解决方法

    1. 手动检查 .spc 文件

    用记事本打开 disable_ict.spc,检查内容是否为如下格式:

    Username: Administrator  
    Password: 123456
    

    或加密格式(如果是加密的,需重新生成)。

    2. 直接运行命令测试

    去掉 start,直接运行看详细报错:

    batch
    "%script_dir%RunAsSpc.exe" /cryptfile:"%script_dir%disable_ict.spc"

    这样可以看到更具体的错误提示。

    3. 修正路径和权限问题

    • 确保路径无空格或特殊字符(如中文)。

    • 右键 以管理员身份运行 你的批处理脚本。

    4. 重新生成 .spc 文件

    如果用 RunAsSpc 自带的工具生成 .spc 文件,重新生成一次(避免手动修改导致格式错误)。

    5. 检查账户有效性

    • 确认 .spc 里的账户是否存在:

      • 如果是本地账户,去 计算机管理 → 本地用户和组 确认。

      • 如果是域账户,联系 IT 部门确认账号状态。


    修改后的完整脚本

    batch
    @echo off set "script_dir=%~dp0" echo 正在执行脚本,路径:%script_dir% :: 逐个运行,避免多个 start 并行冲突 "%script_dir%RunAsSpc.exe" /cryptfile:"%script_dir%disable_166.spc" if %errorlevel% neq 0 echo [错误] disable_166.spc 执行失败!错误码:%errorlevel% "%script_dir%RunAsSpc.exe" /cryptfile:"%script_dir%disable_jse.spc" if %errorlevel% neq 0 echo [错误] disable_jse.spc 执行失败!错误码:%errorlevel% "%script_dir%RunAsSpc.exe" /cryptfile:"%script_dir%disable_adm.spc" if %errorlevel% neq 0 echo [错误] disable_adm.spc 执行失败!错误码:%errorlevel% "%script_dir%RunAsSpc.exe" /cryptfile:"%script_dir%disable_ict.spc" if %errorlevel% neq 0 echo [错误] disable_ict.spc 执行失败!错误码:%errorlevel% pause

    (这样能精确看到哪个文件出问题。)


    如果仍失败

    1. 换用明文账号密码测试

      batch
      RunAsSpc.exe /user:Administrator /password:123456 /command:"你的命令"

      (避免 .spc 文件的影响。)

    2. 检查工具版本

    • 某些旧版 RunAsSpc.exe 可能有 Bug,尝试下载最新版。

  • 查看系统日志

    • 去 事件查看器 → Windows 日志 → 安全,看是否有详细的登录错误记录。


    请尝试上述方法,如果仍有问题,可以提供 disable_ict.spc 的内容(隐藏敏感信息)或完整错误截图,进一步排查!


    普通分类: