gpt4 book ai didi

powershell - 命令.startservice()在Powershell中不起作用

转载 作者:行者123 更新时间:2023-12-03 01:16:51 29 4
gpt4 key购买 nike

我有一个小脚本,用户可以在其中输入脚本名称(描述名称),并可以选择修改属性。这是通过GUI界面完成的:一个文本框和一些下拉列表。
我尝试了几种方法来实现它,但是没有一个起作用。

这是我如何检索服务信息:

$thisservice = Get-WmiObject -Class Win32_Service -ComputerName $Server | Where {     $_.displayName -eq $serviceBox.text }

我查看 $server计算机,并将“服务显示名称”与文本框字段 $_.displayName -eq $serviceBox.text中包含的值进行匹配。如果我列出的数据与服务控制台中的数据完全相同,则此方法很好用:.name,.description,.state,.startmode,.displayname

我将服务名称存储在一个变量中:
$servicename = $thisservice.name

我知道您无法启动服务,除非该服务处于“手动”或“自动”状态,因此首先将其设置为自动。在这里,我尝试了不同的方法,但是没有任何效果:
$servicename.ChangeStartMode("Auto")


 Set-Service $servicename -StartupType Auto

然后启动服务(但是即使我在服务管理器的“自动”上预设了状态模式,也无法使用该服务):
$servicename.startservice()
$servicename.stopservcie()也失败。

我在两台不同的计算机上都尝试过,在两台计算机上我都具有管理员权限,并尝试以Admin模式运行脚本,结果相同。我什至直接在PS控制台上尝试了此操作,但无法更改服务状态!
我究竟做错了什么?

最佳答案

您的问题在这里:$servicename = $thisservice.name
这样,您就可以将$servicename设置为字符串,而不是服务对象。因此,您不能再对其调用服务方法。

您应该能够做到:

$thisservice.ChangeStartMode("Automatic")
$thisservice.StartService()

关于powershell - 命令.startservice()在Powershell中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27525371/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com