| |
Fortgeschrittene ProgrammierungZugriff auf Daten auf Samb-Server | | | Autor: doppelkeks | Datum: 27.12.06 13:12 |
| Hi Leute,
ich gehöre nicht zu den Leuten, die sich Programmierer schimpfen und muss gestehen, dass ich auch keine Ahnung davon habe. Leider gehört es zu meiner Aufgabe ein bereits bestehendes VB-Skript so zu verändern, dass man damit unter anderem das Änderungsdatum der enutzerprofile auslesen kann. Bis auf das Auslesen des Ändrungsdatums der ntuser.dat funktioniert soweit auch alles.
Das Problem habe ich zwischen den Code-Zeilen nochmals genauer beschrieben. Ich hoffe Ihr findet ein bisschen Zeit und könnt mir den ein oder anderen Tipp zur Lösung des Problems geben. Ich habe schon alles ausprobiert und bin ehrlich gesagt am Ende mit meinem Latein!!!!!!!
Leider ist diese Nachricht mit dem kompletten Skript etwas zu lang, so dass ich den Quelltext kürzen musste.
Wer aber Interesse an dem ganzen Skript hat, der kann es gerne von mir zugesendet bekommen.
Vorab danke für die Hilfe
' ComputerInfo.vbs
' Syntax: CScript.exe ComputerInfo.vbs //i //nologo
' Rückgabe: 0
'
Option Explicit
On Error GoTo 0
Dim objWShell, objWNet, objWMIService, objRegProvider, objItem, objSubItem
Dim colQuery, colSubQuery
Dim arrSubKeys, arrValueNames, arrValueTypes
Dim strOutput, strSubKey, strComputerName, strCurrentUser, strDomainName
Dim strAdapterName, strIPAddress, strMACAddress, strOutput2, strOutput3, strOutput4
Dim i
Dim objFileSystem, objFile, DateLastMod
Const c_lngREG_HIVE_LOCAL_MACHINE = &H80000002
Const c_REG_KEY_WINLOGON = "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon"
Const c_REG_KEY_DOMAINCACHE = "DomainCache"
Const c_strNODOMAIN = "Arbeitsgruppe"
Const c_intCONNECTED = 2
Const c_strOUTPUT_TITLE = "Computer-Informationen"
Const c_strOUTPUT_USERNAME = "Benutzer-Name:"
Const c_strOUTPUT_COMPUTERNAME = "Computername:"
Const c_strOUTPUT_ACTIVENET = "IP-Adresse(n):"
Const c_strOUTPUT_MACADDRESSES = "MAC-Adresse(n):"
Const c_strOUTPUT_ACTIVENET_NONE = "Keine!!!"
Const c_REG_KEY_BFD_SYSTEM = "SOFTWARE\BfD\System"
Const c_REG_VALUE_IMAGE_VERSION = "Image_Version"
Const c_REG_VALUE_PATCH_VERSION = "Image_Patch"
Const c_strOUTPUT_IMAGE_VERSION = "Image-Version:"
Const c_strOUTPUT_IMAGE_VERSION_NONE = "unbekannt"
Const c_strOUTPUT_PROFIL_DATUM = "Profil-Datum:"
Set objWNet = WScript.CreateObject("WScript.Network")
Set objWShell = WScript.CreateObject("WScript.Shell")
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set objRegProvider = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")
Set objFileSystem = CreateObject("Scripting.FileSystemObject")
'######Problembeschreibung############
'die folgende Code-Zeile funktioniert wenn ich sich die Profile direkt auf dem U: Laufwerk befinden 'würden, das hier nichts anderes ist als eine Freigabe auf dem Samba-Server ist.
'Diese Lösung kommt aber nicht in Frage, da die Profile auf '\\sambapdc\work\profiles\BENUTZERNAME\ntuser.dat liegen und auf KEINEN FALL ein 'Laufwerksbuchstaben darauf verweisen soll.
'Mein Problem liegt jetzt darin, den Pfad zu der Datei ntuser.dat mit einer Variablen für den 'Benutzernamen zu kombinieren. Der Benutzername wird in dem Skipt ja schon ermittelt,(objWNet.UserName) aber wenn dich die Variable dafür in den Pfad eingebe, dann erhalte ich immer die Meldung : Datei nicht gefunden. @!#$!!!
Set objFile = objFileSystem.GetFile("U:\profile\aap\NTUSER.DAT")
'Ich denke hier müsste aber sowas ähnliches wie das folgende stehen:
'
'Set objFile = objFileSystem.Getfile("\\sambapdc\work\profiles\ ?????BENUTZERNAME '????\NTUSER.DAT
DateLastMod = objFile.DateLastModified
' ##### Name des angemeldeten Benutzers bestimmen
strCurrentUser = objWNet.UserDomain & "\" & objWNet.UserName
'#####Hier habe ich den einen Teil ausgelassen, das es sonst zu lang für das Forum wird.
' ##### MsgBox-String zusammenbauen und anzeigen
If strOutput = "" Then
strOutput = c_strOUTPUT_ACTIVENET & vbTab & c_strOUTPUT_ACTIVENET_NONE
Else
strOutput = c_strOUTPUT_ACTIVENET & vbTab & strOutput & vbCr & strOutput2
End If
strOutput = c_strOUTPUT_COMPUTERNAME & vbTab & strComputerName & vbCr & vbCr & strOutput
'########Hier soll dann die Ausgabe aller ermittelter Daten erfolgen
strOutput = vbCr & c_strOUTPUT_PROFIL_DATUM & vbTab & DateLastMod & vbcr & vbcr & c_strOUTPUT_USERNAME & vbTab & strCurrentUser & vbCr & vbCr & strOutput & vbCr & strOutput3
MsgBox strOutput, vbOKOnly + vbInformation, c_strOUTPUT_TITLE
lg Doppelkeks | |
Zugriff auf Daten auf Samb-Server | 1.136 | doppelkeks | 27.12.06 13:12 |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
sevAniGif (VB/VBA)
Anzeigen von animierten GIF-Dateien
Ab sofort lassen sich auch unter VB6 und VBA (Access ab Version 2000) animierte GIF-Grafiken anzeigen und abspielen, die entweder lokal auf dem System oder auf einem Webserver gespeichert sind. Weitere InfosTipp des Monats Access-Tools Vol.1
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|
|
|
Copyright ©2000-2024 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|