windows@命令行映射磁盘驱动器若干方法@开机自动映射网络磁盘

本文主要是介绍windows@命令行映射磁盘驱动器若干方法@开机自动映射网络磁盘,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • windows@映射网络磁盘驱动器
      • 资源管理器中GUI方式创建
      • 命令行方式创建
      • 命令行列出驱动器列表
      • 删除取消映射
      • 持久化配置映射👺
        • 记住凭证
    • FAQ
      • 开机自启@登录系统后自动挂载👺[以alist webdav 挂载为例]
        • 分析
        • 对策
        • 延迟挂载👺
        • Note
    • 访问已经挂载网络磁盘分区👺
      • 连接到局域网手机alist webdav
    • 添加一个网络位置
    • 网络驱动器和网络文件夹(位置)区别
    • 小结

windows@映射网络磁盘驱动器

资源管理器中GUI方式创建

  • windows11/windows10文档:在 Windows 中映射网络驱动器 - Microsoft 支持

命令行方式创建

  • Net use | Microsoft Learn

  • How to Use the Net Use Command in Windows (lifewire.com)

  • PS 🕰️20:40:38 [C:\Users\cxxu\Desktop] 🔋100% net use ?
    此命令的语法是:NET USE
    [devicename | *] [\\computername\sharename[\volume] [password | *]][/USER:[domainname\]username][/USER:[dotted domain name\]username][/USER:[username@dotted domain name][/SMARTCARD][/SAVECRED][/REQUIREINTEGRITY][/REQUIREPRIVACY][/WRITETHROUGH][/TRANSPORT:{TCP | QUIC} [/SKIPCERTCHECK]][/REQUESTCOMPRESSION:{YES | NO}][/GLOBAL][[/DELETE] [/GLOBAL]]]NET USE {devicename | *} [password | *] /HOMENET USE [/PERSISTENT:{YES | NO}]
    

命令行列出驱动器列表

  • 可以使用net use查询网络驱动器

    • PS 🕰️21:56:10 [C:\Users\cxxu\Desktop] 🔋100% net use
      不记录新的网络连接。状态       本地        远程                      网络-------------------------------------------------------------------------------A:        \\localhost@5244\dav\AliyunDriveWeb Client NetworkY:        \\localhost@5244\dav      Web Client Network
      OK           Z:        \\localhost\share         Microsoft Windows Network
      命令成功完成。
      
  • 或者 wmic 命令(Window Management Instrumentation Command-line)来列出所有已映射的网络驱动器

  • 执行:wmic logicaldisk get caption,providername

    • PS 🕰️20:49:10 [C:\Users\cxxu\Desktop] 🔋100% wmic logicaldisk get caption,providername
      Caption  ProviderName
      A:       \\localhost@5244\DavWWWRoot\dav\AliyunDrive
      C:
      D:
      X:       \\localhost@5244\DavWWWRoot\dav\AliyunDrive
      Y:       \\localhost@5244\DavWWWRoot\dav
      Z:       \\localhost\share
      
    • 运行上述命令后,会显示所有逻辑磁盘(包括本地磁盘和网络映射的驱动器)的名称以及提供程序名称。

    • 对于网络映射的驱动器,ProviderName通常会显示为远程计算机或网络共享的位置。

  • 查看更多信息:wmic logicaldisk get caption,description,providername,volumename,size,freespace

    • PS 🕰️21:05:14 [C:\Users\cxxu\Desktop] 🔋100% wmic logicaldisk get caption,description,providername,volumename,size,freespace
      Caption  Description   FreeSpace     ProviderName                                 Size          VolumeName
      A:       网络连接      364817272832  \\localhost@5244\DavWWWRoot\dav\AliyunDrive  489019002880
      C:       本地固定磁盘  364817272832                                               489019002880
      D:       本地固定磁盘  15071293440                                                20971515904   20G系统镜像盘(mini)
      X:       网络连接      364817272832  \\localhost@5244\DavWWWRoot\dav\AliyunDrive  489019002880
      Y:       网络连接      364817272832  \\localhost@5244\DavWWWRoot\dav              489019002880
      Z:       网络连接      364817272832  \\localhost\share                            489019002880
      
  • 另外,如果你只是想查看所有的驱动器(包括本地和网络映射),而不关心提供程序信息,可以简化命令为

    • wmic logicaldisk get caption
  • 其他关于磁盘的命令行工具:diskpart (主要操作本地磁盘和驱动器)

