Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: Klafu am 31.05.10 - 16:17:58

Titel: infos über PC bekommen
Beitrag von: Klafu am 31.05.10 - 16:17:58
Hallo zusammen,

kurze Frage:
In wie fern ist es möglich per LS Daten über den Rechner eines Notes Users zu bekommen.
Ich schiele so in Richtung CPU, RAM, HDD, OS bezeichnung (nicht NT angabe), IP Adresse.

Geht das überhaupt ?
Einige Daten konnte ich schon über Environ bekommen, nur die Obengenannten eben nicht.

Vielleicht kann mir jemand helfen.

Grüße Chris
Titel: Re: infos über PC bekommen
Beitrag von: atbits am 31.05.10 - 16:23:15
Ja geht über Windows Scripting Host - den verwendest Du einfach mittels OLE / COM.

So in dem Stil über WMI kannst Du das dann von Lotus Script aus machen und in Notes-Dokumente schreiben.

http://www.quickintranet.com/zeroconnect/wmi.php

Code
'Systems Managment
'Created by ZeroConnect
'4/23/03
'This is a WMI VBS script designed to inventory end-user computers.

On Error Resume Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_Processor")
For Each objItem in colItems

'this displays the property to the screen
'For Testing only, this line is not being used.
'Wscript.Echo "Maximum Clock Speed: " & objItem.MaxClockSpeed


'Make sure we can use our Network objects.
Set WshNetwork = WScript.CreateObject("WScript.Network")
Set oDrives = WshNetwork.EnumNetworkDrives
Set oPrinters = WshNetwork.EnumPrinterConnections

'this appends the data to the file.
Const ForAppending = 2
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile _
("c:\status.txt", 8, True)
Set colServices = GetObject("winmgmts:")
objTextFile.WriteLine("Domain: " & WshNetwork.UserDomain)
objTextFile.WriteLine("User Name: " & WshNetwork.UserName)
objTextFile.WriteLine("Computer Name: " & WshNetwork.ComputerName)
objTextFile.WriteLine("Computer speed in MHZ: " & objItem.MaxClockSpeed)
objTextFile.WriteLine("CPU Manufacturer: " & objItem.Manufacturer)
objTextFile.WriteLine("CPU Details: " & objItem.Description)

'Get our Date to Write to the file
strComputer = "."
Set objSWbemServices = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colTimeZone = objSWbemServices.ExecQuery _
("SELECT * FROM Win32_TimeZone")
For Each objTimeZone in colTimeZone
strBias = objTimeZone.Bias
Next

dtmCurrentDate = Date
dtmTargetDate = Year(dtmCurrentDate)

dtmMonth = Month(dtmCurrentDate)
If Len(dtmMonth) = 1 Then
dtmMonth = "0" & dtmMonth
End If

dtmTargetDate = dtmTargetDate & dtmMonth

dtmDay = Day(dtmCurrentDate)
If Len(dtmDay) = 1 Then
dtmDay = "0" & dtmDay
End If
objTextFile.WriteLine("Date: " & dtmCurrentDate)
objTextFile.WriteLine("")
objTextFile.Close

Next

Grüße David
Titel: Re: infos über PC bekommen
Beitrag von: Klafu am 31.05.10 - 17:18:39
Wahnsinn, vielen Dank David! :D
Das werd ich mir mal genauer anschauen ;)

Grüße Chris
Titel: Re: infos über PC bekommen
Beitrag von: atbits am 31.05.10 - 18:39:13
Vielleicht hilft Dir ja hier diese DB weiter, habe ich mal vor Jahren was zusammenprogrammiert ... könnte man Beta-Stadium nennen ;-)

Beste Grüße David
Titel: Re: infos über PC bekommen
Beitrag von: WildVirus am 01.06.10 - 06:34:39
Guten Morgen,

habe vor Jahren in einer DB mal eine Scriptlib Systeminfo eingebaut (nicht selbstgemacht, sondern im Internet gefunden) und daraus per
Code
		Dim SI As New Sysinfo
		With Doc
			.SysInfo_Hostname = SI.GetLocalHostName
			.SysInfo_IP = SI.GetIPAddress
			.SysInfo_Res = SI.GetScreenResolution
			.SysInfo_OSVERSION = SI.GetWindowsVersion
			.SysInfo_CPU = SI.GetCPUSpeed
			.SysInfo_NOTESUSER = GlobSes.UserName		
			.SysInfo_COLOR = SI.GetNumOfColors
			.SysInfo_RAM = SI.GetTotalRAM
			.SysInfo_BROWSERVERSION = SI.GetIEVersionFriendlyName
			.SysInfo_USERINFO = SI.GetCurrentUser
			.SysInfo_NOTESPROGDIR = SI.GetNotesProgramDirectory
			.SysInfo_AVAILABLEDRIVES = SI.GetDrives
		End With
die Werte ermittelt.

CU,
Axel
Titel: Re: infos über PC bekommen
Beitrag von: DerAndre am 01.06.10 - 07:24:03
!!SYSTEM!! (http://www.openntf.org/Projects/pmt.nsf/ProjectLookup/!!SYSTEM!!) könnte Dir u..U. auch eine Hilfe sein.
Titel: Re: infos über PC bekommen
Beitrag von: Klafu am 09.06.10 - 10:51:28
Hallo zusammen,

vielen Dank für eure Hilfe. Vor allem dir David !!

Eine Frage hab ich aber noch:
Code
Set colDisks = objWMIService.ExecQuery("Select * from Win32_LogicalDisk")
For Each objDisk in colDisks
    Wscript.Echo "DeviceID: " & objDisk.DeviceID       
    Wscript.Echo "Disk Size: " & objDisk.Size
Next

Mit dem Script bekomm ich alle Laufwerke des Rechners - auch die Netzlaufwerke. Kennt einer von euch eine möglichkeit nur die Lokalen Laufwerke zu bekommen ?

Gruß Chris
Titel: Re: infos über PC bekommen
Beitrag von: Klafu am 09.06.10 - 13:56:25
Habe nun auch das hinbekommen :D
Geil. Vielen Dank nochmal  ;)

Gruß Chris
Titel: Re: infos über PC bekommen
Beitrag von: Ralf_M_Petter am 09.06.10 - 14:11:06
Dann hoffe ich doch, dass du uns auch verrätst wie es geht.
Titel: Re: infos über PC bekommen
Beitrag von: Klafu am 09.06.10 - 14:32:27
Über die Laufwerksbeschreibung. Dort wird es wunderschön angezeigt

Code
....
Set colDisks = objWMIService.ExecQuery("Select * from Win32_LogicalDisk")
    Forall objDisk In colDisks
    If objDisk.Description = "Lokale Festplatte" Then
    ....

Gruß Chris