Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Anmeldeskript in VB

Mitglied: mschaedler1982

mschaedler1982 (Level 1) - Jetzt verbinden

27.06.2014, aktualisiert 14:56 Uhr, 1640 Aufrufe, 7 Kommentare

Hallo zusammen.

Ich habe hier ein aktuelles VB Skript was bei uns zur Anmeldung verwendet wird. Am Ende des Skripts werden diverse Notes speziefische Dateien in das P Laufwerk des Users kopiert.
Das Skript würde ich gerne um eine Kopier Funktion erweitern.

In unregelmäßigen Abständen wird eine Datei ersetzt die vom Server (UNC Pfad) auf den Client kopiert wird.

Quellpfad: \\SERVER_XY\VERZEICHNIS\ORDNER\DATEI.DLL
Zielpfad C:\Program Files (x86)\procad\profile\dbanw\Assembly\DATEI.DLL

Hat mir hierzu jemand den passenden Code?

Vielen Dank schonmal!



01.
' Zentrales Loginscript zum Mappen der Netzlaufwerke über die Gruppenzugehörigkeit 
02.
03.
' Stand XY 
04.
' EDV-Abteilung   
05.
' Update: Abfrage des Flagfiles   
06.
 
07.
 
08.
	Dim IWshShell3, WshNet, oExec, Dir, driveletter1, driveletter2, driveletter3, driveletter4, driveletter5,driveletter6,driveletter7,driveletter8 
09.
 
10.
 
11.
	Dim share1, share2, share3 ,share4 ,share5, share6,share7,share8,folder 
12.
 
13.
	driveletter1 = "R:" 
14.
	driveletter2 = "J:" 
15.
	driveletter3 = "X:" 
16.
	driveletter4 = "Q:" 
17.
	driveletter5 = "T:" 
18.
	driveletter6 = "K:" 
19.
	driveletter7 = "M:" 
20.
	driveletter8 = "S:" 
21.
	 
22.
 
23.
	share1 = "\\Server1\share1" 
24.
	share2 = "\\Server2\share2" 
25.
	share3 = "\\Server3\share3" 
26.
	share4 = "\\Server4\share4" 
27.
	share5 = "\\Server5\share5" 
28.
	share6 = "\\Server6\share6" 
29.
	share7 = "\\Server7\share7" 
30.
	share8 = "\\Server\share8" 
31.
	 
32.
 
33.
   	'Im Fehlerfall zur nächsten Zeile gehen 
34.
	On Error Resume Next 
35.
 
36.
 
37.
	Set IFileSystem = CreateObject("Scripting.FilesystemObject") 
38.
 
39.
	Set IFileSystem1 = CreateObject("Scripting.FilesystemObject") 
40.
 
41.
	Set IWshShell3 = CreateObject("WScript.Shell") 
42.
 
43.
	Set WshNet = WScript.CreateObject("WScript.Network") 
44.
	  
45.
	'Falls Anmeldung auf Terminalserver dann vorzeitiges Beenden des Loginscripts da bei neuer Farm Preferences benutzt werden 
46.
		 
47.
	 If IFileSystem.FileExists("C:\windows\scripts\ts.txt") then WScript.Quit 
48.
		 
49.
	 
50.
	Set oExec = IWshShell3.Exec("\\SERVER_XY\NETLOGON\IFMEMBER.exe /l") 
51.
 
52.
	'Im Fehlerfall zur nächsten Zeile gehen 
53.
	'On Error Resume Next 
54.
	 
55.
 
56.
 
57.
	Do while oExec.Status=0 
58.
		Dir = Dir & oExec.StdOut.ReadAll 
59.
	Loop 
60.
 
61.
 
62.
 
63.
 
64.
	'R-Laufwerk mappen 
65.
	If InStr(Dir,"GRUPPE5") then 
66.
			WshNet.MapNetworkDrive driveletter1, share1 
67.
			If err.number <>0 then 
68.
				'MsgBox "Laufwerk konnte nicht verbunden werden!" & err.Description 
69.
			End If 
70.
	End If 
71.
 
72.
	'J-Laufwerk mappen 
73.
	If InStr(Dir,"GRUPPE6") then 
74.
			WshNet.MapNetworkDrive driveletter2, share2 
75.
			If err.number <>0 then 
76.
				'MsgBox "Laufwerk konnte nicht verbunden werden!" & err.Description 
77.
			End If 
78.
	End If 
79.
 
80.
	'X-Laufwerk mappen 
81.
	If InStr(Dir,"GRUPPE1") then 
82.
			WshNet.MapNetworkDrive driveletter3, share3 
83.
			If err.number <>0 then 
84.
				'MsgBox "Laufwerk konnte nicht verbunden werden!" & err.Description 
85.
			End If 
86.
	End If 
87.
 
88.
	'Q-Laufwerk mappen 
