2016-06-23 93 views
0

有沒有人有一個簡單的腳本(PowerShell或命令行),使我可以關閉本地SQL服務(SQL Server,集成服務等),當我不需要他們,然後可能是另一個腳本,當我需要它們時,將它們全部重新打開?腳本停止/重新啓動本地SQL服務

目前我將服務,然後停止/手動啓動它們。

+0

谷歌已堆砌http://blog.in2bi.eu/microsoft-business-intelligence/batch-file-to-start-stop-sql-server/和http://www.databasejournal.com/features/mssql /article.php/3644906/Automatically-Stopping-and-Restarting-SQL-Server.htm和http://www.databasejournal.com/features/mssql/managing-sql-server-services-with-powershell.html和https ://msdn.microsoft.com/en-gb/library/hh403394.aspx – TessellatingHeckler

+0

太棒了!謝謝 – webworm

回答

1

我們有必要停止並禁用,然後再啓用,並開始在多個遠程服務器,所以這是我如何處理它:

停車:

function stopdisable ($compnam, $svc) 
    { 
    (get-service -computername $compnam -name $svc).stop() 
    set-service -computername $compnam -name $svc -startuptype disabled 
    } 

stopdisable "server1" "servicename1" 
stopdisable "server2" "servicename2" 

開始:

function enablestart ($compnam, $svc) 
    { 
    set-service -computername $compnam -name $svc -startuptype automatic 
    (get-service -computername $compnam -name $svc).start() 
    } 

enablestart "server1" "servicename1" 
enablestart "server2" "servicename2" 

當然,這取決於您在遠程服務器上擁有適當的權限。

+0

謝謝...服務器實際上是本地的,所以沒有問題,因爲我是管理員。是上面的代碼PowerShell – webworm

+0

是的,PowerShell。 – lightwing

+0

對於本地,只需從命令調用函數,$ compnam變量和-computername切換中刪除對服務器名稱的引用即可。確保使用服務的名稱而不是顯示名稱(例如:使用「wsearch」而不是「Windows搜索」)。 – lightwing