Powershell试图重新启动打印假脱机程序



我有一个PowerShell脚本获取Windows打印假脱机程序的实际名称

$serviceDisplayName = "Print Spooler"
$actualServiceName = (Get-Service -DisplayName "$serviceDisplayName").Name

我可以准确地发现打印假脱机程序是否正在运行:

Try
{
    $serviceInqResults = get-service -Name $actualServiceName -ErrorVariable err
}
Catch 
{
    write-output "An exception occurred while trying to see if $serviceDisplayName were running or not."
    write-output $err
}

但是,当我尝试通过它的真实名称或其显示名称重新启动打印假脱机程序时,我得到相同的错误:

if($serviceInqResults.Status -ne "Running")
{
    write-output "The service is not running. Starting the $serviceDisplayName "
   try
   {
        Start-Service -Name $actualServiceName -ErrorVariable err
   }
    
    Catch
    {
        write-output $err
    }

Service 'Print Spooler (Spooler)' cannot be started due 
to the following error: Cannot open Spooler service on computer '.'.

我已尝试以"打印假脱机"、"打印假脱机"、"打印假脱机"(假脱机)&;都有相同的错误,但我可以在服务控制管理器(Services)中启动它。

我想知道我错过了什么。

我不明白为什么你的代码不工作。[腮红]然而,以下工作在我的win10, 20h2安装,而运行提升…

$PrintSpooler = Get-Service -Name Spooler
$PrintSpooler
if ($PrintSpooler.Status -eq 'running')
    {
    Stop-Service -InputObject $PrintSpooler
    }
Get-Service -Name Spooler
Start-Service -Name Spooler
Get-Service -Name Spooler

输出……

Status   Name               DisplayName
------   ----               -----------
Running  Spooler            Print Spooler
Stopped  Spooler            Print Spooler
Running  Spooler            Print Spooler

使用@Lee_Dailey使用-InputObject的示例,它返回假脱机程序,而不是打印假脱机程序(谢谢,Lee)

PS C:Usersfred> Get-Service -InputObject "Print Spooler"
Status   Name               DisplayName
------   ----               -----------
Running  Spooler            Print Spooler

PS C:Usersfred>

最新更新