89.
	If InStr(Dir,"GRUPPE7") then 
90.
			WshNet.MapNetworkDrive driveletter4, share4 
91.
			If err.number <>0 then 
92.
				'MsgBox "Laufwerk konnte nicht verbunden werden!" & err.Description 
93.
			End If 
94.
	End If 
95.
 
96.
	'T-Laufwerk mappen 
97.
	If InStr(Dir,"GRUPPE2") then 
98.
			WshNet.MapNetworkDrive driveletter5, share5 
99.
			If err.number <>0 then 
100.
				'MsgBox "Laufwerk konnte nicht verbunden werden!" & err.Description 
101.
			End If 
102.
	End If 
103.
 
104.
	'K-Laufwerk mappen 
105.
	If InStr(Dir,"GRUPPE3") then 
106.
			WshNet.MapNetworkDrive driveletter6, share6 
107.
			If err.number <>0 then 
108.
				'MsgBox "Laufwerk konnte nicht verbunden werden!" & err.Description 
109.
			End If 
110.
	End If 
111.
 
112.
	'M-Laufwerk mappen 
113.
	If InStr(Dir,"GRUPPE4") or InStr(Dir,"vredenu.lg.pictures_l") then 
114.
 
115.
 
116.
	   		'WshNet.RemoveNetworkDrive driveletter7,true,true 
117.
	   		WshNet.MapNetworkDrive driveletter7, share7 
118.
 
119.
 
120.
 
121.
	End If 
122.
 
123.
	'S-Laufwerk mappen( KOM-Archiv ) 
124.
	If InStr(Dir,"GRUPPE5") then 
125.
			WshNet.MapNetworkDrive driveletter8, share8 
126.
			If err.number <>0 then 
127.
				'MsgBox "Laufwerk konnte nicht verbunden werden!" & err.Description 
128.
			End If 
129.
	End If 
130.
 
131.
   
132.
 
133.
 
134.
 
135.
 
136.
 
137.
 
138.
'Notesdaten am Freitag sichern 
139.
if weekday(date) = 6 then 
140.
 
141.
	On Error Resume next 
142.
 
143.
	'Falls kein Thinclient 
144.
	If not IFileSystem.FileExists("C:\windows\ts.txt")then 
145.
		'Ordner erstellen 
146.
		If not IFileSystem.FolderExists("P:\NotesEDV")then 
147.
			IFileSystem.CreateFolder "P:\NotesEDV" 
148.
		end if 
149.
		'Backup auf P:\NotesEDV 
150.
		IFileSystem.CopyFile "C:\Notes\Data\*.id","P:\NotesEDV\",true 
151.
		IFileSystem.CopyFile "C:\Notes\Data\names.nsf","P:\NotesEDV\",true 
152.
		IFileSystem.CopyFile "C:\Notes\Data\bookmark.nsf","P:\NotesEDV\",true 
153.
		IFileSystem.CopyFile "C:\Notes\Data\desktop*.*","P:\NotesEDV\",true 
154.
		IFileSystem.CopyFile "C:\Notes\notes.ini","P:\NotesEDV\",true 
155.
		'Cache.ndk löschen für Fatclients 
156.
 
157.
		If IFileSystem.FileExists("C:\Notes\data\cache.ndk")then 
158.
			IFileSystem.DeleteFile "C:\Notes\data\cache.ndk",true 
159.
		end if 
160.
 
161.
	'ID's kopieren falls Fatclient && ICA-ClientUser sowie erstellungsdatumsabhängig 
162.
		If IFileSystem.FolderExists("P:\TSNotes\de\data")then 
163.
 
164.
			Set folder = IFileSystem.GetFolder("C:\Notes\Data") 
165.
 
166.
			Set file = folder.Files 
167.
 
168.
			For Each item In file 
169.
 
170.
	  			if IFileSystem.getextensionname(item.Name) = "id" then 
171.
				'Nur ID-File kopieren falls Erstellungsdatum auf C jünger ist als das auf P 
172.
					help = "P:\TSNotes\de\Data\" & item.Name 
173.
					'msgbox help 
174.
 
175.
					Set Pdrivedat = IFileSystem1.getfile(help) 
176.
	  				if item.DateLastModified > Pdrivedat.DateLastModified then 
177.
	  					IFileSystem.CopyFile item,"P:\TSNotes\de\data\",true 
178.
 
179.
	  				end if 
180.
 
181.
	  			end if 
182.
 
183.
			Next 
184.
 
185.
	    end if 
186.
 
187.
	end if 
188.
 
189.
'Cache.ndk für Thinclients löschen 
190.
	If IFileSystem.FileExists("P:\TSNotes\de\data\cache.ndk")then 
191.
		IFileSystem.DeleteFile "P:\TSNotes\de\data\cache.ndk",true 
192.
	end if 
193.
 
