1
systemcall 2023-03-09 10:21:36 +08:00 via Android
右键 以管理员身份运行
|
2
ysc3839 2023-03-09 10:47:15 +08:00 via Android
不知道 psexec 是否可行 https://learn.microsoft.com/en-us/sysinternals/downloads/psexec
|
3
Tamamopoi OP @ysc3839 感谢回复。试用了 psexec 的-e 参数,还是不行。
psexec 启动 cmd: USERPROFILE=C:\Users\Administrator psexec 添加-e 参数,不加载配置文件启动 cmd: USERPROFILE=C:\Users\Default runas 的 /env 参数启动 cmd: USERPROFILE=C:\Users\poi psexec 也无法替代 runas... |
4
Tamamopoi OP @systemcall 域环境下给特殊 app 使用,没有管理员权限。
|
5
ysc3839 2023-03-09 12:55:01 +08:00 via Android
@Tamamopoi 那大概只能自己写代码了,runas 的原理很简单,目前就只是缺个自动输入密码的方法。
|
6
Tamamopoi OP @ysc3839 使用 myrunas 这个工具解决了。https://bbs.kanxue.com/thread-185411.htm
|
7
Tamamopoi OP @ysc3839 没编辑完,按 ctrl+回车发出去了...
使用 myrunas 这个工具解决了。看雪:bbs.kanxue.com/thread-185411.htm 我用的 vs2019 ,runasdll 源码中最后的 test 函数必须重新命名,用 test 编译器会报错。 同时需要更改 output.def 中的 test 编译。 缺点是,这个工具需要读取 MyRunas.ini 中的密码,而且是明文储存...并不安全。临时把密码硬编码写入 dll 编译,明天上班再加点加解密算法了。 只要在源代码 dllmain.cpp 中的 if (!strlen(szPassword)) { printf("读取密码文件%s 失败,请检查设置是否正确!\n", szIniFile); MessageBox(NULL, "读取密码文件失败,请检查设置是否正确!", "", NULL); } else { MByteToWChar(szPassword, wcsPassword, sizeof(wcsPassword)/sizeof(wcsPassword[0])); } 改为 if (!strlen(szPassword)) { strcpy(szPassword, "123456"); MByteToWChar(szPassword, wcsPassword, sizeof(wcsPassword) / sizeof(wcsPassword[0])); } else { MByteToWChar(szPassword, wcsPassword, sizeof(wcsPassword)/sizeof(wcsPassword[0])); } 直接把密码 123456 写入 szPassword 中重新编译出 dll 就可以。 MyRunas.ini 直接删掉就好。 |