vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevAniGif - als kostenlose Vollversion auf unserer vb@rchiv CD Vol.5  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fortgeschrittene Programmierung
Zugriff 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
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Zugriff auf Daten auf Samb-Server1.136doppelkeks27.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

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

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