删除取消映射

  • 首先查询所有驱动器(分区)

    • PS 🕰️20:49:10 [C:\Users\cxxu\Desktop] 🔋100% wmic logicaldisk get caption,providername
      Caption  ProviderName
      A:       \\localhost@5244\DavWWWRoot\dav\AliyunDrive
      C:
      D:
      X:       \\localhost@5244\DavWWWRoot\dav\AliyunDrive
      Y:       \\localhost@5244\DavWWWRoot\dav
      Z:       \\localhost\share
      
    • 经过确认,假设我们要删除重复映射的A,X盘中的一个,比如我要删除X

  • 执行删除:net use [partition:] /delete

    • 这里将[partition]替换为目标盘符X

      PS 🕰️21:07:34 [C:\Users\cxxu\Desktop] 🔋100% net use X: /delete
      X: 已经删除。
      
  • 再次检查分区列表

    PS 🕰️21:07:50 [C:\Users\cxxu\Desktop] 🔋100% wmic logicaldisk get caption,providername
    Caption  ProviderName
    A:       \\localhost@5244\DavWWWRoot\dav\AliyunDrive
    C:
    D:
    Y:       \\localhost@5244\DavWWWRoot\dav
    Z:       \\localhost\share
    

持久化配置映射👺

  • 以alist挂载阿里云open为例

  • 上述配置是一次性的,如果我们要永久化配置(例如注销后重新登录到windows或者重启后仍然保留网络驱动器)

  • 可以借助/p:yes选项,使得配置持久化

    • PS 🕰️22:11:07 [C:\Users\cxxu\Desktop] 🔋100% net use W: http://localhost:5244/dav  /p:yes
      为“localhost”输入用户名: admin
      输入 localhost 的密码:
      命令成功完成。
      
  • 追加使用/savecred选项,之后不用输入用户名和密码

    • PS 🕰️0:28:19 [C:\Users\cxxu\Desktop] 🔋100% net use W: http://localhost:5244/dav  /p:yes /savecred命令成功完成。
      
  • 这对应于GUI操作勾选(默认勾选)登录时重新连接(目前仅保留资源管理器内的驱动器图标,需要手动确定连接)

    • 在这里插入图片描述
记住凭证
  • 重启后可能需要输入密码,点击记住凭证

    • 在这里插入图片描述
  • 注意密码一栏存在黑点字符,一般就是已经记住密码了,只不过黑点数量不一定和密码数量相等,直接点击确定就可以登录了(记住凭证这个选项在创建的时候勾选过一次就行,后续不需要反复勾选,直接确定登录)

  • Note:记住凭证(密码)不表示会自动登录,仍然需要我们点击确定才会建立连接(如果是本地的共享文件夹,不需要密码时登录系统可以自定建立网路驱动器)

FAQ

开机自启@登录系统后自动挂载👺[以alist webdav 挂载为例]

分析
  • 可能是因为windows的bug,(我在win11下配置的)后来无论怎么点击记住我的凭据,都无法顺利映射(连接服务器),即便服务器已经启动好了
  • 为例便于讨论,这里假设要将连接http://localhost:5244/dav挂载为W盘./p:yes表示每次登录都保留这个连接(如果可以的话)
  • 我尝试用命令行登录:net use W: http://localhost:5244/dav /p:yes,结果系统让我输入密码(正如前面展示的那样)
  • 考虑到之前保存过凭据,我追加/savecred,这次直接提示命令行执行完成(成功执行不报错);检查资源管理器中的映射网络分区处于已连接可用状态
    • Note:执行net use W: http://localhost:5244/dav /p:yes /savecred时,确保windows安全中心窗口已经被关闭了,否则会遇到执行错误(系统拒绝访问)
    • 其实在打开资源管理器或者访问挂载的网络分区之前,不会遇到拒绝错误(但是有可能遇到其他错误,比如网络和服务建立缓慢,而映射动作执行过早,就会遇到找不到目标的错误)
对策
  • 创建开机自启脚本(简单脚本,有时会因为网络和系统相应的原因,无法自动挂载,参考下一节延迟挂载)

    1. 先找到startup目录,里面可能有部分软件的快捷方式(系统会在开机时执行里面的软件或脚本)

    2. 在这个目录里创建一个文件(文本文件),内容为net use W: http://localhost:5244/dav /p:yes /savecred,文件名任意,后缀为bat即可

    3. 注意将这里的W:http://local...替换为自己的值即可

    4. 也可以考虑创建日志文件,用比较长的这一行代替net use W: http://localhost:5244/dav /p:yes /savecred > %userprofile%/desktop/MapLog.txt 2> %userprofile%/desktop/MapErrLog.txt(会在桌面生成2个日志文件,列出执行结果,如果MapErrLog.txt 为空,说明顺利执行了)

    5. 配置完是什么样的

      PS 🕰️1:16:43 [C:\Users\cxxu\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup] 🔋100% lsDirectory: C:\Users\cxxu\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\StartupMode                LastWriteTime         Length Name
      ----                -------------         ------ ----
      la---         2024/1/16     13:55           1041   alist_startup.lnk
      -a---         2024/2/11      1:03            121   MapCloudDrive.bat
      -a---         2024/1/16      1:29           1355   Snipaste.lnkPS 🕰️1:16:44 [C:\Users\cxxu\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup] 🔋100% cat .\MapCloudDrive.batnet use W: http://localhost:5244/dav  /p:yes /savecred
  • 如果挂载了多个盘,可以做类似的操作(可以写在同一个文件中)

  • 这样在网络顺畅等理想条件下,可以开机自动挂载好网络磁盘分区(驱动器)

