【问题标题】:Starting a service on remote machines from a text file从文本文件启动远程机器上的服务
【发布时间】: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


【解决方案1】:

很抱歉造成混乱。我的解决方案确实有效,但错误并不代表实际问题。我的文件包含按行分隔并使用正确名称的计算机名称。问题是,如果一台机器因为关闭或不在办公室而不在网络上,那么它会返回我在原始帖子中所述的错误。我没有注意到某些机器肯定已经关闭或不在办公室。感谢大家为解决问题所做的努力,并为浪费您的时间而道歉。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-19
    • 2022-11-24
    • 1970-01-01
    • 2011-09-17
    相关资源
    最近更新 更多