2016-08-18 38 views
0

因此,我有一些代碼來查詢特定計算機對象的多個域並將結果輸出到csv。這是我的代碼。查詢計算機對象的多個域

class Program 
{ 
    static void Main(string[] args) 
    { 
     try 
     { 
      string log = "C:\\Users\\User\\Desktop\\New.csv"; 

      using (FileStream file = new FileStream(log, FileMode.Append, FileAccess.Write)) 
      { 
       StreamWriter writer = new StreamWriter(file); 

       var domains = File.ReadLines("C:\\Users\\User\\Desktop\\domains.csv"); 

       foreach (var line in domains) 
       { 
        PrincipalContext AD = new PrincipalContext(ContextType.Domain, line.ToString()); 
        ComputerPrincipal query = new ComputerPrincipal(AD); 
        query.Name = "COMPNAME"; 

        PrincipalSearcher search = new PrincipalSearcher(); 
        search.QueryFilter = query; 

        ComputerPrincipal result = (ComputerPrincipal)search.FindOne(); 

        if (result != null) 
        { 
         writer.WriteLine(result.DistinguishedName); 
        } 
       } 
      } 
     } 

     catch (Exception ex) 
     { 
      Console.WriteLine(ex.ToString()); 
      Console.ReadLine(); 
     } 
    } 
} 

domains.csv文件包含我們所有的10個域。 result總是顯示爲null。我錯過了什麼?

編輯:對不起,夥計們。代碼工作正常。這是作家未能創建CSV。

+1

當你實際上通過代碼設置斷點vs只是運行它時發生了什麼?..?你能告訴我們實際的.csv文件的內容是什麼樣子..? – MethodMan

+0

我剛剛用控制檯寫入代替作家,它工作正常。需要修復作家。 – maltman

+1

您還需要更換此行'Console.WriteLine(ex.ToString());'與 'Console.WriteLine(ex.Mesage);' – MethodMan

回答

1

代碼沒有問題。這是我的作家有這個問題。我用這個替換了我的作家

using (TextWriter writer = new StreamWriter(log))