powershell - 如何从 PowerShell 启动服务并将启动参数传递给它?

标签 powershell service

我正在尝试从 PowerShell 启动服务,启动参数类似于:-l "192.168.10.10"

遵循 this answer 中的建议没有帮助。

这是我的代码:

#start service
$slave = Get-Service -Name "My Service"
if ($slave.status -eq "Stopped") {
    $ip = Get-NetIPAddress -InterfaceAlias myInterface -AddressFamily IPv4
    $args = @('-l ', "`"$($ip.IPAddress)`"")
    echo $args
    $slave.Start($args) # doesn't work
} else {
    echo "My service is already running"
}

运行结果如下,恐怕没有有用的错误信息:

 -l
"192.168.10.10"

如果我在服务管理器中手动为其提供参数,我已验证该服务启动正常。这需要几秒钟。

最佳答案

我找到了解决方法。它非常微妙,值得分享。

我开始的服务不喜欢 -l 之后的尾随空格。

$args = @('-l', $ip.IPAddress) # works great!

关于powershell - 如何从 PowerShell 启动服务并将启动参数传递给它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57762653/

相关文章:

java - 服务中的 Android BroadcastReceiver 在向其发送广播时给出空指针异常

java - 优化 Android 粘性后台服务的内存使用

android - 我在 Android 服务 def 中做错了什么,它不是可见的服务?

c++ - 无法查询、运行或停止 Windows 服务

powershell - 将 powershell 命令的输出存储在变量中

从 CMD 运行时,PowerShell .ps1 脚本文件被删除

.net - PowerShell等效于curl HTTP POST的文件传输

linux - 什么是 "sufficient access rights to run the Nexus service"(在 Linux 上作为 nexus 用户)

regex - 替换 ini 文件中的 block 文本

PowerShell的 '-Version'参数和CLR版本