Михаил Захаров
Зачастую возникает задача перезапуска сервисов DocsVision и IIS. Для этого нужно либо открывать 2 консоли управления, либо останавливать из командной строки все по очереди.
При этом нужно помнить, что если клиенты соединяются по net pipes c Windows сервисом DocsVision Storage Server Service, то останавливать его нужно в последнюю очередь.
Для упрощения задачи можно использовать скрипты на PowerShell для автоматизации процесса.
Скрипты приведены для версии DocsVision 4.1. Для других версий нужно указать другие имена сервисов в массиве $Services
1. Перезапуск сервисов DocsVision и службы IIS
Function SmartStop ([string]$Name, [bool]$RO)
{
$Service = Get-Service -Name $Name
If ($RO -eq $true)
{
If ($Service.Status -eq "Running")
{
write-host ("Stopping:" + $Name)
Stop-Service -Name $Name -force
return $Name
break
}
} else {
write-host ("Stopping:" + $Name)
Stop-Service -Name $Name
return $Name
}
}
$ErrorActionPreference="SilentlyContinue"
$Services=("WFServer41","WWFServer41","DVReportServer41","DVStorageServer41")
$Stopped=@()
$RunningOnly=$false
if ($args)
{
if ($args[0] -eq "-ro")
{
$RunningOnly=$true
write-host ("Restarting only running services")
}
}
foreach ($ServName in $Services) {
[string]$a=SmartStop $ServName $RunningOnly
$Stopped=$Stopped+$a
}
Stop-Process "ExecLogic.exe"
write-host ("IIS restarting")
IISRESET /RESTART
$i=0
while ($Stopped[$i] -ne $null)
{
if ($Stopped[$i] -ne "")
{
write-host ("Starting:" + $Stopped[$i])
Start-Service -Name $Stopped[$i]
}
$i+=1
}
Например, скрипт сохранен в restart-dv.ps1. Есть два варианта использования
>restart-dv1
перезапускает сервисы по порядку
>restart-dv1 -ro
перезапускает, только те сервисы, которые на данный момент активны. Полезно в случаях, когда некоторые из них остановлены вручную.
2. Остановка всех сервисов DocsVision и службы IIS.
$ErrorActionPreference="SilentlyContinue"
$Services=("WFServer41","WWFServer41","DVReportServer41","DVStorageServer41")
foreach ($ServName in $Services) {
write-host ("Stopping:" + $ServName)
Stop-Service -Name $ServName
}
Stop-Process "ExecLogic.exe"
iisreset /STOP
3. Запуск всех сервисов DocsVision и службы IIS.
$ErrorActionPreference="SilentlyContinue"
$Services=("DVStorageServer41","WFServer41","WWFServer41","DVReportServer41")
iisreset /START
foreach ($ServName in $Services) {
write-host ("Starting:" + $ServName)
Start-Service -Name $ServName
}
Помните про установку политики безопасности скриптов >Set-ExecutionPolicy