2010-03-01 118 views
0

我登录到工作组MSHOME并需要访问域“xxx.local”上的服务器pc的命名列表。NetServerEnum:在工作组上的域上的服务器列表

我已经试过这样:

 const int MAX_PREFERRED_LENGTH = -1; 
     int SV_TYPE_WORKSTATION = 1; 
     int SV_TYPE_SERVER = 2; 
     IntPtr buffer = IntPtr.Zero; 
     IntPtr tmpBuffer = IntPtr.Zero; 
     int entriesRead = 0; 
     int totalEntries = 0; 
     int resHandle = 0; 
     int sizeofINFO = Marshal.SizeOf(typeof(_SERVER_INFO_100)); 

     int ret = NetServerEnum(null, 100, ref buffer, MAX_PREFERRED_LENGTH, 
      out entriesRead, out totalEntries, SV_TYPE_WORKSTATION | SV_TYPE_SERVER, 
      "xxx.local", out resHandle); 

...但得到一个返回值6118(没有找到浏览器服务器)。当我使“xxx.local”null应该至少返回1个服务器(我自己的PC)时,这也会发生?

回答

0

确定我想通看来:

INT RET = NetServerEnum(空,100,参考缓冲器,MAX_PREFERRED_LENGTH, 出entriesRead,出为totalEntries,SV_TYPE_WORKSTATION | SV_TYPE_SERVER, “xxx.local”,出resHandle );

...是访问另一个域或工作组上的计算机列表的正确用法。 xxx.local作为域名返回,但是xxx返回了我所需要的。您也可以在命令提示符下使用net view/domain:xxx进行测试。

相关问题