延迟挂载👺
  • 如果设置了代理类软件开机自启,有可能会影响到网络磁盘的加载

  • 由于网络磁盘的顺利挂载依赖于已经顺利联网的alist成功建立服务(访问云盘资源),这个过程可能受到网络能否在开机时及时连通,否则执行挂载的命令不会成功

  • 这就是说,如果您经常遇到开机后无法自动挂载网路磁盘的情况,考虑在alist配置文件中配置延迟启动

  • 然后再配置开机自启的脚本退后执行,比如开机30秒后或者1分钟后执行

    • powershell提供了停留若干时间的功能
    • cmd可以用ping 若干次模拟停留
    • 除了开机自启目录中放置脚本,还可以考虑用windows的计划任务来做延迟开机自启
  • 配置挂载开关:如果愿意每次登录到系统后一段时间(比如30秒,确保alist服务,以及系统的相关服务完整启动就绪),然后手动执行映射也可以

    • 这里我们用powershell语言,同样将net use W: http://localhost:5244/dav /p:yes /savecred配置成一个脚本(或快捷方式),或powershell函数(别名)

    • 但是加入了自动重试映射的逻辑,通常能在10秒内成功映射,但有时可能会60秒甚至超过1分钟(但一般不会超过2分钟,因此请耐心等待)

    • 同样的,下面这个版本可以加入开机自启脚本中自动调用并重试来映射网络磁盘,直到成功后,自动关闭任务窗口;该脚本经过我本地测试,能够良好地工作(系统是windows11)

      • PS 🕰️10:58:29 AM [C:\repos\scripts] 🔋100% get_system_info_basicCaption                  Version    OSArchitecture BuildNumber
        -------                  -------    -------------- -----------
        Microsoft Windows 11 Pro 10.0.22631 64-bit         22631
        
  • 脚本内容

    • function map_alist_drive
      {param(#单位是秒$delay = 8)#根据需要自行修改盘符和端口号net use W: http://localhost:5244/dav /p:yes /savecredif (!$?){Write-Output '映射失败,等一会再映射(或者检查alist 服务是否正常)#这里我假设配置好检查逻辑 alist_home_page 调用)'# alist_home_pageWrite-Output "try again after $delay s... enter <ctrl+C> stop auto retry! 👺"Start-Sleep $delay#递归调用来重试map_alist_drive}#检查映射结果net use
      }function alist_home_page
      {Start-Process 'http://localhost:5244'#也可以用curl http://localhost:5244 |select -head 5 来检查服务是否启动 
      }
  • 每次只需要双击即可挂载;或者在命令行中调用映射函数完成映射

Note
  • 上述脚本会开机自动执行,会弹出一个cmd命令行窗口,可能会停留几秒钟,执行完毕会自动关闭
    • 不要手动关闭,除非它一直卡在哪里
    • 执行完打开资源管理器,顺利的话可以看到网络磁盘顺利挂载

访问已经挂载网络磁盘分区👺

  • 用命令行也可以直接访问已经挂载的网络磁盘分区,这里时linux风格的方式,区分字母大小写,并且无法使用路径补全提示

  • PS 🕰️1:56:30 [W:\AliyunDrive] 🔋100% lsDirectory: W:\AliyunDriveMode                LastWriteTime         Length Name
    ----                -------------         ------ ----
    da---         2024/1/14     20:58                  .
    da---         2024/1/14     20:58                  ..
    d----          2024/2/3     19:39                  来自:通义听悟
    

连接到局域网手机alist webdav

  • 在这里插入图片描述

添加一个网络位置

  • 在Windows操作系统中添加网络位置的步骤如下,这里以Windows 10系统为例:

    1. 打开文件资源管理器

      • 点击桌面左下角的“开始”按钮或按下键盘上的Win+E键打开“文件资源管理器”。
    2. 启动添加网络位置向导

      • 在“文件资源管理器”窗口左侧的导航窗格中找到并点击“此电脑”或者直接在地址栏上方点击“计算机”图标。
      • 右键点击空白区域,然后选择“添加一个网络位置”选项。
    3. 按照向导操作

      • 弹出的“添加网络位置向导”会引导你完成后续步骤。
      • 点击“下一步”继续。
      • 在接下来的界面中,选择“自定义网络位置”。
    4. 输入网络位置地址

      • 当提示你指定网络位置时,输入你要连接的网络共享、FTP站点或其他网络资源的URL或UNC路径(例如,对于网络共享可能是 \\server\sharename)。
    5. 完成配置

      • 根据向导提示设置名称(可选),点击“下一步”后,最后确认信息无误,点击“完成”按钮创建网络位置快捷方式。

    创建完成后,新添加的网络位置将出现在“此电脑”或“网络位置”列表中,方便你快速访问该网络资源。

网络驱动器和网络文件夹(位置)区别

  • 在这里插入图片描述

小结

  • 使用命令行工具net use来创建网络磁盘驱动器操作简单,但是理解net use的语法需要花点功夫
  • 例如创建永久性映射,有相应的记住凭证的选项

这篇关于windows@命令行映射磁盘驱动器若干方法@开机自动映射网络磁盘的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/709923

相关文章

SQL Server跟踪自动统计信息更新实战指南

《SQLServer跟踪自动统计信息更新实战指南》本文详解SQLServer自动统计信息更新的跟踪方法,推荐使用扩展事件实时捕获更新操作及详细信息,同时结合系统视图快速检查统计信息状态,重点强调修... 目录SQL Server 如何跟踪自动统计信息更新:深入解析与实战指南 核心跟踪方法1️⃣ 利用系统目录

Spring Security 单点登录与自动登录机制的实现原理

《SpringSecurity单点登录与自动登录机制的实现原理》本文探讨SpringSecurity实现单点登录(SSO)与自动登录机制,涵盖JWT跨系统认证、RememberMe持久化Token... 目录一、核心概念解析1.1 单点登录(SSO)1.2 自动登录(Remember Me)二、代码分析三、

Linux系统中查询JDK安装目录的几种常用方法

《Linux系统中查询JDK安装目录的几种常用方法》:本文主要介绍Linux系统中查询JDK安装目录的几种常用方法,方法分别是通过update-alternatives、Java命令、环境变量及目... 目录方法 1:通过update-alternatives查询(推荐)方法 2:检查所有已安装的 JDK方

SQL Server安装时候没有中文选项的解决方法

《SQLServer安装时候没有中文选项的解决方法》用户安装SQLServer时界面全英文,无中文选项,通过修改安装设置中的国家或地区为中文中国,重启安装程序后界面恢复中文,解决了问题,对SQLSe... 你是不是在安装SQL Server时候发现安装界面和别人不同,并且无论如何都没有中文选项?这个问题也

Java Thread中join方法使用举例详解

《JavaThread中join方法使用举例详解》JavaThread中join()方法主要是让调用改方法的thread完成run方法里面的东西后,在执行join()方法后面的代码,这篇文章主要介绍... 目录前言1.join()方法的定义和作用2.join()方法的三个重载版本3.join()方法的工作原

MyBatis-Plus 自动赋值实体字段最佳实践指南

《MyBatis-Plus自动赋值实体字段最佳实践指南》MyBatis-Plus通过@TableField注解与填充策略,实现时间戳、用户信息、逻辑删除等字段的自动填充,减少手动赋值,提升开发效率与... 目录1. MyBATis-Plus 自动赋值概述1.1 适用场景1.2 自动填充的原理1.3 填充策略

在MySQL中实现冷热数据分离的方法及使用场景底层原理解析

《在MySQL中实现冷热数据分离的方法及使用场景底层原理解析》MySQL冷热数据分离通过分表/分区策略、数据归档和索引优化,将频繁访问的热数据与冷数据分开存储,提升查询效率并降低存储成本,适用于高并发... 目录实现冷热数据分离1. 分表策略2. 使用分区表3. 数据归档与迁移在mysql中实现冷热数据分

Spring Boot从main方法到内嵌Tomcat的全过程(自动化流程)

《SpringBoot从main方法到内嵌Tomcat的全过程(自动化流程)》SpringBoot启动始于main方法,创建SpringApplication实例,初始化上下文,准备环境,刷新容器并... 目录1. 入口:main方法2. SpringApplication初始化2.1 构造阶段3. 运行阶

Olingo分析和实践之ODataImpl详细分析(重要方法详解)

《Olingo分析和实践之ODataImpl详细分析(重要方法详解)》ODataImpl.java是ApacheOlingoOData框架的核心工厂类,负责创建序列化器、反序列化器和处理器等组件,... 目录概述主要职责类结构与继承关系核心功能分析1. 序列化器管理2. 反序列化器管理3. 处理器管理重要方

Python错误AttributeError: 'NoneType' object has no attribute问题的彻底解决方法

《Python错误AttributeError:NoneTypeobjecthasnoattribute问题的彻底解决方法》在Python项目开发和调试过程中,经常会碰到这样一个异常信息... 目录问题背景与概述错误解读:AttributeError: 'NoneType' object has no at