从任务计划程序执行.ps1函数不会产生正确的结果

时间:2016-10-31 14:33:21

标签: powershell

当我在PowerShell函数下运行以从PowerShell窗口停止服务时,它运行正常。 但是当我安排相同的功能并从任务调度程序运行它时,它并没有停止服务,并且事件查看器中也没有捕获事件。

#Function to stop the service
function StopService {
    [cmdletbinding()]
    Param(
        [Parameter(Position=0, Mandatory=$True, HelpMessage="ServiceName")]
        [string]$ServiceName,
        [Parameter(Position=1, Mandatory=$True, HelpMessage="ComputerName")]
        [string]$ComputerName
    )

    Invoke-Command -ComputerName $ComputerName -ScriptBlock {
        Param($Service)
        Stop-Service $Service
    } -ArgumentList $ServiceName
}

任务计划程序详细信息:

enter image description here

1 个答案:

答案 0 :(得分:0)

从.ps1文件中删除(或)注释函数FunctionName后,它正常工作。现在我能够从任务调度程序运行它而没有任何问题。

#Function to stop the service
#Function StopService 
#   {
   [cmdletbinding()]
    Param
    (
    [Parameter(Position=0, Mandatory=$True,HelpMessage="ServiceName")]
    [string]$ServiceName,
    [Parameter(Position=1, Mandatory=$True,HelpMessage="ComputerName")]
    [string]$ComputerName
    )

Invoke-Command -ComputerName $ComputerName -ScriptBlock {param($Service) Stop-Service $Service} -ArgumentList $ServiceName

#    }