【发布时间】:2020-06-27 20:31:10
【问题描述】:
我遇到了一个问题,我制作了一个包含设置服务所需的所有机器的文本文件。它看起来如下:
$computernames= Get-Content ".\temp\ComputerNames.txt"
foreach ($name in $computernames){
Get-Service -Name 'Remote Registry' -ComputerName $name | Set-Service -Status Running -StartupType Automatic -WhatIf
}
如果我给它提供机器的名称,主要的 Get-service 行可以正常工作。但是,使用此变量 $name 我无法使命令正常工作。它一直给我以下错误:
Get-Service : Cannot find any service with service name 'Remote Registry'.
At line:8 char:5
+ Get-Service -Name 'Remote Registry' -ComputerName $name | Set-Ser ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (Remote Registry:String) [Get-Service], ServiceCommandException
+ FullyQualifiedErrorId : NoServiceFoundForGivenName,Microsoft.PowerShell.Commands.GetServiceCommand
感谢任何建议。
【问题讨论】:
-
将
-ComputerName $name也添加到Set-Service:) -
@MathiasR.Jessen 我刚刚试了一下。它似乎没有帮助。在单个机器上执行此命令时我可以很好地执行此命令,但是当尝试从我的文本文件中定位机器时,它会给我一个错误,指出找不到该服务。
-
您是否确认文本文件系统名称是准确的,并且它们没有前导/尾随非打印字符或空白字符?
-
请向我们展示 ComputerNames.txt 文件的前两行或三行。看起来这不是每个计算机名都在单独的行上的文件,或者它可能是带有标题的 CSV 文件
-
手动测试它——你的错误不是连接到远程机器的问题,它告诉你它没有在远程机器上找到名为“远程注册表”的服务。手动对有问题的机器运行命令,并确认上面有一个具有该名称的服务(假设它是 windows,应该有)
标签: powershell administration system-administration