2014-12-04 1 views
1

Я бы хотел, чтобы мой сервер сборки остановил iis на целевой машине, скопировал файлы, затем запустил iis. Я бы не хотел использовать powershell.Можно ли выполнить bat-файл, чтобы остановить iis на удаленном сервере

Я думал, что могу положить файл остановки iis bat на целевую машину и запустить jenkins. Но я не уверен, что это сработает.

Возможно ли это, и если нет, есть ли другой способ сделать это без использования powershell?

Благодаря г

ответ

1

Конечно. Используйте wmic.

wmic /node:servername /user:domain\admin /password:adminpass service where 'name="W3SVC" or name="iisadmin"' call stopservice 
:: copy files 
wmic /node:servername /user:domain\admin /password:adminpass service where 'name="W3SVC" or name="iisadmin"' call startservice 

Я думаю, что это правильно, во всяком случае. У меня нет IIS, поэтому я не уверен в имени службы.

Или, если контекст, из которого этот скрипт выполняется на сервере сборки уже имеет права администратора на удаленном сервере, вы могли бы просто использовать

sc \\servername stop W3SVC 
sc \\servername stop IISadmin 

и т.д. У sc /? и wmic service /? для получения дополнительной информации. Разумеется, рассмотрите риски жесткого кодирования имени пользователя домена и перейдите в текстовый пакетный файл.

Edit:Some people suggest, что лучший способ остановить/запустить IIS это с iisreset.exe. Поэтому попробуйте

iisreset servername /stop 
:: copy stuff 
iisreset servername /start 

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

Также, этот вопрос appears to be a duplicate.

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