I am currently having an issue when calling the sc.exe create call (to create a windows service) from powershell.
I am trying to create a windows service wrapper for a mongodb service with a series of custom arguments.
$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...'
The issue that i am having is that powershell is failing with the following error -
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
Effectively, its not treating the bin path as a single string. I have attempted to escape the string in a variety of different ways including using ' and "" but to no avail.
Any help would be appreciated.
TYVM