Was meinst du mit dem Locator?
Hier mein bisheriges Problem mit WMI unter Visual Basic 6:
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:
-----------------
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~:
---------
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/default.asp?url=/library/en-us/wmisdk/wmi/connecting_to_wmi_on_a_remote_computer.asp
-
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/setting_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, Peter Bucher
Post by Peter Fleischer...
Post by Peter Bucherich möchte mit VB.NET an Systeminformationen rankommen, so wie diese
z. B. im Gerätemanager stehen.
Dazu gehören Festplatten, CPU, CD-ROM LW`s etc..
Steht mir in VB.NET eine andere Möglichkeit dazu zur Verfügung als das WMI?
Peter,
schau dir mal den ManagementObject-Namensraum an.
Post by Peter BucherWenn möglich sollte ich diese auch per Remote aus dem Netzwerk abrufen
können (dies scheitert leider bisher in VB6) könnte dies in VB.NET gehen?
WMI geht doch auch in VB6. Um auf einen fremden Rechner zuzugreifen, musst
du zuerst den Locator mit dem Rechner starten.
Peter