2016-06-23 96 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