Kuidas kopeerida faile mitmesse arvutisse
Sissejuhatus
Failide kopeerimiseks mitmesse arvutisse on erinevaid võimalusi. Kõige lihtsam ja esimesena meelde tulev viis, kuidas faile mitmesse arvutisse kopeerida, on ilmselt kõik arvutid ükshaaval läbi käia ja mõne välise seadme (näiteks CD, USB jne) abil failid arvutitesse kopeerida. Kuid kui arvutied on palju, siis on see ajamahukas protsess. Samuti ei tule selline lahendus kõne alla, kui arvutid asuvad ruumiliselt hajusalt (harukontorid vmt olukord). Kui arvutite ükshaaval läbi käimine ei ole variant, siis sellisel juhul saab abiks võtta Windowsi skriptimiskeeled (PowerShell, VB Script vmt) ning neis kirjutatud fail kasvõi command line (cmd) abil käivitada. Kui arvutid asuvad ühises domeenis, siis saab kasutada ka Windowsi domeeni serveri Group Policy Object Editori (GPO Editor) abi.
Eeldused
1. On olemas keskne kopeeritavate failide hoidja, näiteks server
2. On olemas klientarvutid, kuhu failid kopeeritakse
3. Klientarvutid on ligipääsetavad serverist
4. On olemas üks kindel kaust klientarvutites, kuhu failid kopeeritakse
5. Klientarvutite kopeeritavaid faile vastuvõtval kaustal on õigused määratud nii, et sinna on võimalik serverist faile kirjutada
Näiteks, kui klientarvutites on kaust ’test’, siis tema seaded võiksid olla näiteks järgmised:
(hiire parema klahviga klikk kaustal ’test’ -> Properties -> Advanced Sharing -> Permissions -> vali mingi grupp või kasutaja, kellel on õigus serverist faile arvutisse kopeerida)
Skript
Kui eeldused on täidetud, siis tuleb kirjutada skript. Skript võib olla ka nii lihnte nagu järgnev:
xcopy „\\srv2003\Shared\file.txt“ „\\Marikaxp\test\“
kus xcopy on käsk ning esimesel kohal kopeeritava faili asukoht koos faili nimega ning teisel kohal lõppasukoht kopeeritavale failile.
Salvestades selle rea *.bat või *.cmd faili ning kirjutada analoogsed read ka teistele arvutitele ning failidele. Samuti saab kopeerida teatud tüüpi faile – toodud näide tuleks siis asendada selliselt:
xcopy „\\ServerName\Shared\*.txt“" „\\DestinationComputer\test\“
mis kopeerib serveri ’Shared’ kaustast kõik tekstifailid klientarvuti ’test’ kausta.
Samas võib skript olla ka keerulisem ent lihtsam hallata.
Näiteks selline VB Script (script_copy.vbs):
Const ForReading = 1
Const OverwriteExisting = TRUE Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("\\ServerName\Shared\computers.txt")
Do Until objFile.AtEndOfStream
strComputer = objFile.ReadLine
strRemoteFile = "\\" & strComputer & "\test\"
objFSO.CopyFile "\\ServerName\Shared\file.txt", strRemoteFile, OverwriteExisting
Loop
Selle scripti toimimise eelduseks on fail ’computers.txt’, kus on igal real kirjas arvuti nimi, kuhu fail kopeeritakse. Näiteks: