aroky2010 2023-03-25 15:22 采纳率: 33.3%
浏览 94
已结题

使用wnetaddconnect2连接linux环境下的NFS-Server的共享目录

大猿们好,小猿现在遇到一个问题。
在Linux环境下部署NFS-Server端的服务,指定一个共享的目录,例如:共享目录/home/nfs_test。
在window环境下使用WNetAddConnection2()的接口,打算将NFS的共享目录挂载到Windows的环境下的Z:
主要的代码如下:

NETRESOURCE res = {0};
res.dwType = RESOURCETYPE_ANY;
res.lpLocalName = _T("Z:"); 
res.lpRemoteName = _T("\\\\192.168.58.16\\home\\nfs_test");
res.lpProvider = NULL;
DWORD dwRet = WNetAddConnection2(&res, _T("12345"), _T("admin1"), 0); 

最终的执行结果不成功,dwRet的返回值为66,查询得知ERROR_BAD_DEV_TYPE,但是并没有找到有效的解决办法。
补充:
使用window自带的映射网络驱动器功能,来实现挂载linux环境的nfs共享目录也是成功的。

img

img

补充:
window的环境下,在cmd中使用命令行:net use Z: \192.168.58.16\home\nfs_test 12345 /user:admin1
命令行执行成功,共享目录能够成功挂载到window的Z:
如果使用 ret = system(LPCSTR("net use Z: \\192.168.58.16\home\nfs_test 12345 /user:admin1"));
在代码中调用system函数去执行,却是失败的。

不知道有没有大猿遇到过这方面的问题,希望指点指点,感激不尽了。

  • 写回答

6条回答 默认 最新

  • 码咔吧咔 2023-03-25 15:45
    关注

    该回答参考自GTP,望采纳;
    您好,根据您提供的情况,可能是以下原因导致WNetAddConnection2()接口返回ERROR_BAD_DEV_TYPE:
    您指定的本地设备类型不正确。对于NFS共享,本地设备类型应该是RESOURCETYPE_DISK。
    您的操作系统可能不支持指定的本地设备类型。请确保您的操作系统支持NFS挂载并使用WNetAddConnection2()函数。
    您的NFS服务器可能没有正确地配置NFS共享。请确保您的NFS服务器已正确配置共享,并在客户端上测试它是否正常工作。
    对于第一种情况,您需要将NETRESOURCE结构体中的dwType成员设置为RESOURCETYPE_DISK,表示将共享目录映射为磁盘驱动器。
    对于第二种情况,您可以尝试在您的操作系统中启用NFS功能,或者使用其他支持NFS挂载的函数。
    对于第三种情况,您可以在客户端上测试NFS共享是否正常工作,例如使用mount命令手动挂载NFS共享。
    对于使用system函数调用命令行执行net use命令失败的情况,可能是因为命令行的执行权限不够或者路径错误。您可以尝试使用完整的路径或者以管理员身份运行命令行。同时,也可以在代码中调用CreateProcess()函数来执行命令行。

    评论

报告相同问题?

问题事件

  • 系统已结题 4月2日
  • 赞助了问题酬金50元 3月27日
  • 修改了问题 3月25日
  • 创建了问题 3月25日

悬赏问题

  • ¥15 远程访问linux主机超时
  • ¥15 odoo17存货管理优势于中国国内该行业传统ERP或MES的详细解读和举例
  • ¥15 CPU卡指令整合指令数据都在图片上
  • ¥15 火车票关联12306问题
  • ¥15 odoo17处理受托加工产品
  • ¥15 如何用MATLAB编码图三的积分
  • ¥15 圆孔衍射光强随孔径变化
  • ¥15 MacBook pro m3max上用vscode运行c语言没有反应
  • ¥15 ESP-PROG配置错误,ALL ONES
  • ¥15 结构功能耦合指标计算