194.
 
195.
end if 
196.
    	'allokierten Speicher der Objekte freigeben 
197.
    	Set WshNet = nothing 
198.
	Set IWshShell3 = nothing 
199.
	Set IFileSystem = nothing 
Mitglied: colinardo
27.06.2014, aktualisiert um 14:37 Uhr
Moin,
in unregelmäßigen Abständen wird eine Datei ersetzt die vom Server (UNC Pfad) auf den Client kopiert wird.
definiere unregelmäßig ?
ansonsten so
01.
if IFileSystem.FileExists("\\SERVER_XY\VERZEICHNIS\ORDNER\DATEI.DLL") then 
02.
    IFileSystem.CopyFile "\\SERVER_XY\VERZEICHNIS\ORDNER\DATEI.DLL", "C:\Program Files (x86)\procad\profile\dbanw\Assembly\", true 
03.
end if
Grüße Uwe

p.s. bitte überprüfe ob du in deinem Code-Post nicht zu viel aus deiner Firma preis gibst. Wir hatten hier schon Fälle da ließ ein User alle seine Beiträge löschen weil er einfach zu viel preisgegeben hat ! Merci.
Bitte warten ..
Mitglied: mschaedler1982
27.06.2014 um 14:38 Uhr
Unregelmäßig heißt für mich 1 mal im Quartal. Gibt es noch eine bessere Variante?
Bitte warten ..
Mitglied: colinardo
27.06.2014, aktualisiert um 14:45 Uhr
Zitat von mschaedler1982:
Gibt es noch eine bessere Variante?
was meinst du mit besser ??? was funktioniert denn nicht ?
Bitte warten ..
Mitglied: mschaedler1982
27.06.2014 um 14:54 Uhr
Ich habe den Code überarbeitet, die Gruppennamen sind und verallgemeinert. Danke für den Hinweis!

Ja ich mein. Es gibt ja zig möglichkeiten um Dateien zu kopieren. Nun bei dem Anmeldeskript wird jedesmal die Datei kopiert ohne das sie wirklich erneurt wurde.
Berücksichtigen müsste man auch noch ob Windows 7 32 / 64 Bit und Windows XP 32 / 64 Bit vorhanden ist. Kann man auch eine Prüfroutine einbauen die quasi die Version oder das Datum der Datei prüft und nur wenn es eine neuere Datei ist den Kopiervorgang startet?
Bitte warten ..
Mitglied: colinardo
27.06.2014, aktualisiert um 15:22 Uhr
das könnte dann insgesamt so aussehen:
01.
Dim strPathLocal, strFileRemote, f_remote, f_local, fso, objShell 
02.
Set fso = CreateObject("Scripting.Filesystemobject") 
03.
Set objShell = CreateObject("Wscript.Shell") 
04.
 
05.
'RemoteFile 
06.
strFileRemote = "\\SERVER_XY\VERZEICHNIS\ORDNER\DATEI.DLL" 
07.
 
08.
'je nach OS-Bitnes den lokalen Pfad setzen 
09.
If is64Bit() Then 
10.
	strPathLocal = objShell.ExpandEnvironmentStrings("%programfiles(x86)%") & "\procad\profile\dbanw\Assembly\"	 
11.
Else 
12.
	strPathLocal = objShell.ExpandEnvironmentStrings("%programfiles%") & "\procad\profile\dbanw\Assembly\" 
13.
End If 
14.
 
15.
' nur wenn beide Dateien existieren ... 
16.
If fso.FileExists(strFileRemote) And fso.FileExists(strPathLocal & fso.GetFileName(strFileRemote)) Then 
17.
	'Dateireferenzen holen 
18.
	Set f_remote = fso.GetFile(strFileRemote) 
19.
	Set f_local = fso.GetFile(strPathLocal & fso.GetFileName(strFileRemote)) 
20.
	 
21.
	'Dateien vergleichen und nur kopieren wenn Remote-Datei neuer ist 
22.
	If f_remote.DateLastModified > f_local.DateLastModified Then 
23.
		fso.CopyFile strFileRemote, strPathLocal, True		 
24.
	End If 
25.
End If 
26.
 
27.
'Funktion zum überprüfen ob 64bit 
28.
Function is64Bit() 
29.
	Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2") 
30.
	Set colItems = objWMIService.ExecQuery("Select OSArchitecture from Win32_OperatingSystem") 
31.
	For Each objItem in colItems 
32.
		If LCase(objItem.OSArchitecture) = "64-bit" Then 
33.
			is64Bit = True 
34.
		Else 
35.
			is64Bit = False 
36.
		End If  
37.
	Next 
38.
End Function
-edit- noch was korrigiert
Bitte warten ..
Mitglied: manuel-r
27.06.2014 um 15:25 Uhr
bei dem Anmeldeskript wird jedesmal die Datei kopiert ohne das sie wirklich erneurt wurde.

