Solved

c# WMI authentication problem

Posted on 2008-06-16
7
949 Views
Last Modified: 2013-12-17
Hi,
I am attempting a software and hardware inventory over our network, Novell sitting on top of AD (that's about all I know about the network setup). I am using a Windows application with C# and WMI services (.NET 2.0). I can list the services of the local machine with no problems, but I get the following error when trying to authenticate on a remote coomputer with the user as the local Administrator and the matching password. I have tried placing the name of the computer before the username (machinename\Administrator), but get the same error.

Could not connect to server! Cannot open SCardSvr service on computer 'computername'
0
Comment
Question by:brentself
  • 4
  • 3
7 Comments
 
LVL 96

Expert Comment

by:Bob Learned
ID: 21798529
Are you using a ManagementScope instance, with connect options for the user name and password?
0
 

Author Comment

by:brentself
ID: 21805706
Yep, here's the code

I think I have discovered that the user used for authentication must have domain admin privileges, where I was using a user that is the Administrator on the local box I was attempting to profile. I don't have these privileges and am looking for a way to just read the data without getting a new user with domain admin rights created for me (corporate red tape). I don't need to install software or get services, just want to inventory the software and hardware, serials, licenses, etc.

Thanks
address = "\\\\" + address + "\\root\\cimv2";
 

                ManagementScope oMs;

                if (tbUser.Text != "" && tbPass.Text != "")

                {

                    ConnectionOptions oConn = new ConnectionOptions();
 

                    oConn.Username = tbUser.Text;

                    oConn.Password = tbPass.Text;
 

                    oMs = new ManagementScope(address, oConn);

                }

                else

                {

                    oMs = new ManagementScope(address);

                }
 

                ObjectQuery oQuery = new ObjectQuery("select * from Win32_Product");
 

                ManagementObjectSearcher oSearcher = new ManagementObjectSearcher(oMs, oQuery);
 

                //Get the results

                ManagementObjectCollection oReturnCollection = oSearcher.Get();

Open in new window

0
 
LVL 96

Expert Comment

by:Bob Learned
ID: 21811996
Can you run other queries, or do they all fail with the same error?
0
3 Use Cases for Connected Systems

Our Dev teams are like yours. They’re continually cranking out code for new features/bugs fixes, testing, deploying, testing some more, responding to production monitoring events and more. It’s complex. So, we thought you’d like to see what’s working for us.

 

Author Comment

by:brentself
ID: 21814886
I can run other (any) queries on my local machine, just not on other machines on the network. I tried to query services (actually not through WMI), disk usage, processor and installed software. All get the same error.
0
 
LVL 96

Accepted Solution

by:
Bob Learned earned 500 total points
ID: 21815494
That is not an error that you can get around without having user credentials that are allowed access to the remote machine.
0
 

Author Comment

by:brentself
ID: 21818469
Thanks for confirming
0
 

Author Closing Comment

by:brentself
ID: 31467685
took to long, i found the answer myself while waiting
0

Featured Post

3 Use Cases for Connected Systems

Our Dev teams are like yours. They’re continually cranking out code for new features/bugs fixes, testing, deploying, testing some more, responding to production monitoring events and more. It’s complex. So, we thought you’d like to see what’s working for us.

Question has a verified solution.

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

The object model of .Net can be overwhelming at times – so overwhelming that quite trivial tasks often take hours of research. In this case, the task at hand was to populate the datagrid from SQL Server database in Visual Studio 2008 Windows applica…
Many of us here at EE write code. Many of us write exceptional code; just as many of us write exception-prone code. As we all should know, exceptions are a mechanism for handling errors which are typically out of our control. From database errors, t…
Sending a Secure fax is easy with eFax Corporate (http://www.enterprise.efax.com). First, just open a new email message. In the To field, type your recipient's fax number @efaxsend.com. You can even send a secure international fax — just include t…
As a trusted technology advisor to your customers you are likely getting the daily question of, ‘should I put this in the cloud?’ As customer demands for cloud services increases, companies will see a shift from traditional buying patterns to new…

911 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

Need Help in Real-Time?

Connect with top rated Experts

21 Experts available now in Live!

Get 1:1 Help Now