2015-03-30 5 views
0

Я хочу загрузить/загрузить файл с удаленных окон 2008 R2 серверов, используя мой скрипт python. Проблема в том, что я не хочу устанавливать что-либо лишнее на моем окне сервера Windows. Я хочу достичь этого, просто используя мои обычные учетные данные.загрузить/загрузить файлы на удаленный сервер Windows с помощью python

Ниже приведены различные методы, которые я слышал:

  1. Использование paramiko SSH: Но использовать это, мы должны установить службу SSH на удаленном компьютере, который я не хочу делать.
  2. Использование модуля python wmi: Но, я думаю, у него нет функций для загрузки файлов с удаленных серверов.
  3. Смонтируйте диски в локальной коробке: Также не хотите делать это, так как будет много машин, к которым я хочу подключиться.
  4. Использование winscp: Я думаю, это также потребует SSH?
  5. Ткань: Слышал об этом, не уверен, каковы его предпосылки.

Есть ли какие-либо другие методы, с помощью которых я могу достичь этого?

+0

Почему бы вам просто не использовать UNC-путь напрямую? Пока у вашей учетной записи есть разрешения, просто напишите: \\ server_name \ $ [drive_letter] \ и т. Д. –

+0

, как вы будете использовать ее из локального компьютера Windows, если вы не собираетесь на карту? – Pankaj

ответ

1

Когда в окнах делают, как делают окна пользователи.

Если вы не можете установить дополнительное программное обеспечение на сервер, вам необходимо смонтировать диск и взаимодействовать с удаленными файлами, такими как локальные файлы.

Вы упомянули, что у вас слишком много удаленных серверов для подключения. Почему бы не выбрать одну букву диска и повторно использовать ее для каждого сервера, к которому нужно подключиться?

С помощью net use вы можете установить из командной строки.

Syntax for net use

net use p: /delete:yes 
net use p: \\remote_host\share_name password /user:domain\user 

subprocess пакет Используйте Python для запуска команды монтирования. Subprocess tutor.

import subprocess 

# Make sure the drive isn't mounted. 
try: 
    subprocess.call('net use p: /delete:yes', shell=True) 
except: 
    # This might fail if the drive wasn't in use. 
    # As long as the next net use works, we're good. 
    pass 

for host in ("host1", "host2"): 
    # mount(map) the remote share. 
    subprocess.call('net use p: \\%s\share_name password /user:domain\user' % host, shell=True) 
    with open("p:\path\remote-file.txt", "r") as remote_file: 
     # do stuff 
    # dismount(map) the drive 
    subprocess.call('net use p: /delete:yes', shell=True) 

(Не имею коробку окна и сети, чтобы проверить это на.)

0

Использование библиотеки win_unc: http://covenanteyes.github.io/py_win_unc/

Это позволит сделать нормальные изменения в файл путей а также войти в систему как другой пользователь.

Смежные вопросы