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:
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~:
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
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