Inicio > Programacion > ¿Cómo encontrar todas las impresoras en el Active Directory?

¿Cómo encontrar todas las impresoras en el Active Directory?

viernes, 15 de marzo de 2024 Dejar un comentario Ir a comentarios

Si alguna vez quieres hacer una impresión a escala masiva, es necesario encontrar todas las impresoras en Active Directory, no sólo las que están conectados a su ordenador. Por extraño que parezca, el método para encontrar no es trivial. El código esta en C# y funciona en Visual Studio 2008.

private void FindAllPrinters()
{
     string[] wantedProps = { "name", "servername", "printername", 
                              "drivername", "shortservername", "location" };
     var ds = new DirectorySearcher { Filter = "(objectClass=printqueue)" };
     foreach (SearchResult sr in ds.FindAll())
     {
          Debug.WriteLine(sr.Path);
          ResultPropertyCollection rpc = sr.Properties;
          // usa rpc.PropertyNames en lugar de wantedProps si quieres 
          // conocer mas acerca de las impresoras  
          foreach (string property in wantedProps)
          {
               foreach (object value in rpc[property])
               Debug.WriteLine(string.Format("\t{0}: {1}", property, value));
          }
       }
 }

Ten en cuenta que es necesario agregar una referencia a System.DirectoryServices. También hay que tener en cuenta que el código busca todas las impresoras de tu dominio. Si tienes muchos dominios en la organización, tendrás que obtener la lista y crear una instancia de clase DirectorySearcher por separado para cada uno.

Comparte y diviertete:
  • Print
  • Digg
  • StumbleUpon
  • del.icio.us
  • Facebook
  • Yahoo! Buzz
  • Twitter
  • Google Bookmarks
  • BarraPunto
  • Bitacoras.com
  • BlinkList
  • Blogosphere
  • Live
  • Meneame
  • MSN Reporter
  • MySpace
  • RSS
  • Suggest to Techmeme via Twitter
  • Technorati
  • LinkedIn
  • email
  • FriendFeed
  • PDF
  • Reddit
  • Wikio IT
  • Add to favorites
  • blogmarks
Top Footer