2009-09-14 2 views
1

Мне нужно развернуть набор файлов конфигурации на сто или более хостов Windows.Развертывание файлов на удаленных компьютерах

У меня есть IP-адреса, имя пользователя и пароль, а также местоположение на удаленных компьютерах, на которые должны быть скопированы файлы, - и задавался вопросом, есть ли что-то в платформе .NET, которое позволит мне использовать все это информация для перемещения этих файлов?

+0

Какие услуги доступны на удаленных компьютерах? Обмен файлами, FTP? Существует ли межсетевой экран? На другом конце есть что-то, что готово поговорить с вами и скопировать файлы от вашего имени. Если есть, возможно, поможет .Net Framework. –

+0

Я не уверен, что .NET поможет в этом. Я написал приложение .NET, которое позволило мне просматривать запущенные процессы на чьей-то машине в моей сети, но .NET не позволяет вам вмешиваться в них (предотвращает вредоносное использование). Я не совсем уверен, но могу только предположить, что они блокируют что-то вроде добавления файлов конфигурации на другие машины, если только кто-то не примет их. – Sivvy

+0

Удаленные компьютеры работают под управлением Windows Server 2003 Standard Edition SP1, и все они имеют удаленный рабочий стол. Я не уверен в FTP, но я так не думаю. –

ответ

2

Похоже, работа для PowerShell (предполагается, что Powershell v1.0 на вашей машине - не должно быть на серверах):

-- begin info.csv -- 

ipaddress, username, password, path (<- header) 
1.2.3.4, foo, bar, "c:\temp" 
5.6.7.8, dog, cat, "c:\temp\foo" 
... 

-- end info.csv -- 

А вот сценарий, который предполагает существования указанного выше файла CSV в том же пути.

import-csv info.csv | foreach-object { 

    trap { 
     net use t: /delete 
     continue 
    } 

    $root = "\\{0}\{1}" -f $_.ipaddress, ($_.path -replace ':', '$') 
    net use t: $root $_.password /user:$_.username 
    copy myconfig.config t: 
    net use t: /delete 
} 

Это вышло из моей головы, поэтому вам может понадобиться немного подправить его, но вы получите эту идею.

-Oisin

+0

Это похоже на то, что мне нужно. Я никогда раньше не использовал Powershell, и я получаю следующую ошибку из вашего примера; Копировальный элемент: не удается найти привод. Диска с именем 't' не существует. Любые идеи, что может быть причиной этого? Cheers –

+0

это может звучать как замедленный вопрос, но используете ли вы _valid_ CSV-файл с реальными IP-адресами и общими именами? Если вы проверите команду «net use» самостоятельно, создайте ли этот диск для вас? – x0n

+0

Да, CSV был действителен. Фактически это оказалось несвязанной сетевой проблемой - хосты были недоступны с моей машины dev, поэтому отображение в T: создало ошибку выше. Теперь он работает. Спасибо за вашу помощь. –

1

Если они в сети AD, что мы обычно делаем это попросить наш отдел Networking для deploy them via Group Policy. Поскольку вы можете установить установщик в Visual Studio для установки чего-либо (это не должно быть приложение), вы также можете использовать его для файлов конфигурации.

Примечание: У меня нет опыта с сетевым концом вещей. Если это возможно, вы можете задать вопрос по адресу Server Fault.

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