Get-ScheduledTask 命令在 Windows Server 2008 R2 中不起作用



我正在尝试查找名称中包含某种模式的计划任务,就我而言,计划任务的名称中应该具有此模式"ServiceNow"。为此,我正在使用Get-ScheduledTask命令,但此命令在Windows Server 2008 R2中失败。

$taskPattern = "ServiceNow"
$taskDetails = Get-ScheduledTask | Where-Object {$_.TaskName -match $taskPattern  }
$taskName = $taskDetails.TaskName

此脚本失败并显示错误:

"Get-ScheduledTask:"Get-ScheduledTask"一词不被识别为 cmdlet、函数、脚本文件或可操作程序的名称。 检查名称的拼写,或者如果包含路径,请验证 路径是正确的,再试一次。

然后我尝试了这种方法,它给了我"(任务名称日期和时间状态(",但我不知道如何仅从其输出中提取任务名称。

$taskPattern = "ServiceNow" 
$taskExists = schtasks /query | select-string -patt $taskPattern 
$taskExists

任何人都可以告诉我如何通过仅提取实际的任务名称来使其在Windows Server 2008 R2中工作? 提前致谢

您无法在Windows2008 R2上获得Get-ScheduledTask,因为它是为Windows 2012引入的,没有人向后移植它。 有关更多信息,请参阅github上的链接。

最能描述情况的评论是:

嗨@dronkoff - PS 4.0 支持此模块。然而, 问题不在PowerShell版本中。问题是 未生成此资源所依赖的计划任务模块 到 Windows Server 2008R2 中。它最初包含在Windows Server中。 2012年。

许多PowerShell模块都是这种情况:它们缺失。 从旧版本的Windows(例如网络(。在奇数中 偶尔有一个简单的解决方法。但是在这种情况下转换 使用Schtasks的资源.exe如果没有 完全重写,可能会导致一些真正的东西 不稳定和错误(更不用说会出现的问题 Schtasks的不同本地化版本(。我真的看不到这个 不幸发生(除非社区中的其他人有 关于如何做到这一点的一些想法(。

但你是对的,这应该提到 Windows Server 当前不支持 2008R2。

解决方法

解决方法是将schtask与正确的开关一起使用。

如果你把它放在Microsoft文件夹中,就像我在示例中一样,你只需要运行:

schtasks /tn MicrosoftServiceNow /query /fo LIST

输出:

Folder: Microsoft
HostName:      XXXXXACL06
TaskName:      MicrosoftServiceNow
Next Run Time: 7/4/2018 8:16:22 AM
Status:        Ready
Logon Mode:    Interactive only

如果需要更多详细信息,可以使用/v(详细(开关:

schtasks /tn MicrosoftServiceNow /query /v > service_now_details.txt

编辑- 查找模式

如果您只有要搜索的模式,则必须使用一些其他工具来搜索字符串。 窗口本身支持findstr(或 powershell 中的Select-String(简称sls(:

要查找任务名称,您可以使用:

schtasks /query /fo LIST | findstr "ServiceNow"

甚至有野生包机

schtasks /query /fo LIST | findstr "ServiceNo*"

powershell方式:

schtasks /query /fo LIST | sls 'ServiceNo*'

所有情况下的输出都是这样的(因为我的任务被精确地命名为ServiceNow(:

TaskName: MicrosoftServiceNow

编辑2区分大小写

如果要搜索不区分大小写的字符串,则: 对于findstr,您必须添加/I以使其不敏感。 电源外壳的select-string(sls(自然不敏感。

GitHub上有一个很棒的脚本,Get-ScheduledTasks(注意服务名称末尾的S(。 这适用于旧版本的Windows,返回到Windows Server 2003/Windows XP。

感谢了不起的Warren F(又名Rambling Cookie Monster(创造和分享了这个。

最新更新