değerini döndürürse hizmetleri yeniden başlat Windows hizmetlerini yeniden başlatmak istiyorum, ancak yalnızca SQL ifadem geri döndüğünde. Yani SQLResult $ ayarlamak mümkün değilim, ama bu adımlar gerçekleştirmek istediğim değişkeni "RUN" olarak ayarlandığında yalnızca hizmetlerini yeniden başlatmayı ile sorun var:PowerShell SQL deyimi
Stop-Service -Name SERVICENAME
timeout.exe /t 10
taskkill.exe /F /IM KILLTASK.exe
Start-Service -Name SERVICENAME
ben ile yapmak düşünüyordum 'If' ama muhtemelen yanlış bir şey yapıyorum.
If ($SqlResult = "RUN")
{
Stop-Service -Name SERVICENAME
timeout.exe /t 10
taskkill.exe /F /IM KILLTASK.exe
Start-Service -Name SERVICENAME
}
Ayrıca 'Switch' kullanmayı denemiyorum ama başarılı olamam.
Bu yanlış yapıyorum ?: Bir şey karşılaştırmak değil, PowerShell'e şey atamak için kullanılan bir tek eşit operatörü (=
) kullanıyorsanız
$SqlConnection = New-Object System.Data.SqlClient.SqlConnection
$SqlConnection.ConnectionString = "Server=MYSERVER;Database=MYDataBase;Integrated Security=True"
$SqlConnection.Open()
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand
$SqlCmd.CommandText = "if exists (MYQuary) Select 'RUN' Else Select 'END'"
$SqlCmd.Connection = $SqlConnection
$SqlResult = $SqlCmd.ExecuteScalar()
$SqlConnection.Close()
#$SqlResult = "RUN"
#Write-output $SqlResult
Switch ($SqlResult) {
RUN {
Stop-Service -Name SERVICENAME
timeout.exe /t 10
taskkill.exe /F /IM KILLTASK.exe
Start-Service -Name SERVICENAME
}
END {
Exit
}
}