2017-10-17 110 views
0

我試圖停止使用淨停止服務,它通過數據庫。 通過OSQL連接數據庫並執行net stop命令停止服務。OSQL命令停止服務

某些服務名稱具有空格,所以我需要用服務名稱括住雙引號,否則服務名稱中的每個單詞都被視爲參數而不是名稱。

如果我使用雙引號,那麼OSQL命令不起作用。

請幫我解決這個問題。以下是示例查詢。

osql -U mpsappuser -P password -S %servername% -d DBName -Q "execute xp_cmdshell 'net STOP "MPS AS2 Service"'" 
+2

此命令值不一定有意義。你打開* shell *來運行一個osql命令,它將執行一個提升的*存儲過程*,它將運行一個shell命令?你爲什麼不直接執行「net STOP」MPS AS2 Service「'?至少這樣你不會最終禁用SQL Server的安全性 –

回答

0

下面的查詢將工作

osql -U mpsappuser -P password -S %servername% -d DBname -Q "DECLARE @cmd VARCHAR(100) SELECT @CMD = 'net STOP ' + CHAR(34) + 'MPS AS2 Service' + CHAR(34) + '' execute xp_cmdshell @CMD"