Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
?
Solved

How to get the names of all printers in a network (intranet) in a asp.net web app.

Posted on 2008-06-23
10
Medium Priority
?
429 Views
Last Modified: 2013-12-16
How to get the names of all printers in a network (intranet) in a asp.net, c#.net  web app.

I have used the following code. but It only returns the name of printers installed on the server machine.
         System.Drawing.Printing.PrinterSettings.InstalledPrinters;
But I want all the printers available on a intranet network. which may or  may not be installed on a server machine.
0
Comment
Question by:techprocess
  • 2
  • 2
  • 2
  • +2
8 Comments
 
LVL 3

Author Comment

by:techprocess
ID: 21853277
I have tried this code. But it only gives the names of the printers installed on server computer. And not on the intranet.
using System.Management;
 
public void fn(){
// Use the ObjectQuery to get the list of configured printers
        System.Management.ObjectQuery oquery =
            new System.Management.ObjectQuery("SELECT * FROM Win32_Printer");
 
        System.Management.ManagementObjectSearcher mosearcher =
            new System.Management.ManagementObjectSearcher(oquery);
 
        System.Management.ManagementObjectCollection moc = mosearcher.Get();
 
        foreach (ManagementObject mo in moc)
        {
            System.Management.PropertyDataCollection pdc = mo.Properties;
            foreach (System.Management.PropertyData pd in pdc)
            {
                if ((bool)mo["Network"])
                {
                    ddlPrinter.Items.Add(Convert.ToString(mo[pd.Name]));
                }
            }
        }
}

Open in new window

0
 
LVL 7

Expert Comment

by:maXXXeE
ID: 21853408
I am not aware of any direct way to query all the printers in the network, specially if these are connected to computer via USB instead of directly connected to network via lan.

But you can do a workaround.

You can write a small app and run it as a service in client machines.
Then you can get the info in either of the 2 ways
1) Query each of these apps from your server when required
or
2) Let the app send or periodically update the printer details to the server via web service.
0
Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

 
LVL 7

Expert Comment

by:maXXXeE
ID: 21853550
Another way, is to install remote printer drivers of all the printers in the intranet.
This might not be possible always based on the network environment.

In this case you can use the above code to get the printer and also do any printing tasks from the server.
0
 
LVL 70

Accepted Solution

by:
Éric Moreau earned 1000 total points
ID: 21855442
0
 
LVL 14

Assisted Solution

by:Dustin Hopkins
Dustin Hopkins earned 1000 total points
ID: 21855871
I use this in a console application, but it wouldn't take much to port it into a web app
This returns "servername-printername"

{ 
    DirectoryServices.DirectoryEntry deParent = new DirectoryServices.DirectoryEntry(); 
    deParent.Username = SvcAcct; // Domain account username
    deParent.Password = SvcPass; // Domain account password
    deParent.AuthenticationType = DirectoryServices.AuthenticationTypes.Secure; 
    DirectoryServices.DirectorySearcher ds = new DirectoryServices.DirectorySearcher(deParent); 
    ds.Filter = "(&(ObjectCategory=printQueue))"; 
    foreach (DirectoryServices.SearchResult result in ds.FindAll()) { 
        Console.WriteLine(result.GetDirectoryEntry().Name); //<-- this is where you would change to response.write/import row into dataset ect.
    } 
} 

Open in new window

0
 
LVL 14

Expert Comment

by:Dustin Hopkins
ID: 21855936
Oh yeah, forgot to mention, that will only return all printers that are published in active directory/shared.
0
 
LVL 5

Expert Comment

by:rendaduiyan
ID: 21862956
i am glad it helps. I've ever had a task to list all printer but cancelled. This is what i remember.
0

Featured Post

[Webinar On Demand] Database Backup and Recovery

Does your company store data on premises, off site, in the cloud, or a combination of these? If you answered “yes”, you need a data backup recovery plan that fits each and every platform. Watch now as as Percona teaches us how to build agile data backup recovery plan.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

For those of you who don't follow the news, or just happen to live under rocks, Microsoft Research released a beta SDK (http://www.microsoft.com/en-us/download/details.aspx?id=27876) for the Xbox 360 Kinect. If you don't know what a Kinect is (http:…
International Data Corporation (IDC) prognosticates that before the current the year gets over disbursing on IT framework products to be sent in cloud environs will be $37.1B.
Loops Section Overview
Is your OST file inaccessible, Need to transfer OST file from one computer to another? Want to convert OST file to PST? If the answer to any of the above question is yes, then look no further. With the help of Stellar OST to PST Converter, you can e…
Suggested Courses
Course of the Month11 days, 2 hours left to enroll

571 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question