Remote WMI Access

SplifStar_SS

Grünschnabel
Guten Abend

Ich habe vor 2 Tagen mit Visual Basic 6 angefangen und bin jetzt dabei ein kleines Projekt auf die Reihe zu stellen, eigentlich gar nicht so schwer:

Das Progr(ä)mmchen muss alle Systeminformationen (Harddisk, Prozessor, Username, IDEController etc....) abfragen und zur Verfügung stellen, damit man mit den Daten weiterarbeiten kann.

Nun ich erledige dies mit WMI auf die folgende Art:

Code:
Function getWMI(SQL)
	On Error Resume Next
	Set getWMI = GetObject("winmgmts:").ExecQuery(SQL)
	If Err.Number <> 0 Then
		MsgBox ("Kein WMI installiert!")
		Err.Clear
		Set getWMI = Nothing
		getWMI = False
	End If
End Function
 
			'//Besitzername ermitteln
			strsql = "SELECT * FROM Win32_OperatingSystem"
			Set objWMI = getWMI(strsql)
			For Each Item In objWMI
				getData = Item.RegisteredUser
				Exit For
			Next
			Set objWMI = Nothing
'.....

Jetzt kam mir aber die Idee, der Einfachheit halber, damit ich das Programm nur auf einem Rechner halten muss (damit die Datenbankhaltung vereinfacht wird), das ich das WMI per Remote Access, also per Angabe der Computernamens im Netztwerk abfragen könnte.

Das dies geht sieht man an den vielen "Systeminformationsprogrammen" die man übers LAN nutzen kann.

Habe diverse Artikel bei Microsoft gelesen, daraus folgernd kam ich auf diese Lösung~:

Code:
strComputer = "SERVER"
Set objWMIService = GetObject("winmgmts:" & _ '<---- Hier kommt Zugriff verweigert
	"{impersonationLevel=Impersonate}!\\" & _
	"SERVER" & "\root\cimv2")
Set colSettings = objWMIService.ExecQuery _
	("Select * from Win32_OperatingSystem")
For Each objOperatingSystem In colSettings
	getData = "Available Physical Memory: " & _
		objOperatingSystem.FreePhysicalMemory
Next

Das ganze ist bei Microsoft auch dokumentiert (ist ein Beispiel von MS) und funktioniert auch soweit wenn ich als Computername meine lokale Maschine nehme... wenn ich jetzt aber auf meinen Server zugreifen möchte kommt Zugriff verweigert.

Auf dem Server ist Windows XP SP2, vielleicht hat es etwas mit dem zu tun, also weitere Nachforschungen.
Ich bin auf folgende Seiten gestossen:

- http://msdn.microsoft.com/library/d...mi/connecting_to_wmi_on_a_remote_computer.asp
- http://msdn.microsoft.com/library/d...tting_client_application_process_security.asp

Also kann mann irgendwie das Security Level für einen Prozess einstellen, nur wie könnte das in VB aussehen, ich habe keinen blassen Schimmer.

Hoffe auf Feedback, Grüsse Peter Bucher
 
Hallo!

Bei der Anfrage über das Netzwerk werden wahrscheinlich die Anmeldungsinformationen des aktuell angemeldeten Benutzers (der auch das Programm ausführt, also Du....) mitgeschickt. Mit diesen Benutzerdaten versucht sich der Dienst nun an dem entfernten Rechner anzumelden wozu du anscheinend keine Berechtigung hast (Hast du dort in Konto? Mit Administratorrechten?). Wenn du in einer Domäne hängst solltest du mal euren Domänenadmin fragen, ob du das Programm mit Admininistartor (Wenn auf allen Rechnern ein Administratorkonto mit den selben Anmeldeinformationen existiert) bzw. Domänenadministrator laufen lassen kannst. Dann sollte das ganze Funktionieren....

Tolles Forum hier....
Stimmt genau, du bist im besten Forum der Welt ... leider darf sich das Forum seine Benutzer nicht aussuchen sondern muss mit dem vorlieb nehmen was kommt..

Gruß Tom
 
Ich habe viel Geduld aber eine Antwort innert zwei Tagen darf man wohl erhoffen, so lange wartet Heute ja keiner mehr.

Also, die Situation ist folgende, ich habe ein Netzwerk mit einem Domainencontroller, dieser ist aber nur für die internen PC`s bzw. diese besitzen ein Konto dort.

Die PC`s die ich abfragen möchte sind NeuPC`s die wir installieren, dazu muss man am Schluss ein Datenblatt ausfüllen und genau dieses möchte ich automatisieren indem ich die Daten per Programm abrufe und in ein Exel Sheet schreibe.

Funktioniert auch wunderprächtig, nur hat nicht jeder Neu PC ein Excel drauf, deshalb muss ich dies auf meiner Kiste ins Sheet schreiben, dazu währe es natürlich am konfortabelsten dies gleich alles auf meinem Notebook zu erledigen.

Jetzt die Frage, wie kann ich mir Berechtigung verschaffen?
Habe schon eine Lösung wie ich mich per Programm anmelden kann, nur scheint dies mit leeren Passwörtern und kryptischen Benutzernamen wie z. B. Peter Knüssel (mit Umlauten) nicht zu funktionieren.

Kann ich mir ein kleines Hilfs-Programm schreiben das mir ein Konto erstellt oder mir irgendwie Berechtigungen verschafft?

Hmm gute Idee, ein Konto für diesen Zweck erstellen, das Administrator Rechte hat, gar nicht so schlecht, gefällt mir :)

Nur wie könnte ich sowas anstellen?
Oder gibt es eine bessere Lösung?

ps: Danke für deine Antwort

Gruss aus der Schweiz, Peter Bucher
 

Neue Beiträge

Zurück