【发布时间】:2023-01-09 01:39:18
【问题描述】:
我需要建议。 我在我的计算机上运行一个脚本,将文件复制到网络驱动器。它会定期通过任务计划程序打开。 但碰巧在重启后网络驱动器没有连接——即使我在设置它时选中了“登录时重新连接”。 (通常我只需双击驱动器,它就会重新连接)。但是如果我不这样做,脚本就不能把它放在任何地方,因为磁盘似乎不在那里。
我试过了:
-
关闭快速启动,
-
启动后将批处理文件放入文件夹中:
@echo Create new Y: drive mapping net use Y: \\server\folder :exit -
将另一个批处理文件放在“启动后”文件夹中
@echo off :Start timeout /t 5 /nobreak >NUL if exist Y:\NUL goto End net use Y: \\server\folder /USER:domain\user password /PERSISTENT:YES if ERRORLEVEL 1 goto Start :End
但都没有解决问题。
【问题讨论】:
-
password和/PERSISTENT:YES之间缺少一个空格字符。但是,请注意,网络驱动器连接是针对每个用户帐户的配置,而不是本地计算机配置。 Windows注册表配置单元HKEY_CURRENT_USER中存储了哪些网络资源应该连接到哪个盘符的持久存储。自动网络驱动器重新连接仅在用户登录时完成。 -
没有很好记录的事实是,一旦使用
/PERSISTENT:NO进行任何网络连接,就像在带有net use的批处理文件中一样,全部存储在注册表中的网络连接被禁用以自动重新连接。这当然出乎所有人的意料。每个用户都希望/PERSISTENT:NO仅用于当前在批处理文件中使用net use建立的网络驱动器连接,但 Windows 为当前用户帐户切换所有网络驱动器连接的全局设置。 -
@Mofi 我错误地调整了通常存在的代码间隙。是的,它只是一个而且只是同一个用户。但它仍然对我不起作用。该装置始终未连接。
-
请注意,Windows 10 不会等待启动网络服务,然后用户才能登录并显示桌面,Windows 开始菜单中 AutoRun 文件夹中的快捷方式由 Windows shell 执行。因此,在执行自动运行批处理文件时,网络可能根本不可用。好吧,第二个批处理文件应该检查这一点,但更好的做法是在该行上方使用
%SystemRoot%\System32\ping.exe -n 1 %server% >nul || ( %SystemRoot%\System32\timeout.exe /T 5 >nul & goto Retry )和:Retry。 -
然后与
%SystemRoot%\System32\net.exe use Y: \\server\folder /USER:domain\user password /persistent:yes(或/persistent:no)建立网络连接,并对任何文件或文件夹(如if exist Y:\* echo \\server\folder connected as drive Y:)进行文件系统访问。
标签: windows powershell cmd network-drive