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 kopieren mit WSH

Mitglied: xm-bit

xm-bit (Level 2) - Jetzt verbinden

10.11.2009, aktualisiert 16:28 Uhr, 3359 Aufrufe, 5 Kommentare

Hi und guten morgen,

ich habe da mal eine kleine Herausforderung.

Ich möchte in mein vorhandenes Loginscript, eine Aktion einfügen, mit der ich eine Datei von einem Fileserver, an einen bestimmten Ort im Benutzerprofil kopiere.
Die vorhandene Datei soll dann überschrieben werden.

Was schön wäre, wenn das irgendwo in einem Logfile mit aufgeführt wird.

Hier ist erstmal mein Loginscript:

01.
Dim strComputerName   
02.
Dim strUserName   
03.
Dim strDomainName   
04.
Dim strPrintSRV  
05.
Dim strPrintSRV2  
06.
 
07.
Dim objADSysInfo   
08.
Dim wshNetwork   
09.
Dim WshShell   
10.
Dim WshSysEnv   
11.
Dim oShell   
12.
Dim oShFolder   
13.
Dim objUser   
14.
Dim objOU   
15.
Dim rootDSE   
16.
Dim oPq   
17.
Dim ws  
18.
 
19.
Set wshNetwork = WScript.CreateObject( "WScript.Network" )   
20.
Set WshShell = WScript.CreateObject("WScript.Shell")   
21.
Set WshProcEnv = WshShell.Environment("Process")   
22.
Set WshUserEnv = WshShell.Environment("USER")   
23.
Set objADSysInfo = CreateObject("ADSystemInfo")   
24.
Set oShell = CreateObject("Shell.application") 				  
25.
Set oShFolder = oShell.Namespace(17)   
26.
Set objUser = GetObject("LDAP://" & objADSysInfo.UserName)   
27.
Set objOU = GetObject(objUser.parent)   
28.
Set objFSO = CreateObject("Scripting.FileSystemObject")   
29.
strPrintSRV = "printsrv"  
30.
Server1 = "DC-Server"   
31.
Server2 = "file-Server"   
32.
 
33.
'Warten bis der Anmeldename des Users ermittelt wurde   
34.
Do While wshNetwork.username = ""   
35.
   WScript.Sleep 5   
36.
Loop   
37.
 
38.
strComputerName = wshNetwork.computerName   
39.
strUserName = wshNetwork.userName   
40.
strDomainName = wshNetwork.userDomain   
41.
 
42.
'##### vorhandene Laufwerke löschen   
43.
 
44.
On Error Resume Next   
45.
 
46.
wshNetwork.RemoveNetworkDrive "I:", True, True   
47.
wshNetwork.RemoveNetworkDrive "J:", True, True   
48.
wshNetwork.RemoveNetworkDrive "K:", True, True   
49.
wshNetwork.RemoveNetworkDrive "L:", True, True   
50.
wshNetwork.RemoveNetworkDrive "H:", True, True   
51.
wshNetwork.RemoveNetworkDrive "N:", True, True   
52.
wshNetwork.RemoveNetworkDrive "O:", True, True   
53.
wshNetwork.RemoveNetworkDrive "Z:", True, True   
54.
wshNetwork.RemoveNetworkDrive "P:", True, True   
55.
wshNetwork.RemoveNetworkDrive "Q:", True, True   
56.
wshNetwork.RemoveNetworkDrive "S:", True, True   
57.
wshNetwork.RemoveNetworkDrive "W:", True, True   
58.
wshNetwork.RemoveNetworkDrive "X:", True, True   
59.
wshNetwork.RemoveNetworkDrive "M:", True, True   
60.
 
61.
'##### für jeden gültige Laufwerke mappen   
62.
'wshNetwork.MapNetworkDrive "I:", "\\"&Server2&"\User\"& strUserName   
63.
'wshNetwork.MapNetworkDrive "L:", "\\"&Server2&"\AUS"   
64.
wshNetwork.MapNetworkDrive "V:", "\\" & Server2 & "\Vorlagen"  
65.
wshNetwork.MapNetworkDrive "X:", "\\" & Server1 & "\Xerox"  
66.
 
67.
'Drucker mappen  
68.
wshNetwork.AddWindowsPrinterConnection "\\" & strPrintSRV2 & "\BrotherH"  
69.
wshNetwork.AddWindowsPrinterConnection "\\" & strPrintSRV2 & "\KyoceraF"  
70.
 
71.
'##### Gruppenabhängige Laufwerke mappen   
72.
 
73.
For Each prop In objUser.groups 
74.
 
75.
'* ACHTUNG! Gruppennamen immer GROSS schreiben   
76.
Select Case UCase(prop.cn)   
77.
 
78.
Case "MITARBEITER"   
79.
	wshNetwork.MapNetworkDrive "K:", "\\" & Server2 & "\Kanzleiverwaltung"  
80.
	wshNetwork.MapNetworkDrive "M:", "\\" & Server2 & "\Mandantenstamm"  
81.
	wshNetwork.MapNetworkDrive "P:", "\\" & Server2 & "\Software"  
82.
 
83.
Case "GESCHÄFTSLEITUNG"   
84.
  wshNetwork.MapNetworkDrive "I:", "\\" & Server2 & "\Kanzlei_intern"  
85.
 
86.
'Case "HR"   
87.
  'wshNetwork.MapNetworkDrive "L:", "\\"&Server2&"Groups$\Profile"   
88.
 
89.
End Select   
90.
Next  
hier ist der Teil, den ich gerne einfügen würde.
Aber ich bin mir nicht sicher, wie ich das integrieren kann...
Da ich noch nicht so die Erfahrung im Scripting habe...

01.
Option Explicit 
02.
'Deklaration der Variablen 
03.
 
04.
Dim FSO 
05.
'Konstanten definieren 
06.
Const DateiNameQuelle = "beispiel.txt" 
07.
Const DateiNameZiel = "bespiel.txt" 
08.
'Objekt erzeugen 
09.
Set FSO = CreateObject("Scripting.FileSystemObject") 
10.
If FSO.FileExists(DateiNameQuelle) Then 
11.
	'kopieren mit Copyfile 
12.
	FSO.CopyFile DateiNameQuelle, DateiNameZiel, True 
13.
	WScript.Echo DateiNameQuelle & "wurde nach" & _ 
14.
	DateiNameZiel & "kopiert" 
15.
	 
16.
Else  
17.
	WScript.Echo DateiNameQuelle & " ist nicht vorhanden " 
18.
End If

Bei "beispiel.txt" kann ich dort auch komplette Pfade angeben, ich denke schon oder??

Wenn ihr noch weitere Details benötigt, sag es mir einfach...

mfg
Sascha
Mitglied: TsukiSan
11.11.2009 um 05:44 Uhr
hallo SasHW2K3,

(2-er Codeschnippsel von dir!)

genau Pfadangabe nötig:
01.
DateiNameQuelle = "C:\Quelle\beispiel.txt"  
02.
Const DateiNameZiel = "C:\Ziel\bespiel.txt" 
Wenn du die Zieldatei gnadenlos überschreiben willst dann kannst du dir
01.
If FSO.FileExists(DateiNameQuelle) Then
sparen!

Zum Mittloggen einfach ab deiner Zeile 09
01.
Set MyLogFile = FSO.CreateTextFile("C:\MyLogFile.txt", TRUE) 
02.
MyLogFile.Close 
03.
Set MyLogFile = FSO.OpenTextFile("C:\MyLogFile.txt",8)
einfügen und in deine freie Zeile 15
01.
MyLogFile.WriteLine (DateiNameQuelle & "wurde nach" & _  
02.
                                       DateiNameZiel & "kopiert")
nach Zeile 18 dann noch
01.
MyLogFile.Close
eingeben

Wann du was kopieren möchtest (an welcher Stelle deines Scriptes) ist mir nicht ganz schlüssig, aber du kannst das einsetzen, woimmer du möchtest.

