Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

Datei auf mehrere PC kopieren (VB Skript) funktioniert nicht immer

Frage Entwicklung VB for Applications

Mitglied: chrismass

chrismass (Level 1) - Jetzt verbinden

11.03.2014 um 08:17 Uhr, 1344 Aufrufe, 8 Kommentare

Hallo zusammen. Ich habe mir ein VB Skript zusammengebastelt welches mir eine Liste von PC aus einer Textdatei ausliest und versucht eine bestimmte Datei in ein Zielverzeichnis auf jedem PC zu kopieren. Das skript läuft so weit. Allerdings kann es aus irgend einem Grund nicht auf jeden PC kopieren. Zu einigen PC kann anscheinend keine Verbindung aufgebaut werden. Manuell konnte ich die Ziel PC sowohl anpingen als auch manuell kopieren. Ich kann es mir monentan nicht so ganz erklären. Liegt es an meinem Skript?? Ich bin in der VB Programmierung nicht sehr erfahren, vielleicht kann ja mal jemand meinen Code gegenlesen.

01.
Option Explicit 
02.
Dim fso, f, objEingabe, source, exists 
03.
Dim EingabePfad, EingabeDatei, pathToClientFile, pathToRemoteFolder, programPath, client, Zeile, Position, i 
04.
 
05.
REM EingabePfad = "D:\Arbeitsbereich BitBox\BitBoxConfigFiles\" 
06.
EingabePfad = ".\" 
07.
EingabeDatei = "hosts.txt" 
08.
source = ".\config\dispatch.pac" 
09.
programPath = "c$\Program Files (x86)\sirrix AG\BitBox\dispatch.pac" 
10.
 
11.
Const ForReading = 1 
12.
Const ForWriting = 2 
13.
 
14.
set fso = CreateObject("Scripting.FileSystemObject") 
15.
 
16.
Set objEingabe = fso.OpenTextFile(EingabePfad & EingabeDatei, ForReading) 
17.
 
18.
Do Until objEingabe.AtEndOfStream 
19.
    client = objEingabe.Readline 
20.
	pathToClientFile = "\\"&client&"\"&programPath 
21.
	pathToRemoteFolder ="\\"&client&"\c$\Program Files (x86)\sirrix AG\BitBox\" 
22.
	REM msgbox pathToClientFile 
23.
	exists = fso.FolderExists(pathToRemoteFolder) 
24.
	REM msgbox exists 
25.
	if (exists) then 
26.
	fso.CopyFile source, pathToClientFile 
27.
	Set f = fso.OpenTextFile(".\log\log.txt", 8, True) 
28.
	f.WriteLine vbCr & "succesfully copied to " & client & i  
29.
    f.Close 
30.
	else 
31.
	Set f = fso.OpenTextFile(".\log\failed.txt", 8, True) 
32.
    f.WriteLine vbCr & client & i  
33.
    f.Close 
34.
	end if 
35.
Loop 
36.
	 
37.
Msgbox "Fertig!" 
38.
set fso = nothing 
39.
 
Mitglied: colinardo
11.03.2014, aktualisiert um 08:52 Uhr
Hallo chrismass,
bist du sicher das auf den entsprechenden Rechnern die Administrative Shares aktiviert sind, Wenn es ein WIN7 oder WIN8 Rechner ist, muss ja erst durch einen Registry-Eintrag (LocalAccountTokenFilterPolicy) der Zugriff aktiviert werden wenn es sich um PCs ohne Domänenmitgliedschaft handelt, oder sind die Rechner Mitglied einer Domäne (hier ist dies nicht nötig) ?

Grüße Uwe
Bitte warten ..
Mitglied: chrismass
11.03.2014 um 09:08 Uhr
Die PC sind alle Mitglied einer Domäne.
Die Ziel PC sind Win7.
Alle PC sind identisch, dh. durch ein und das selbe Image installiert.
Ich starte den Kopiervorgang als Domänenadmin, habe also die höchsten Zugriffsrechte.
Bitte warten ..
Mitglied: colinardo
11.03.2014, aktualisiert um 09:22 Uhr
bist du sicher das in der Textdatei worin die Namen der Rechner stehen kein Leerzeichen hinter oder vor dem Namen steht, denn du entfernst diese eventuellen Leerzeichen nicht mit Trim() in deinem Script.
client = Trim(objEingabe.Readline)
Bitte warten ..
Mitglied: chrismass
11.03.2014 um 09:35 Uhr
Ok ich werde es mal einbauen.
Ich bereite allerdings die Liste durch eine dsquery Abfrage an der Domäne vor und lasse mir das Ergebnis in eine Textdatei ausgeben. Anschließend bearbeite ich die Datei mit notepad++ , entferne alles unnötige und lasse zum Abschluss die Funktion"Trim Trailing Spaces" drüberlaufen.

Also ja eigentlich bin ich sicher dass keine Spaces mehr drin sind ...

Momentan habe ich aber eine andere Vermutung. Die PC stehen teilweise an einem entfernten Standort. Ich vermute dass die PC nicht in einer angemessenen Zeit antworten und deshalb nichts kopiert wird.
Bitte warten ..
Mitglied: colinardo
11.03.2014, aktualisiert um 10:01 Uhr
Zitat von chrismass:
Momentan habe ich aber eine andere Vermutung. Die PC stehen teilweise an einem entfernten Standort. Ich vermute dass die PC nicht in einer angemessenen Zeit antworten und deshalb nichts kopiert wird.
dann benutze zum kopieren Robocopy in deinem Script, mit dem kann man Timeouts und Verbindungswiederholungen bei solchen Szenarien festlegen.
01.
Set objShell = CreateObject("Wscript.Shell") 
02.
objShell.Run "robocopy ""C:\Sourcefolder"" ""\\server\targetfolder"" ""dispatch.pac"" /R:10 /W:5"
oder du pingst die Rechner voher ein paar mal in deinem Script an.

Grüße Uwe
Bitte warten ..
Mitglied: chrismass
11.03.2014 um 10:04 Uhr
Ich habe nun in einem Fall auch noch festgestellt, dass im DNS wohl ein falscher Eintrag ist. Das kann aber nicht in der Masse sein.
Ich werde das mit Robocopy gleich mal ausprobieren.
Vielen Dank!
Bitte warten ..
Mitglied: chrismass
11.03.2014 um 12:35 Uhr
Auch mit Robocopy und dem Repeat-Schalter hat es nicht funktioniert. Interessanterweise klappts sofort wenn ich den Robocopybefehl einfach in der Shell absetze.
Bitte warten ..
Mitglied: colinardo
11.03.2014, aktualisiert um 12:48 Uhr
habt Ihr einen WINS Server in eurer Domain? ansonsten mach die Pfadangabe mal in DNS-Schreibweise
\\pc1.domain.local\c$\......**
und lösch mal den DNS-Cache ipconfig /flushdns
Teste auch mal nur über die IP-Adresse
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
VB for Applications
gelöst VBA Skript funktioniert auf lokalen Zugriff, aber nicht auf Netzwerkshare (1)

Frage von Dr.Cornwallis zum Thema VB for Applications ...

Windows Server
Powershell Skript funktioniert im Task Scheduler nicht (4)

Frage von winlin zum Thema Windows Server ...

Batch & Shell
gelöst Powershell Datei kopieren mit ACL Script funktioniert nicht (4)

Frage von xpxy15 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
M.2 SSD wird nicht erkannt (14)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...