[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[网络连接] 【已解决】NET USE在批处理for循环中无法使用的问题

本帖最后由 SeanJuicer 于 2024-3-1 21:20 编辑
  1. set H_error=
  2. for /f "tokens=2 delims=。 " %%i in ('net use H: \\192.168.1.100\app "/user:admin" "admin" /persistent:no ^| findstr [0123456789]') do (
  3.     set H_error=%%i
  4. )
  5. echo. %H_error%
  6. pause
复制代码
这段代码意在遇到net use错误时输出错误代码,但是使用中永远会提示错误代码
  1. 发生系统错误 1219:
  2. 不允许一个用户使用一个以上用户名与服务器或共享资源的多重连接
复制代码
命令从for循环中单独拎出来就可以顺利映射

希望各位大神给点指点,感谢!

已经没有任何映射或者其它用户挂载,并且在执行前已经net use * /del /y

用自增变量计数或者在for里写goto跳转出来,也是同样的结果,计数也是显示循环了一次而已
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

回复 24# 77七


    明白了,感谢

TOP

回复 22# SeanJuicer


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

评分人数

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

TOP

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

不知我这个结论对不对?

TOP

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

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

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

TOP

回复 8# Batcher


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

TOP

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

回复 18# czjt1234


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

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


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

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


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



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


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

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


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

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

.
.
.

TOP

回复 18# czjt1234


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

TOP

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

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

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

评分人数


QQ 20147578

TOP

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

TOP

一会下班回家,在家里做个系统连接家里的服务器,看看问题是否存在。再回溯一下封装的母盘,看看哪一步的优化对这个代码运行产生影响了。

TOP

回复 14# czjt1234


    不会,那台服务器是群晖,同一个账号已经在其它电脑重复登陆过了,是不限制SMB同时登陆的。

TOP

会不会账户限制,同一账户只允许一个远程连接之类

QQ 20147578

TOP

更新补丁到最新,没有复现问题!

TOP

自从纳德拉担任CEO解除了测试部门后,每次微软出补丁都会让全世界的技术维护员心惊胆战

记得有次补丁造成文件可以共享,但打印机不能共享。。。那个电话啊那个痛苦啊

QQ 20147578

TOP

返回列表