Автоматическое копирование файла на несколько ПК

Материал из Mindsellers
Перейти к: навигация, поиск

Python

Задача: имея некий список компьютеров и права на доступ к ним, автоматически закинуть на каждый из них в определенный каталог некий файл, например, в автозагрузку или на рабочий стол. Посмотрим скрипт, принимающий список компьютеров(в файле, каждый с новой строки), файл и путь.

Внимание! Скрипт использует системные функции винды, и под другими ОС работать не будет!

Требуется py-getch

pip install py-getch
import shutil
import os
import getch
import subprocess
log = open("log.txt", "w")
print "Copy to PC list program\n"
pclist=raw_input("PC list file: ")
if os.path.isfile(pclist):
    print "OK"
else:
	 print "File not found"
	 getch.pause()
	 exit()
file=raw_input("File to copy: ")
if os.path.isfile(file):
    print "OK"
else:
	print "File not found"
	getch.pause()
	exit()
dir=raw_input("Destination, for example, 'c$\ProgramData\Microsoft: ")
error = ""
f = open(pclist)
filelines = f.read().splitlines()
for pc in filelines:
    subprocess.call(r'net use M: /delete /Y', stdout=log, stderr=log)
    shellcall = "net use M: \\\\" + pc + "\\" + dir  # + ' ' + password + ' /user:' + user + '@' + domain
    print "Mounting " + pc + "\\" + dir
    status = subprocess.call(shellcall, stdout=log, stderr=log)
    if (int(status) == 0):
        shutil.copy(file,'M:')
    else:
        print ("Cannot connect to " + pc)
        error = error + ' ' + pc
    
    
    subprocess.call(r'net use M: /delete',stdout=log, stderr=log)

print "Copy failed to: " + error
getch.pause() 
f.close()
    

Скомпилированный файл доступен по ссылке