【发布时间】:2018-05-04 09:06:07
【问题描述】:
我们需要一个批处理脚本来查看哪些映射已经处于活动状态,删除映射并重新映射一次,但使用新密码。
我有以下代码示例:
@echo off
set server=srv1
for /f "tokens=1,2*" %%a in ('wmic logicaldisk get Caption^, providername^| find /I "%server%"') do (
for /f "tokens=1,2*" %%d in ("%%a") do (
echo net use %%a /del
for /f "tokens=1,2*" %%e in ("%%a", "%%b") do (
echo net use %%a %%b /user:dom/uid1 pwd
)
)
)
问题是我需要先删除所有映射,然后再进行所有重新映射。
我当前的代码会:删除、重新映射、删除、重新映射。
有人可以帮我写代码示例吗?
【问题讨论】:
-
你几乎运行了 3 个循环,可以用一个循环完成。
-
怎么回事?
-
在下面试试我的答案。
-
请在此处具体说明。您要检查所有映射的驱动器并重新映射它们,还是要指定单个映射并重新映射?
-
我建议您从运行以下命令开始,
WMIC NetUse Get LocalName,RemoteName,UserName这有望为您提供重新映射所需的解析信息。您当然可以尝试在批处理文件For循环中使用它来将信息保存为变量。一个未经测试的例子可能是('WMIC NetUse Where "RemotePath Like '\\\\srv1\\%%' And UserName='dom\\uid1'" Get LocalName^,RemotePath^|Find /V ""'),但你可能不得不用它来输出你需要的东西!
标签: batch-file for-loop wmic