Hallo arbeiten wir an C# Framework v4.0 asp.net MVC-Anwendung auf einer verteilten Struktur. Wir verwenden Server1 für Image Server2 für MySQL-Datenbank und Server3 für Web. Meine Aufgabe ist es, von allen drei Servern freien Speicherplatz und Speicherplatz frei zu bekommen und auf der Web-Admin-Seite anzuzeigen. Ich weiß, wie ich Speicherplatz für localhost mit WMI anzeigen kann. Ich möchte Server1 und Server3 Festplatteninformationen anzeigen, die statische IP haben (Alle drei Server haben Remote Desktop und Freigabe aktiviert). aber ich bekommeAbrufen von Disk-Informationen von Remote-Server C#
Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))
hier mein Code
ManagementScope scope = new ManagementScope("\\\\Server IP\\root\\cimv2");
scope.Connect();
ObjectQuery query = new ObjectQuery("SELECT * FROM Win32_OperatingSystem");
SelectQuery query1 = new SelectQuery("Select * from Win32_LogicalDisk");
ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query);
ManagementObjectCollection queryCollection = searcher.Get();
ManagementObjectSearcher searcher1 = new ManagementObjectSearcher(scope, query1);
ManagementObjectCollection queryCollection1 = searcher1.Get();
foreach (ManagementObject m in queryCollection)
{
// Display the remote computer information
Console.WriteLine("Computer Name : {0}",
m["csname"]);
Console.WriteLine("Windows Directory : {0}",
m["WindowsDirectory"]);
Console.WriteLine("Operating System: {0}",
m["Caption"]);
Console.WriteLine("Version: {0}", m["Version"]);
Console.WriteLine("Manufacturer : {0}", m["Manufacturer"]);
Console.WriteLine();
}
foreach (ManagementObject mo in queryCollection1)
{
Console.WriteLine(" Disk Name : {0}", mo["Name"]);
Console.WriteLine(" Disk Size : {0}", mo["Size"]);
Console.WriteLine(" FreeSpace : {0}", mo["FreeSpace"]);
Console.WriteLine(" Disk DeviceID : {0}", mo["DeviceID"]);
Console.WriteLine(" Disk VolumeName : {0}", mo["VolumeName"]);
Console.WriteLine(" Disk SystemName : {0}", mo["SystemName"]);
Console.WriteLine("Disk VolumeSerialNumber : {0}", mo["VolumeSerialNumber"]);
Console.WriteLine();
}
Console.ReadLine();
aber wenn die Kompilierung geht scope.Connect() an der Leitung; dann wirft es Ausnahmezugriffs
verweigertich this article using Dcomcnfg.exe security versucht haben, aber kann nicht von dieser Ausnahme erhalten noch
ich habe auch
ConnectionOptions options = new ConnectionOptions();
options.Username = @"Admin-PC\username";
options.Password = @"password";
options.Impersonation = ImpersonationLevel.Impersonate;
options.Authentication = AuthenticationLevel.Connect;
options.EnablePrivileges = true;
options.Timeout = new TimeSpan(0, 60, 0);
ManagementScope scope = new ManagementScope("\\\\IP\\root\\cimv2", options);
Ich glaube, ich kann nicht dcom Sicherheit richtig – skhurams
konfigurieren http://serverfault.com/questions/28520/which-permissions-rights-does-a-user-need- to-have-wmi-access-on-remote-maschinen – CodeCaster
Ich habe alle Schritte im Artikel versucht, aber immer noch Zugang verweigert – skhurams