Das kann man auch mit VBScript realisieren. In der Praxis ist mir das regelmäßig zu aufwändig das Dateidatum gegeneinander zu prüfen. Ich helfe mir dann immer mit einen run indem ich damit ein ganz normales xcopy mit der Option /d aufrufe. Ist zwar quick&dirty aber es erfüllt seinen Zweck.

Berücksichtigen müsste man auch noch ob Windows 7 32 / 64 Bit und Windows XP 32 / 64 Bit vorhanden ist.
Die Prozessorarchitektur kannst du ermitteln indem du mit deinem Script auf die Systemvariable %PROCESSOR_ARCHITECTURE% prüfst. Bei AMD64 hast du 64Bit und bei x86 32Bit. An die OS-Version kommst du mit Win32_OperatingSystem.Version; an das Servicepack mit Win32_OperatingSystem.ServicePackMajorVersion.

Manuel
Bitte warten ..
Mitglied: mschaedler1982
02.07.2014 um 13:20 Uhr
Funktioniert! Einwandfrei!! Danke!!!
Bitte warten ..
Ähnliche Inhalte
Netzwerkprotokolle
Anmeldeskript im Netzerk
Frage von ManneKLNetzwerkprotokolle3 Kommentare

Hallo, Habe ein NAS ins Netzwerk eingebunden und das Anmeldeskript - bat. Datei entsprechende Einträge z. Bsp: NET USE ...

Windows Server

Anmeldeskript in der Computerkonfiguration möglich?

Frage von goalgetter123Windows Server1 Kommentar

Guten Tag, ich habe schon erfolgreich Skripte angelegt, welche in eine Textdatei die Zeitangaben beim Hoch- und Herunterfahren der ...

Batch & Shell

Anmeldeskript über lokale Gruppenrichtlinie funktioniert nicht

gelöst Frage von atomiqueBatch & Shell15 Kommentare

Guten Abend zusammen, ich versuche gerade über ein Anmeldeskript Freigaben als Netzlaufwerke zu verbinden, habe aber ein Problem, dass ...

Windows Server

Anmeldeskripte in Excel-Tabelle speichern

gelöst Frage von MorpheussuhlWindows Server2 Kommentare

Hallo liebes Forum, ich habe ein kleineres Problem und hoffe auf eine schnelle antwort. Und zwar habe ich in ...

Neue Wissensbeiträge
Windows 10
Zero-Day-Lücke in Microsoft Edge
Information von kgborn vor 1 TagWindows 10

In Microsofts Edge-Browser klafft wohl eine nicht geschlossene (0-Day) Sicherheitslücke im Just In Time Compiler (JIT Compiler) für Javascript. ...

Sicherheit
Microsoft und Skype: Sicherheit
Information von kgborn vor 1 TagSicherheit

Die Tage gab es ja einige Berichte zur Sicherheit des Skype-Updaters. Der Updater von Skype läuft unter dem Konto ...

Datenschutz

Behörden ignorieren Sicherheitsbedenken gegenüber Windows 10

Information von Penny.Cilin vor 2 TagenDatenschutz8 Kommentare

Hallo, passend zum Thema Ablösung LIMUX in München ein Beitrag bei Heise (siehe Link folgend). Behörden ignorieren Sicherheitsbedenken gegenüber ...

Sicherheit
Information Security Hub Munich airport
Information von brammer vor 2 TagenSicherheit

Hallo, Neues Center für Cyber Kriminalität am Münchener Flughafen brammer

Heiß diskutierte Inhalte
DSL, VDSL
Mindestgeschwindigkeiten DSL Telekom
Frage von justlukasDSL, VDSL13 Kommentare

Hallo zusammen, Seit diesem Jahr habe ich Verständnisprobleme mit dem Verhalten der Telekom. Wir haben seit einem Jahr VDSL ...

Switche und Hubs
LANCOM-Switch: Probleme (no link) mit SFP-Modulen?
Frage von THETOBSwitche und Hubs10 Kommentare

Hi zusammen, ich habe folgendes Problem: Und zwar habe ich an einem Standort drei Switche verbaut - LANCOM GS-2326P+, ...

Firewall
RB2011 Firewall Rule eine bestimmte Mac oder IP Adresse nicht zu blockieren
Frage von lightmanFirewall10 Kommentare

Hallo liebes Forum mit ihren Spezialisten. Ich habe meine Firewall so konfiguriert das kein Endgerät ohne meine Speziellen Erlaubnis ...

Voice over IP
Vodafone IP Anlagenanschluss - TK-Anlage einrichten
Frage von BytedreherVoice over IP8 Kommentare

Moin Zusammen, wir hatten gestern bei uns die Umstellung auf den neuen IP Anschluss bei Vodafone. Vodafone IP Anlagenanschluss ...