Мне нужно очистить один и тот же directory на нескольких serverах по сети. Как мне это сделать?

На нескольких (около 20) serverах существует один и тот же directory C: \ Deployments. Этот directory имеет несколько подпапок, которые содержат больше подпапок и fileов. Сам directory C: \ Deployments не содержит fileов.

У меня есть batch file, который при локальном запуске очищает directory C: \ Deployments. То есть, он удаляет все подпапки и их fileы, но не удаляет сам directory C: \ Deployements.

Код командного fileа:

echo off set CAT=c:\deployments dir "%%CAT%%"/s/b/a | sort /r >> %TEMP%\files2del.txt for /f "delims=;" %%D in (%TEMP%\files2del.txt) do (del /q "%%D" & rd "%%D") del /q %TEMP%\files2del.txt 

Мой вопрос таков:

Как запустить этот командный file на каждом serverе из локализованного windows? То есть, как мне запустить один batch file и выполнять эти команды на каждом serverе одновременно?

Спасибо за любую помощь / идеи!

У меня больше less Windows-машины, но я использовал это для работы. Существует psexec, который позволяет удаленно на другой server. Вы также можете заглянуть в удаленный мир.

Раскрытие PowerShell см. http://msdn.microsoft.com/en-us/library/windows/desktop/ee706585(v=vs.85).aspx

Использование Dos / Batch, см. http://ss64.com/nt/psexec.html.

Если вы хотите, чтобы они запускались одновременно, вы можете сделать это, выполнив задания в powershell, на том же websiteе ss64.

Если ты заинтересован…

Если ваши serverы указаны в активном directoryе, вы можете сделать небольшой трюк, когда вы говорите, что через компьютеры с помощью Active Directory

 dsquery computer -limit 0 | ?{$_ -imatch "CN=([^,]+),"} | % { #remotely run your script here through ps remote } 

или замените dsquery … с помощью gc $ your_file_name, содержащего list fileов. Dos / Batch – мой syntax может быть выkeyен, но это хороший способ перебрать компьютеры

 for /f "eol=, tokens=1, delims=" %cc in ('dsquery computer -name -limit 0 ^| find /i /r /c:'"CN=([^,]+),"') do ( @REM cannot recall how i used to get back references in dos like this, so may be off. @REM call your script here, passing your batch program to psexec set computer=%%c echo computer=!computer! ) 

или замените dsquery … с типом "% вашего имени fileа%"

Кроме того, если вы столкнулись с проблемой, задающей variables в цикле в пакетном режиме, где они не сохраняются, как и следовало ожидать, поместите setlocal enabledelayedexpansion в начало вашей программы и оцените свои variables, подобные этому ! Var_name! вместо% var_name%

Я хотел бы предложить комбинацию WinRM / WinRS (удаленное управление Windows / Windows Remote Shell), которая требует немного предварительной настройки, но использует инструменты, уже встроенные в Windows.

После завершения установки ваш скрипт должен будет изменить, чтобы вkeyить команду winrs для подkeyения. Вы можете создать list serverов в другом textовом fileе и обернуть еще один цикл FOR вокруг вашего текущего скрипта, чтобы избежать 20 строк, которые все делают то же самое.

Честно говоря, ответ kikuchiyo является удивительным, и я проголосовал так же. Однако для полноты я предлагаю вам отобразить на каждый server и удалить fileы с помощью удаленного доступа.

Я предполагаю администратора домена здесь или, по крайней мере, учетную запись с администратором на каждой из машин.

Но в основном я делал бы что-то вроде этого (чтобы ваш код выполнял работу, а не то, как я это сделал, но это не значит, что я прав)

servers.txt – это просто list имени хоста / IP-адреса serverа

for / f %% a in (servers.txt) do: process %% a

:обработать

установить SERVER =% 1

IF [% SERVER%] == [] GOTO EOF

NET USE T: \% SERVER% \ C $ \ Развертывания

set CAT = T:

dir "%% CAT %%" / s / b / a | sort / r >>% TEMP% \ files2del.txt

для / f "delims =;" %% D in (% TEMP% \ files2del.txt) do (del / q "%% D" & rd "%% D")

del / q% TEMP% \ files2del.txt

: EOF

Interesting Posts

Изолирование портов Ethernet на Cisco Nexus 5000

Как я могу удалить все старые мобильные устройства из ExchangeOnline?

Использование памяти на веб-serverе debian продолжает расти

Fail2Ban прямо на website

Что может использовать мой порт smtp на новой машине CentOS?

Каков правильный способ (ы) разрешить input на website IIS через обратный proxy?

установить несколько certificateов ssl на экземпляр Amazon EC2, работающий на ubuntu 10.04

Конфигурация ограничения доступа к websiteам Buildbot

Перемещение имени домена – с помощью Google Apps – другому регистратору

Понимание IXSCAN и COLLSCAN в журналах MongoDB

Как настроить поведение кнопки питания для всех пользователей компьютера?

Проблема с разрешениями FTP: загруженные fileы не отображаются в веб-browserе

Сценарий оболочки для управления processами, инициированными пользователем.

Файл Bat для изменения настроек интерless-browserа IE

Репликация удаленного serverа DB2 и Linux

Давайте будем гением компьютера.