powershell脚本中的语法错误')'
问题描述:
即时编写一个脚本,用于显示在计算机上运行的服务并启动未运行的服务。 我的命令如下powershell脚本中的语法错误')'
秀STARTMODE“自动”上Powershell的所有服务
$shse = Get-CimInstance -ClassName win32_service -Computername pshells '
-Filter "startmode = 'auto'" |
ConvertTo-Html
服务启动所有服务与状态=停止。
$Service = (Get-CimInstance -ClassName win32_service - Computername pshells '
-Filter "startmode = 'auto'")
If ($Service.status -eq "Stopped"){
Start-Service}
Else {}
将输出转换为HTML。
ConvertTo-Html -body "$shse " |
Out-File C:\Scripts\Service.htm
当在PowerShell中运行此我得到这个错误
At line:6 char:30
+ -Filter "startmode = 'auto'")
+ ~
Unexpected token ')' in expression or statement.
+ CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordExceptio
n
+ FullyQualifiedErrorId : UnexpectedToken
答
这个替换现有的代码:你需要记住,如果你想
$Services =Get-CimInstance -ClassName win32_service -Computername pshells -Filter "startmode = 'auto'"
foreach($service in $Services)
{
If ($Service.state -eq "Stopped"){Start-Service}
Else {"Service is already running."}
}
几件事情使用续行,那么你应该使用baktick(`)不是单引号(')。
您正在获得所有服务状态,并且您希望在停止时启动它们。因此,作为一个整体,您将会以OK作为您检查状态的回报。你应该检查状态不是状态。
整体而言,如果它正在返回并且万一它们中的任何一个已经在运行,那么PS在条件下会有冲突,那就是你应该使用foreach循环。
迭代您在$ services中获得的每个值,检查状态并采取必要的操作并循环;除非列表已用尽,否则请继续处理下一个问题。
希望它可以帮助你。
答
试试这个:
Get-Service -ComputerName pshells | where {$_.StartType -EQ 'Automatic' -and $_.Status -eq 'Stopped'} | Start-Service
答
所以我得到的命令来工作,我在下面的
Do
{
$shse = Get-CimInstance -ClassName win32_service -Computername WIN-9HMIGR3QFE6 -Filter "startmode = 'auto'" |
ConvertTo-Html
$Service = (Get-CimInstance -ClassName win32_service -Computername WIN-9HMIGR3QFE6 -Filter "startmode = 'auto'")
If ($Service.status -eq "Stopped"){
Start-Service}
Else {}
ConvertTo-Html -body "$shse " |
Out-File C:\Test\Service01.html
Start-sleep -Seconds 600
}until ($infinity)
它创建的HTML,在那里我可以看一下服务类型...但是有一个问题,当我关闭服务时,脚本设置为在600秒后再次启动所有脚本,但服务永远不会再起来。所以现在停止启动服务功能不能正常工作
答
在线上:
$Service = (Get-CimInstance -ClassName win32_service - Computername pshells '
-Filter "startmode = 'auto'")
您没有使用反码(')您正在使用单引号(')。这应该是一个逃避新线的反弹。
我似乎无法解决问题?当删除')'时,整个参数无效 –
据我所见,你的报价对有问题:'pshells'后面的单引号没有关闭。 – iRon
你是怎么编辑Rohit的?它仍然无效 –