2016-05-26 3 views
1

類似した検索を試みましたが、見つかりませんでした。ユーザー名とパスワードのリモートマシンでC#を使用してファイルの詳細を取得する方法

バージョン、日付などの詳細情報を問い合わせたいリモートマシン上にファイルがあります そのマシンの認証情報を入力する必要がある場合、どうすればいいですか? FileVersionInfoはそうするためのオプションを提供していません。

おかげ

アップデート:私はFIleVersionInfoは(ともそれを試してみました)私を与え、それが私のために動作しませんどのようにチェックの上に私が言ったように

。 私はまた、WMIを使用してみましたし、失敗しました(それは私が必要とする方向のように見えたが) は、ここに私が試したWMIコードです - haven`tはずっと遠くなった:

var computerName = "IP_ADDRESS"; 
      ConnectionOptions conn = new ConnectionOptions(); 
      conn.Username = "username"; 
      conn.Password = "password"; 
      conn.Authority = "ntlmdomain:DOMAIN"; 
      conn.Impersonation = ImpersonationLevel.Impersonate; 
      conn.EnablePriviledges = true; 
      var scope = new ManagementScope(String.Format("\\\\{0}\\root\\CIMV2", computerName), conn); 


      scope.Connect(); 
      string Drive = "c:"; 
      string Path = "\\\\inetpub\\\\wwwroot\\\\FOLDER\\\BIN\\\File.dll"; 

      ObjectQuery Query = new ObjectQuery(string.Format("SELECT * FROM CIM_DataFile Where Drive='{0}' AND Path='{1}' ", Drive, Path)); 

      ManagementObjectSearcher Searcher = new ManagementObjectSearcher(scope, Query); 

      foreach (ManagementObject WmiObject in Searcher.Get()) 
      { 
       Console.WriteLine("{0}", (string)WmiObject["Name"]);// String 
      } 

私は主にファイルのプロパティのバージョンを必要とし、日付。

おかげ

+1

にファイルを取得するために使用するコードです。あなたの質問に答えなかった理由を明示的に説明してください。 –

+0

可能な複製:http://stackoverflow.com/questions/2417878/read-file-on-a-remote-server – SunilA

+0

あなたのWMIコードは失敗しますか?私はこれまでに遊んだことがあり、それができることを知っています。 WMIコードで次のフラグを設定しようとしましたか? [偽装](https://msdn.microsoft.com/en-us/library/system.management.connectionoptions.impersonation.aspx) および[EnablePrivileges](https://msdn.microsoft.com/en-us) /image/system.management.connectionoptions.enableprivileges.aspx) – Draken

答えて

1

I`ve上記@DrakenのコメントのおかげでConnectionOptionsに不足しているプロパティを追加しても、ドメイン名に私のミスを修正。ここで

は、私は私たちにあなたの研究をご提示くださいネットワークPC

var computerName = "IP_ADDRESS"; 
     ConnectionOptions conn = new ConnectionOptions(); 
     conn.Username = "username"; 
     conn.Password = "password"; 
     conn.Authority = "ntlmdomain:DOMAIN"; 
     conn.Impersonation = ImpersonationLevel.Impersonate; 
     conn.EnablePriviledges = true; 
     var scope = new ManagementScope(String.Format("\\\\{0}\\root\\CIMV2", computerName), conn); 


     scope.Connect(); 
     string Drive = "c:"; 
     string Path = "\\\\inetpub\\\\wwwroot\\\\FOLDER\\\BIN\\\File.dll"; 

     ObjectQuery Query = new ObjectQuery(string.Format("SELECT * FROM CIM_DataFile Where Drive='{0}' AND Path='{1}' ", Drive, Path)); 

     ManagementObjectSearcher Searcher = new ManagementObjectSearcher(scope, Query); 

     foreach (ManagementObject WmiObject in Searcher.Get()) 
     { 
      Console.WriteLine("{0}", (string)WmiObject["Name"]);// String 
     } 
関連する問題