2016-04-07 23 views
0

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 
    } 
} 

cevap

1

şu anda böyle görünüyor. Bunu -eq:

ile yapabilirsiniz.