【发布时间】:2020-11-06 09:16:33
【问题描述】:
我目前在从 powershell 调用 sc.exe 创建调用(以创建 Windows 服务)时遇到问题。
我正在尝试使用一系列自定义参数为 mongodb 服务创建 Windows 服务包装器。
$ServiceName = "MyMongoDb"
$DisplayName = "My MongoDb Service"
$mediaPath = "C:\Program Files (x86)\Company\Product"
$ConfigPath = ("{0}\MongoDb\mongod.cfg" -f $mediaPath)
$TargetPath = ("{0}\MongoDb\bin\mongod.exe" -f $mediaPath)
$cmd = 'sc.exe create "{0}" binpath= ""{1}" --service --config="{2}"" displayname= "{3}" start= "auto"' -f $ServiceName,$TargetPath,$ConfigPath,$DisplayName
iex $cmd | Tee-Object ("{0}\output.txt" -f $mediaPath)
Write-Host 'Created Service...'
我遇到的问题是 powershell 失败并出现以下错误 -
x86 : The term 'x86' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path
is correct and try again.
At line:1 char:56
+ sc.exe create "MyMongoDb" binpath= ""C:\Program Files (x86)\Company\Product\Mong ...
+ ~~~
+ CategoryInfo : ObjectNotFound: (x86:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
实际上,它不会将 bin 路径视为单个字符串。我试图以各种不同的方式转义字符串,包括使用 ' 和 "" 但无济于事。
任何帮助将不胜感激。
TYVM
【问题讨论】:
标签: mongodb powershell windows-services