uruchomieniu usługi przy użyciu skryptu PowerShell. Możesz połączyć to z harmonogramem zadań i wywołać go w określonych odstępach czasu lub w razie potrzeby. Utwórz ten plik jako plik PS1, tj. Plik z rozszerzeniem PS1, a następnie pozwól, aby ten plik został wyzwolony z harmonogramu zadań.
Aby uruchomić usługę zatrzymania
harmonogramu zadań, jeśli używasz go na serwerze użytku w tej argumentacji
-noprofile -executionpolicy obwodnicę -file "C: \ Scripts Usługa ponownego uruchamiania \ StopService.PS1"
zweryfikować, uruchamiając tym samym na cmd jeśli działa to powinno działać na harmonogramu zadań również
$Password = "Enter_Your_Password"
$UserAccount = "Enter_Your_AccountInfor"
$MachineName = "Enter_Your_Machine_Name"
$ServiceList = @("test.SocketService","test.WcfServices","testDesktopService","testService")
$PasswordSecure = $Password | ConvertTo-SecureString -AsPlainText -Force
$Credential = new-object -typename System.Management.Automation.PSCredential -argumentlist $UserAccount, $PasswordSecure
$LogStartTime = Get-Date -Format "MM-dd-yyyy hh:mm:ss tt"
$FileDateTimeStamp = Get-Date -Format "MM-dd-yyyy_hh"
$LogFileName = "C:\Users\krakhil\Desktop\Powershell\Logs\StartService_$FileDateTimeStamp.txt"
#code to start the service
"`n####################################################################" > $LogFileName
"####################################################################" >> $LogFileName
"###################### STARTING SERVICE ##########################" >> $LogFileName
for($i=0;$i -le 3; $i++)
{
"`n`n" >> $LogFileName
$ServiceName = $ServiceList[$i]
"$LogStartTime => Service Name: $ServiceName" >> $LogFileName
Write-Output "`n####################################"
Write-Output "Starting Service - " $ServiceList[$i]
"$LogStartTime => Starting Service: $ServiceName" >> $LogFileName
Start-Service $ServiceList[$i]
$ServiceState = Get-Service | Where-Object {$_.Name -eq $ServiceList[$i]}
if($ServiceState.Status -eq "Running")
{
"$LogStartTime => Started Service Successfully: $ServiceName" >> $LogFileName
Write-Host "`n Service " $ServiceList[$i] " Started Successfully"
}
else
{
"$LogStartTime => Unable to Stop Service: $ServiceName" >> $LogFileName
Write-Output "`n Service didn't Start. Current State is - "
Write-Host $ServiceState.Status
}
}
#code to stop the service
"`n####################################################################" > $LogFileName
"####################################################################" >> $LogFileName
"###################### STOPPING SERVICE ##########################" >> $LogFileName
for($i=0;$i -le 3; $i++)
{
"`n`n" >> $LogFileName
$ServiceName = $ServiceList[$i]
"$LogStartTime => Service Name: $ServiceName" >> $LogFileName
Write-Output "`n####################################"
Write-Output "Stopping Service - " $ServiceList[$i]
"$LogStartTime => Stopping Service: $ServiceName" >> $LogFileName
Stop-Service $ServiceList[$i]
$ServiceState = Get-Service | Where-Object {$_.Name -eq $ServiceList[$i]}
if($ServiceState.Status -eq "Stopped")
{
"$LogStartTime => Stopped Service Successfully: $ServiceName" >> $LogFileName
Write-Host "`n Service " $ServiceList[$i] " Stopped Successfully"
}
else
{
"$LogStartTime => Unable to Stop Service: $ServiceName" >> $LogFileName
Write-Output "`nService didn't Stop. Current State is - "
Write-Host $ServiceState.Status
}
}
Brudny programowanie: kiedy jedyną rzeczą, którą chcesz zrobić, to uruchomić Jeśli usługa nie działa, po prostu uruchom polecenie start. Jeśli nie jest uruchomiony, uruchomi usługę. Jeśli jest uruchomiony, otrzymasz komunikat o błędzie, ale usługa jest uruchomiona (i nie zatrzymuje się). Brudne, ale działa. Jednakże, jeśli chcesz wykonać inne komentarze tylko wtedy, gdy musisz uruchomić usługę, to zdecydowanie przejdź do wersji od zera. –
@Peter Schuetze: Tak, twój sprzeciw jest poprawny, jeśli uruchomienie usługi jest jedynym celem. Włączyłem także logowanie zaczyna się i tak dalej, więc trzymałem się rozwiązania lc. – citronas