Gruss

Tsuki
Bitte warten ..
Mitglied: xm-bit
11.11.2009 um 09:09 Uhr
Hallo Tsuki,

danke erstmal für deine Antwort.

Das kopieren ist Unabhängig von den Gruppenmitgliedschaften. Mir ging es darum, nicht einfach irgendwo etwas reinzusetzen, sondern, die Teile dort reinzusetzen, das das Script dann auch nicht zu undurchsichtig wird. Wie schohn gesagt, ich fange erst an, mich mit der Materie Scripting, etwas intensiver zu befassen.

Darum stelle ich halt viele Fragen, auf die ich im ersten Schritt, die Antwort nicht finde.
Ich möchte halt, das das Script sauber aufgebaut, auch nen guten Eindruck macht.

Ich werde es mal testen, und dann das Ergebnis posten.


Ergebnis:

01.
'Option Explicit 
02.
 
03.
'Deklaration der Variablen 
04.
Dim FSO 
05.
Dim MyLogFile 
06.
 
07.
'Konstanten definieren 
08.
Const DateiNameQuelle = "D:\test.txt" 
09.
Const DateiNameZiel = "D:\test\" 
10.
'Objekt erzeugen 
11.
Set FSO = CreateObject("Scripting.FileSystemObject") 
12.
If FSO.FileExists(DateiNameQuelle) Then  
13.
	'kopieren der Datei 
14.
	FSO.CopyFile DateiNameQuelle, DateiNameZiel, True  
15.
	'WScript.Echo DateiNameQuelle & " wurde nach " & _  
16.
	'DateiNameZiel & " kopiert "  
17.
Else  
18.
	WScript.Echo DateiNameQuelle & " ist nicht gefunden worden" 
19.
	 
20.
End If 
21.
 
22.
Set MyLogFile = FSO.CreateTextFile("D:\MyLogFile.txt", True)  
23.
'Set MyLogFile = FSO.OpenTextFile("D:\MyLogFile.txt", 8) 
24.
MyLogFile.WriteLine (Date & " " & Time & " " & DateiNameQuelle & " wurde nach " & _ 
25.
	DateiNameZiel & " kopiert ") 
26.
 
27.
MyLogFile.Close
so funktioniert es schon ganz gut, aber wie bekomme ich es nun hin, das im Logfile, für jede Aktion eine neue Zeile angefangen wird.

Momentan wird die erste Zeile überschreiben..

mfg
Sascha
Bitte warten ..
Mitglied: bastla
11.11.2009 um 11:09 Uhr
Hallo SasHW2k3!
wie bekomme ich es nun hin, das im Logfile, für jede Aktion eine neue Zeile angefangen wird.
Indem Du auf die Zeile 22 (ersatzlos streichen) zugunsten der Zeile 23 (Kommentar entfernen) verzichtest. (De facto wird nicht die Zeile, sondern wegen "CreateTextFile" die gesamte Datei überschrieben / neu erstellt).

Zur Sicherheit (für den Fall, dass es das Logfile noch nicht gibt) wäre in der Zeile 23 noch der Parameter "True" einzufügen (siehe unten) ...

Grüße
bastla
Bitte warten ..
Mitglied: bastla
11.11.2009 um 11:12 Uhr
@Tsuki
Anmerkung zum Logfile: Mit
Set MyLogFile = FSO.OpenTextFile("C:\MyLogFile.txt",8,True)
wird die Datei bei Bedarf neu erstellt, sodass das "CreateTextFile" davor eigentlich unnötig ist.

Grüße
bastla
Bitte warten ..
Mitglied: TsukiSan
12.11.2009 um 03:22 Uhr
@bastla,

danke für den Hinweis. so hatte ich's auch noch nicht geschrieben. Habe meistens den
CreateTextFile
Befehl genommen, wenn ich eine Datei neu erstellen, bzw. komplett überschreiben wollte.
Zum Anhängen von Daten eignet sich nur Zeile 23 in SasHW2k3-Programm. Das wäre schon klar.

