2012-09-28 59 views
1

我正在使用C#在遠程計算機上調用GetVolumeInformation。我可以很容易地打開遠程硬盤,因爲有一個默認的共享設置c $或其他。但是,CD/DVD沒有默認設置。如何使用PInvoke調用或其他方式讀取遠程CD/DVD驅動器?使用PInvoke捕獲遠程計算機的光盤信息

如果我不能用C#做到這一點,我總是可以使用PowerShell或WMI。

回答

2

WMI允許您在沒有問題的情況下獲取遠程機器的系統信息,只需要您需要set the remote WMI access in the machine並使用有效的用戶和密碼。在這種情況下,您可以使用Win32_LogicalDiskWin32_CDROMDrive類來檢索您需要的信息。

試試這個C#示例。

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

namespace GetWMI_Info 
{ 
    class Program 
    { 

     static void Main(string[] args) 
     { 
      try 
      { 
       string ComputerName = "localhost";//set the remote machine name here 
       ManagementScope Scope;     

       if (!ComputerName.Equals("localhost", StringComparison.OrdinalIgnoreCase)) 
       { 
        ConnectionOptions Conn = new ConnectionOptions(); 
        Conn.Username = "";//user 
        Conn.Password = "";//password 
        Conn.Authority = "ntlmdomain:DOMAIN"; 
        Scope = new ManagementScope(String.Format("\\\\{0}\\root\\CIMV2", ComputerName), Conn); 
       } 
       else 
        Scope = new ManagementScope(String.Format("\\\\{0}\\root\\CIMV2", ComputerName), null); 

       Scope.Connect(); 
       ObjectQuery Query = new ObjectQuery("SELECT * FROM Win32_CDROMDrive"); 
       ManagementObjectSearcher Searcher = new ManagementObjectSearcher(Scope, Query); 

       foreach (ManagementObject WmiObject in Searcher.Get()) 
       { 
        Console.WriteLine("{0,-35} {1,-40}","DeviceID",WmiObject["DeviceID"]);// String 
        Console.WriteLine("{0,-35} {1,-40}","Drive",WmiObject["Drive"]);// String 

       } 
      } 
      catch (Exception e) 
      { 
       Console.WriteLine(String.Format("Exception {0} Trace {1}",e.Message,e.StackTrace)); 
      } 
      Console.WriteLine("Press Enter to exit"); 
      Console.Read(); 
     } 
    } 

} 
1

使用Powershell和WMI。

試試這個:

Get-WmiObject -computername MyremotePC Win32_CDROMDrive | Format-List * 

你需要遠程計算機上的管理憑證。

您可以在PowerShell中使用Add-Type(某些示例here)將其添加爲類型GetVolumeInfomation

如果您嘗試讀取未共享的遠程CD/DVD的磁盤上的數據,我不知道任何方式來執行此操作。

相關問題