C# 使用WMI装载网络驱动器

C# 使用WMI装载网络驱动器,c#,.net,wmi,sysadmin,C#,.net,Wmi,Sysadmin,正在尝试编写WMI类函数,以便使用登录计算机的凭据在任何计算机(远程或本地)上装载网络驱动器 这是我为帮助台工作人员编写的一个更大项目的一个类,用于在远程PC上进行一线修复。tech输入机器名称或ip地址,应用程序连接到它,允许tech单击几个按钮并修复一些基本项目,而无需将远程(VNC)连接到PC 我在互联网上读到,这比WMI简单得多,但由于应用程序的远程性质,我宁愿不使用本地API调用,也不想担心上传脚本并在进程启动时执行。另外,WMI中已经有其他函数,因此我希望代码库保持不变 基本思想是将

正在尝试编写WMI类函数,以便使用登录计算机的凭据在任何计算机(远程或本地)上装载网络驱动器

这是我为帮助台工作人员编写的一个更大项目的一个类,用于在远程PC上进行一线修复。tech输入机器名称或ip地址,应用程序连接到它,允许tech单击几个按钮并修复一些基本项目,而无需将远程(VNC)连接到PC

我在互联网上读到,这比WMI简单得多,但由于应用程序的远程性质,我宁愿不使用本地API调用,也不想担心上传脚本并在进程启动时执行。另外,WMI中已经有其他函数,因此我希望代码库保持不变

基本思想是将
H:
装载到
//fileserver.example.com/$username

NetFixer已经在生产中使用了,所以我试图保持我的代码整洁

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Management;

namespace WMIcontrols
{
  public class Remote
  {

   public string target;

   //Some code skipped here for simplicity sake... 

   public bool MountNetDrive(string DriveLetter, string MountLocation)
    {
      try
      {
          //Mount the network drive
          return true;
      }
      catch
      {
          //Mount Failed
          return false;
      }
    }
  }
}


这不是使用WMI,但将实现您想要的,而且非常简单

System.Diagnostics.Process.Start("cmd", "/c net use x: \\fileserver.example.com /user:Username Password");

如果我弄错了,请原谅,但您的问题是什么?如何不使用本地API,然后在.Net中编写一个完整的类来执行您想要的操作?我的意思是,当一个简单的
网络使用/p:yes h:\\fileserver.example.com\$username
是一行代码时,事情似乎变得非常复杂。我该怎么做呢。我已经在谷歌上搜索了一段时间,我能想到的就是更容易使用WScript.Network对象。我发现很多帖子说它更简单,但没有提示如何在WMI中实现。是的,但这个应用程序运行在一台与用户通电话的技术计算机上。