@ SasHW2k3
sorry, dass ich dich nicht gleich 100%ig verstanden hatte. Aber bastla hat's ja zum Glück


Gruss und Danke!
Tsuki
Bitte warten ..
Ähnliche Inhalte
Windows Tools
WSH - Dateien umbennnen
Frage von peter58haWindows Tools4 Kommentare

Hallo zusammen, ich bin absoluter Neuling in Sachen WSH und benötige eure Hilfe bei einem Script, welches Dateien umbenennt. ...

Drucker und Scanner
Drucker kopieren?
gelöst Frage von 114068Drucker und Scanner7 Kommentare

Hallo, und nochmals ne Druckerfrage: ist es möglich unter Windows (konkret Vers. 7 - 64bit) Drucker zu kopieren? Heißt: ...

Windows Netzwerk
Verzeichnisse Kopieren
gelöst Frage von Hans3003Windows Netzwerk13 Kommentare

Hallo zusammen, erstmal mein vorhaben mit kurzer Erklärung: Es gibt im NE einen HP ILO Cube Fileserver, und einen ...

VB for Applications
Excel kopieren
Frage von anchleVB for Applications1 Kommentar

Ich öffne eine Excel-Datei (2010) und eine DBase-Datei. Die ersten beiden Spalten sollen in der DB-Datei markiert und dann ...

Neue Wissensbeiträge
Sicherheit

Zero Day-Schwachstelle im Internet Explorer - wird von APT bereits ausgenutzt

Information von kgborn vor 5 StundenSicherheit

Im Kernel des Internet Explorer scheint es eine Zero Day-Lücke zu geben, die von staatlichen Akteuren (APT) im Rahmen ...

Microsoft
Folder Security Viewer-Lizenzen zu gewinnen
Information von kgborn vor 5 StundenMicrosoft

Ich nehme das Thema mal in Absprache mit Frank hier auf, da es für den einen oder anderen Administrator ...

Hardware

Feueralarm killt Festplatten in Rechenzentrum - führt zu größerem Ausfall

Information von kgborn vor 5 StundenHardware8 Kommentare

Noch ein kleiner Beitrag für Administratoren, die in Rechenzentren aktiv sind - so als Fingerzeig. Denn es gibt Szenarien, ...

MikroTik RouterOS

Mikrotik Advisory: Vulnerability exploiting the Winbox port

Information von colinardo vor 5 StundenMikroTik RouterOS

Brand aktuell: Eine Schwachstelle im Winbox-Port bei Mikrotik Routern erlaubt das Auslesen der User-Datenbank der Router. Patch ist aktuell ...

Heiß diskutierte Inhalte
Linux
Linux Server oder Windows Server - lohnt eine Umstellung auf Linux und ebenso basierende SW bei einer langfristigen Planung?
Frage von motus5Linux23 Kommentare

Wir brauchen bei uns einen neuen Server. Dieser wird als Fileserver, Domäne Controller sowie Exchange Server verwendet. Wir versuchen ...

Netzwerkgrundlagen
VLAN - Offene Fragen
Frage von KnettenbrechNetzwerkgrundlagen17 Kommentare

Hallo zusammen, ich befasse mich derzeit mit dem Thema VLAN. Hierzu habe ich schon einige Guides gelesen, einschließlich des ...

DSL, VDSL
ISP Wechsel auf Vodefone Koax, Gebäudeverkabelung nur per Cat 7
gelöst Frage von wusa88DSL, VDSL14 Kommentare

Hallo Zusammen, ich bin momentan bei Mnet als Glasfaser Kunde und möchte Preis/Leistungs-Technisch zu Kabel Deutschland / Vodafone wechseln. ...

Windows Server
Domänencontroller trennen
Frage von Akit57Windows Server13 Kommentare

Hallo, ich hoffe das mir hier jemand meine Frage trotz der spärlichen Informationen die ich geben kann beantworten kann: ...