Avatar billede ahrensberg Nybegynder
18. februar 2008 - 15:40 Der er 3 kommentarer og
1 løsning

WMI kald til server

Hej alle

Er der nogen der kan fortælle mig hvorfor nedenstående fungere ved kald til bruger-pc'ere, men ikke på mine servere (kalder med en admin-konto):

-----------------------------------------------------

    public string FreeSpace(string HostOrIP, string username, string password)
    {
        ConnectionOptions myConnectionOptions = new ConnectionOptions();
        myConnectionOptions.Impersonation = ImpersonationLevel.Impersonate;

        if (username != null && password != null)
        {
            myConnectionOptions.Username = username;
            myConnectionOptions.Password = password;
        }

        ManagementScope objwmiservice;
        ManagementObjectSearcher myObjectSearcher;
        ManagementObjectCollection myCollection;

        try
        {
            objwmiservice = new ManagementScope((@"\\" + HostOrIP + "\\root\\cimv2"), myConnectionOptions);
            objwmiservice.Connect();
            myObjectSearcher = new ManagementObjectSearcher(objwmiservice.Path.ToString(), "SELECT FreeSpace, Size, Name FROM Win32_LogicalDisk WHERE DriveType = 3");
            myObjectSearcher.Options.Timeout = new TimeSpan(0, 0, 0, 0, 7000);
            myCollection = myObjectSearcher.Get();

            foreach (ManagementObject myObject in myCollection)
            {
                if (myObject.GetPropertyValue("FreeSpace") != null)
                {
                    string receiver = "[CurrentUser]";
                    if (myConnectionOptions.Username != null)
                        receiver = myConnectionOptions.Username;

                    long Userx = Convert.ToInt64(myObject.GetPropertyValue("FreeSpace"));
                    return "Free space on '" + HostOrIP + "': " + (Userx / (1024 * 1024 * 1024)) + " GB."
                        + " (Read by '" + receiver + "'.)";
                }
            }
            return "Info not found.";
        }
        catch (UnauthorizedAccessException e)
        {
            return e.ToString(); //e.Message.Substring(0, e.Message.IndexOf("("));
        }
        catch (Exception e)
        {
            return "UNKNOWN ERROR:<br />" + e.ToString();
        }
    }

-----------------------------------------------------

Får følgende access denied fejl:

-----------------------------------------------------

System.UnauthorizedAccessException: Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED)) at System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32 errorCode, IntPtr errorInfo) at System.Management.ManagementScope.InitializeGuts(Object o) at System.Management.ManagementScope.Initialize() at System.Management.ManagementObjectSearcher.Initialize() at System.Management.ManagementObjectSearcher.Get() at WMI_call.FreeSpace(String HostOrIP, String username, String password)

-----------------------------------------------------
Avatar billede nielle Nybegynder
18. februar 2008 - 17:45 #1
Dumt spørgsmål, men har du da givet lov på serveren at der mo laves remote WMI til denne?
Avatar billede ahrensberg Nybegynder
18. februar 2008 - 19:04 #2
Ingen spørgsmål er for dumme her! ;o) Alle spørgsmål er velkomne... Jeg har lavet WMI kald til serveren før, dog ikke via C# men via VB. Hvordan tjekker det evt.? :o)

Ellers andre idéer?
Avatar billede ahrensberg Nybegynder
25. februar 2008 - 13:08 #3
DO'H! Fejl 40... Glemmer user og pass.

Kort sagt ændres:

myObjectSearcher = new ManagementObjectSearcher(objwmiservice.Path.ToString(), "SELECT FreeSpace, Size, Name FROM Win32_LogicalDisk WHERE DriveType = 3");

Til:

ObjectQuery oQuery = new ObjectQuery("SELECT FreeSpace, Size, Name FROM Win32_LogicalDisk WHERE DriveType = 3");
myObjectSearcher = new ManagementObjectSearcher(objwmiservice, oQuery);
Avatar billede ahrensberg Nybegynder
25. februar 2008 - 13:08 #4
!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester