Cmd Runas SC停止带空格的远程服务

Cmd Runas SC停止带空格的远程服务,cmd,syntax-error,runas,Cmd,Syntax Error,Runas,我正在使用该命令远程重新启动下的进程。这对于没有空格的服务非常有效,但是如果它有空格,迫使我在runas“command”引号中使用,,它就会失败,无法找到服务 我已经检查了这个特定服务的属性,以确保服务名称(与显示名称相同) 如图所示,这个脚本工作得很好,但当我注释掉set service=workingservice并取消注释set service='Not a working service时,它就不工作了。另外,如果我使用runas打开它的opencmd.exe,那么我就可以成功地运行s

我正在使用该命令远程重新启动下的进程。这对于没有空格的服务非常有效,但是如果它有空格,迫使我在
runas“command”
引号中使用
,它就会失败,无法找到服务

我已经检查了这个特定服务的属性,以确保服务名称(与显示名称相同)


如图所示,这个脚本工作得很好,但当我注释掉
set service=workingservice
并取消注释
set service='Not a working service
时,它就不工作了。另外,如果我使用
runas
打开它的opencmd.exe,那么我就可以成功地运行
sc
命令,并在服务名称周围加上引号。

我通过在
runas
下打开一个新的命令提示符来解决这个问题。在新命令提示符中调用另一个执行
sc stop service
命令的bat文件。这将删除导致错误的多重引用

我仍在努力将变量从
runas
批处理文件传递到
sc
批处理文件,以允许
%domain%
变量输入到
sc
命令中

文件
runas.bat
文件
sc.bat
(减去原始脚本中的所有虚饰)
@ECHO OFF
REM Prompt for Domain & Username. Password will be prompted when run.
set /P Domainn=Enter Domain Name:
set /P Usern=Enter Username:

set service=workingservice
REM set service='Not a working service'

REM Define Start Stops
set userrunasstop=runas /profile /user:%domainn%\%usern% "sc \\%domainn% stop %service%"
set userrunasstart=runas /profile /user:%domainn%\%usern% "sc \\%domainn% start %service%"

:optionmenu
CLS
ECHO 1 - Stop Service
ECHO 2 - Start Service
ECHO q - Quit
ECHO.
set /P optionnum=Enter command number:
GOTO option%optionnum%

:option1
REM Stop Client
%userrunasstop%

goto optionmenu

:option2
REM Start Client
%userrunasstart%

goto optionmenu

:optionq
EXIT
set /P Domainn=Enter Domain Name:
set /P Usern=Enter Username:

runas /profile /user:%domainn%\%usern% "cmd sc.bat"
set service='Service with spaces'
sc \\domainname stop %service%