2016-08-18 50 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))