q03043123 2023-05-15 11:08 采纳率: 0%
浏览 76
已结题

WNetAddConnection2如何确定协议名称(SMB / CIFS,NFS)和版本

如何确定Windows上已安装的网络驱动器的协议名称(SMB / CIFS,NFS)和版本?
使用WNetAddConnection2连接共享文件夹,安全要求需要使用SMBv3协议,如何实现?怎么确定连接使用的什么协议?看参数没有设置协议的地方?

WNetGetNetworkInformation函数可以返回网络协议信息吗,该如何如使用?
C#代码如何实现?

  • 写回答

7条回答 默认 最新

  • 肩匣与橘 游戏开发领域新星创作者 2023-05-15 12:07
    关注
    获得9.90元问题酬金

    1.打开“控制面板”->“程序和功能”,找到“Windows 功能”选项,展开“SMB 1.0/CIFS 文件共享支持”、“SMB 直接主机”和“SMB 1.0/CIFS 自动装载”等选项,查看是否已勾选,如果勾选则表示已安装相应协议版本。
    2.打开“命令提示符”,输入“sc query rdr”,查看“TYPE”一栏中的值,如果为“FILE_SYSTEM_DRIVER”,则表示已安装“Redirected Drive Buffering SubSystem”(RDBSS)驱动,该驱动支持SMB协议。
    3.打开“注册表编辑器”,找到“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters”键,查看“SMB1”和“SMB2”值,如果值为“1”,则表示已启用相应的SMB协议版本。关于使用WNetAddConnection2连接共享文件夹,安全要求需要使用SMBv3协议的问题,可以通过设置连接选项来实现。具体方法如下:
    创建一个NETRESOURCE结构体,设置相应的参数,如远程共享文件夹路径、用户名和密码等。
    创建一个CONNECTDLGSTRUCT结构体,设置相应的连接选项,如SMB版本为3.0、加密等级为AES128-CCM等。
    调用WNetAddConnection2函数,将NETRESOURCE和CONNECTDLGSTRUCT结构体作为参数传入,即可建立使用SMBv3协议的共享文件夹连接。
    4.关于如何确定连接使用的是什么协议,可以通过以下方法:
    打开“命令提示符”,输入“net use”,查看已建立的连接列表,如果连接使用的是SMBv3协议,则在“类型”一栏中会显示“Microsoft Windows Network”。
    打开“资源监视器”,找到“网络”选项卡,查看“协议”一栏中的值,如果为“SMB 3.X”,则表示连接使用的是SMBv3协议。如果为“NFS”,则表示连接使用的是NFS协议。
    5.关于WNetGetNetworkInformation函数可以返回网络协议信息的问题,该函数可以返回与网络相关的信息,如计算机名、域名、网络连接状态等,但不能返回网络协议信息。如果需要获取网络协议信息,可以使用其他方法,如上述方法中的“命令提示符”和“资源监视器”。

    评论

报告相同问题?

问题事件

  • 系统已结题 5月23日
  • 修改了问题 5月16日
  • 创建了问题 5月15日

悬赏问题

  • ¥15 Uni-App实现飞书授权登陆
  • ¥50 Qt应用中如何通过代码打开开发者工具devtools
  • ¥20 mpp硬解码h264转为yuv
  • ¥40 怎样批量对比两个数据库的表差异
  • ¥60 具体分析这篇MVC结构springboot框架的安利代码
  • ¥15 lettuce连接哨兵redis,主从切换异常
  • ¥15 ubuntu出现以下问题
  • ¥15 R语言 survIDINRI包已将生存时间转为数值变量,仍错误 Time variable is not numeric。
  • ¥15 在Starccm中相变材料的物理模型该如何选择?
  • ¥15 关于#android#的问题,请各位专家解答!