0
PS Сценарий СценарийPS скрипт для проверки состояния службы и установите новый сервис Windows
1-> Check if service exists
-> if doesn't exists
-> copy item and install windows service and start.
-> If exists
-> Stop Windows service & delete it and copy item from folder and Install & start the service.
Ниже мой сценарий
$service = Get-Service -Name XXX -Computername YYY
if($service.Status -eq $NULL)
{
Copy-Item "C:\location\*" "\\yyy\d$\Location" -Force -Recurse
sc.exe \\yyy create xxx start=auto DisplayName="value" binPath= D:\Build\test.exe
sc.exe \\yyy description xxx "value"
sc.exe \\yyy start xxx
Write-Host "xxx STARTED"
}
else
{
sc.exe \\yyy stop xxx
Write-Host "xxx STOPPED"
sc.exe \\yyy delete xxx
Write-Host "xxx DELETED"
Copy-Item "C:\Location\*" "\\yyy\d$\Location" -Force -Recurse
sc.exe \\yyy create xxx start=auto DisplayName="value" binPath= D:\Build\test.exe
sc.exe \\yyy description xxx "value"
sc.exe \\yyy start xxx
Write-Host "xxx STARTED"
}
ли мой подход правильно и я не вижу ошибку, если нет имя службы XXX. Как переопределить эту ошибку и продолжить с помощью оператора If.
error-
Get-Service : Cannot find any service with service name 'Spoole'.
At line:1 char:12
+ $service = Get-Service -Name Spoole
+ ~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (Spoole:String) [Get-Service], ServiceCommandException
+ FullyQualifiedErrorId : NoServiceFoundForGivenName,Microsoft.PowerShell.Commands.GetServiceCommand
Это похоже на правильный подход, единственное, чего не хватает - обработка ошибок, ваш скрипт все равно будет писать 'xxx STARTED', даже если' sc.exe' забросил ошибку, также есть [New-Service] (https://msdn.microsoft.com/en-us/powershell/reference/5.1/microsoft.powershell.management/new-service), не уверен, когда это произойдет. По моему мнению, этот вопрос слишком широк, чтобы на него можно было ответить, ты – 4c74356b41