У меня есть 3 сервера в одной сети и с одинаковым именем пользователя и паролем для входа в систему, на которых я хочу выполнить следующие операции:
*Check if Service1 is running or not
*If it is running, stop the service
*Set Service1 to disable mode
*If it is not running, do nothing
*Check if Service2 is running
*If it is running, stop the service
*Set Service2 to disable mode
*If it is not running, do nothing
и так далее для Service3, .. 4, .. 5 ...
Я хочу создать файл Master.bat на 1-м сервере, который должен выполнять указанные выше операции на всех 3-х серверах параллельно.
Я пытаюсь сделать это ниже, но не понимаю, как я могу сделать это для более чем 1 службы в том же коде, а также его немного длиннее. Есть ли какой-либо другой короткий способ сделать это в пакетном режиме или в PowerShell?
original_serverlist.txt:
Server1
Server2
Server3
Код:
copy original_serverlist.txt serverlist.txt
:repeat
set currentserver=
for /f "eol=; tokens=1*" %%i in (serverlist.txt) do set currentserver=%%i
if "%currentserver%"=="" goto end
for /F "tokens=3 delims=: " %%H in ('SC query Service1 ^| findstr " STATE"') do (
if /I "%%H" "RUNNING" (
net stop Service1
echo Service1 stopped @ %date% %time% > C:\result.txt
sc config Service1 start= disabled
echo Service1 set disabled @ %date% %time% >> C:\result.txt
)
)
type serverlist.txt| find /v "%currentserver%"> serverlist1.txt
copy serverlist1.txt serverlist.txt
goto repeat
:end
del serverlist.txt
del serverlist1.txt
ИЗМЕНИТЬ1
Мне не так комфортно в PS, как в пакетном, но я хочу изучить вещи, поэтому помещаю здесь свое точное требование, чтобы узнать, как реализовать его в PowerShell с объяснением кода.
Мне нужно выполнить следующий набор операций на всех трех удаленных серверах параллельно (Server1, Server2, Server3) с Master.ps1 на Server1:
run command cmd /c iisreset/stop and set IIS service to Disabled mode
Stop service1 and set it to Disabled mode
Stop service2 and set it to Disabled mode
Stop service3 and set it to Disabled mode
Kill process jusched.exe
Kill process conhost.exe
%currentserver%
? Вы определяете это, но никогда не используете. - person Endoro   schedule 09.11.2013