You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过CMD修改网络驱动器名称?C#实现遇参数不兼容错误

网络驱动器重命名“参数不兼容”错误解决办法

问题根源

你用label命令修改网络驱动器名称时触发错误,是因为**label命令仅支持本地磁盘卷**,无法作用于网络映射驱动器,所以会提示“参数不兼容”。

可行解决方案

以下两种C#实现方式可以正确修改网络驱动器的显示名称:

方案1:WMI 实现

借助WMI的Win32_NetworkConnection类直接修改网络连接的名称属性:

using System.Management;

public void RenameNetworkDrive(char driveLetter, string newName)
{
    string drivePath = $"{driveLetter}:";
    var searcher = new ManagementObjectSearcher(
        $"SELECT * FROM Win32_NetworkConnection WHERE LocalName = '{drivePath}'"
    );

    foreach (ManagementObject connection in searcher.Get())
    {
        connection["ConnectionName"] = newName;
        connection.Put();
        MessageBox.Show($"网络驱动器 '{drivePath}' 已重命名为 '{newName}'");
        return;
    }

    MessageBox.Show($"未找到目标网络驱动器 '{drivePath}'");
}

注意:需要添加System.Management程序集引用,且程序需以管理员权限运行。

方案2:Shell32 COM 实现

通过Windows Shell的COM接口修改,逻辑和资源管理器重命名一致,无需管理员权限:

using Shell32;

public void RenameNetworkDriveViaShell(char driveLetter, string newName)
{
    var shell = new Shell();
    var driveFolder = shell.NameSpace($"{driveLetter}:");
    
    if (driveFolder != null)
    {
        driveFolder.Self.Name = newName;
        MessageBox.Show($"网络驱动器 '{driveLetter}:' 已重命名为 '{newName}'");
    }
    else
    {
        MessageBox.Show($"未找到目标网络驱动器 '{driveLetter}:'");
    }
}

注意:需要添加对Microsoft Shell Controls And Automation(Shell32.dll)的COM引用。

原代码问题说明

你之前调用label命令的思路有误,该命令仅用于修改本地磁盘的卷标,不适用于网络映射驱动器,因此必然会返回错误。替换为上述任一方案即可解决问题。

内容的提问来源于stack exchange,提问作者Hugo Jiménez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 04:20:06