使用WMI无法访问映射的网络驱动器

时间:2010-01-08 09:39:16

标签: c# winforms mapping wmi

我有两台机器,Say Machine1和Machine2。我已将Machine1中的Machine2中的一个共享文件夹映射为Z. 我开始一个应用程序说App1列出了所有机器驱动器,应用程序在Machine1中。我从Machine1启动了这个App1,我得到了所有的驱动器 包括映射的驱动器'Z'。但是当我使用WMI [Windows Management Instrumentation]从Machine2启动了Machine1中的App1时。用于WMI通信的代码如下所示。 App1列出除映射的网络驱动器“Z”之外的所有驱动器。 有没有办法列出Machine1的所有驱动器,即使我使用WMI从Machine2启动App1。

// Code to start application on remote machine.
ManagementPath path =     new ManagementPath( string.Format( @"\\{0}\root\cimv2:Win32_Process", machine ) );
try
{
    // Connect options include user name and password of the remote machine to connect.
    ConnectionOptions options = new ConnectionOptions();
    options.Username = UserName;
    options.Password = Password;

    ManagementPath path =  new ManagementPath( string.Format( @"\\{0}\root\cimv2:Win32_Directory", machine ) );
    ManagementScope scope = new ManagementScope( path, options );
    if( scope != null )
    {
        ObjectGetOptions getOptions = new ObjectGetOptions();
        ManagementClass cimInstance = new ManagementClass( scope, path, getOptions );

        // Fill the necessary parameters for Create method of Win32 Process.
        ManagementBaseObject inParams = cimInstance.GetMethodParameters( "Create" );

        // Commandline is the full path of the application including the exe name.
        inParams["CommandLine"] = commandLine;

        // Execute the method and obtain the return values.
        cimInstance.InvokeMethod( "Create", inParams, null );
    }
}

我尝试使用.Net 2.0 Windows。

1 个答案:

答案 0 :(得分:0)

映射驱动器是每用户设置。当您从其他计算机运行该应用程序时,它可能使用不同的用户帐户。