【问题标题】:Network drive after restart disconnect重启后网盘断开
【发布时间】: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


【解决方案1】:

几天前我遇到了这个问题。 我使用的解决方案并不是很专业,但它确实有效。

我刚刚通过 powershell 在网络文件夹中创建了一个文本文件。 每次我现在重新启动我的电脑时,它只会在这个 txt 中写入最新日期。 我知道它并不完美,但它确实有效。

New-Item \ServerFolderRecentLogin.txt
$var_date = Get-Date
Set-Content \ServerFolderRecentLogin.txt "$var_date"

【讨论】:

  • 谢谢您的回答。您是手动将其写入文件(手动运行脚本)还是什么?也许我只是误会。
  • 不,实际上我只是将 .ps1 文件放入我的自动启动文件夹中。按Win+R,然后输入“shell:startup”运行。只需将文件放在那里,它就会在每次启动时运行。
  • 好的,谢谢你的解释。我试试谢谢
【解决方案2】:
  1. 确保fast boot is disabled

  2. 转到设备管理器 -> 网络适配器 -> 网络适配器的属性

    • 在“电源管理”下禁用“允许计算机关闭此设备以节省电源”
    • 在“高级”下将“等待链接”设置为“开”
    1. 转到组策略(执行 gpedit.msc)-> 计算机配置-> 管理模板-> 系统-> 登录并启用“在计算机启动和登录时始终等待网络”。

    2. 将以下值添加到注册表中:

      [HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionPoliciesSystem] “EnableLinkedConnections”=双字:00000001 “LocalAccountTokenFilterPolicy”=dword:00000001

      [HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWinlogon] “GpNetworkStartTimeoutPolicyValue”=dword:0000003c

      [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlNetworkProvider] “恢复连接”=双字:00000001

      [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesDnscache] “开始”=双字:00000002

      [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesLanmanServerParameters] "Autodisconnect"=双字:ffffffff

      [HKEY_CURRENT_USERSOFTWAREMicrosoftWindowsCurrentVersionExplorer] “LocalKnownFoldersMigrated”=dword:00000001

    3. 删除以下注册表项(如果存在)(其中“X”是您连接的网络驱动器的盘符):

      [HKEY_CURRENT_USER NetworkX]

      [HKEY_CURRENT_USERSOFTWAREMicrosoftWindowsCurrentVersionExplorerMap 网络驱动器 MRU] “一个”=“\” "MRUList"="一个"

    4. 重启

    5. 手动映射您的网络驱动器:

    • 打开文件资源管理器,右键单击“此电脑”并选择“映射网络驱动器”
    • 使用 IP 而不是 DNS 名称(例如 \192.168.0.10MyShare)并激活“登录时重新连接”
    1. 将以下值添加到相应的注册表项(其中“X”是您连接的网络驱动器的盘符)

      [HKEY_CURRENT_USERNetworkX] “ProviderFlags”=双字:00000001

    2. 可选:将访问网络驱动器的任何现有任务延迟大约 10 秒。

    3. 重新启动并检查是否一切正常。 net use(shell 命令)的状态应该是“OK”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-14
    • 2017-07-20
    • 1970-01-01
    • 2019-04-13
    • 2018-07-19
    • 1970-01-01
    相关资源
    最近更新 更多