[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
一会下班回家,在家里做个系统连接家里的服务器,看看问题是否存在。再回溯一下封装的母盘,看看哪一步的优化对这个代码运行产生影响了。

TOP

测试了,虚拟机内直接安装系统连接自己的服务器也是不行的,看来是这次封装优化了某个地方导致了这个问题,我检查一下。

TOP

虚拟机装了win23H2自动更新后测试
出现1219错误,net use查看列表确实是空的
但是,我本机是guest用户无密码就可以访问的
我是复制代码在本机,然后虚拟机的win11通过网上邻居复制的批处理
此时net use查看列表确实是空的

也就是说,确实已经存在了一个网络连接,所以报1219错误
此时运行7楼的代码,输出为1219

我重启虚拟机的win11,不打开网上邻居
此时运行运行7楼的代码,输出为86,也就是密码错误
1

评分人数


QQ 20147578

TOP

回复 18# czjt1234


    感谢如此认真对待,我已经发现问题所在,我现在整理一下

TOP

本帖最后由 SeanJuicer 于 2024-3-1 20:33 编辑

回复 18# czjt1234


首先,你的测试简直太精准了,直击问题要害。

其次,答案正如你所料,是两个账户访问同一个会话的原因。


这个问题发生的原因是,最新镜像有个需求,就是以管理员身份运行的程序需要访问到映射的网络磁盘

于是我做了一个优化项目:管理员访问网络驱动器


因为我每封装一次镜像都会在虚拟机内打快照,按照与上次优化的项目逐一对比,发现了这一项,才想起来。



还原优化项目,问题迎刃而解。


引用微软官方的一篇相关的文档:
当 UAC 配置为提示输入凭据时,从提升的提示中无法使用映射驱动器

摘取一段内容:
原因
启用 UAC 后,系统会在用户登录时创建两个登录会话。 这两个登录会话相互链接。 一个会话表示提升会话期间的用户,另一个会话表示你在用户权限最低的情况下运行的另一个会话。


这个代码以普通权限创建了一个连接,又想以管理员身份创建连接,所以就提示1219了。

问题找到了,那么为何去掉
  1. findstr [0123456789]
复制代码
就可以映射了呢?我的需求似乎还是没有解决,哈哈

.
.
.

TOP

回复 8# Batcher


    顺便感谢一下管理员,帮助过我好多次了哈哈

TOP

本帖最后由 SeanJuicer 于 2024-3-1 21:06 编辑

我的代码头部有setlocal enabledelayedexpansion变量延迟

会导致这个问题,去掉就可以挂载不出现1219了,关闭延迟就好了,我测试一下去

TOP

结论:如果开启了管理员访问网络驱动器,这个for循环net use需要关闭变量延迟扩展才能顺利执行。否则开不开都不影响代码。

不知我这个结论对不对?

TOP

回复 22# SeanJuicer


   如果setlocal 和endlocal 之间设置的变量,后面的代码不再使用可以直接关;如果需要使用可以试试 帖子中方法 (http://www.bathome.net/redirect.php?goto=findpost&ptid=9074&pid=275675)
1

评分人数

bat小白,请多指教!谢谢!

TOP

回复 24# 77七


    明白了,感谢

TOP

返回列表