我正在尝试查找名称中具有特定模式的计划任务,在我的情况下,计划任务的名称中应具有此模式“ 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中工作吗? 在此先感谢
答案 0 :(得分:9)
在Windows 2008 R2上您无法获得Get-ScheduledTask
,因为Windows 2012 R2是Windows 2012 R2引入的schtask
,没有人向后移植。有关更多信息,请参见github上的链接。
最能说明情况的评论是:
嗨@dronkoff-PS 4.0支持此模块。然而 问题不在PowerShell版本中。问题是 未构建此资源依赖的ScheduledTasks模块 Windows Server 2008R2。它最初包含在Windows Server中 2012。
许多PowerShell模块就是这种情况:它们丢失了 从Windows的旧版本(例如网络)中获取。奇怪的 周围有一个轻松的工作。但是在这种情况下转换 没有schools.exe的资源将无法使用 完全重写,可能会导致某些事情 不稳定和越野车(更不用说会产生的问题 schtasks的不同本地化版本)。我真的看不到 不幸的是(除非社区中的其他人 一些有关如何执行此操作的想法)。
但是您是正确的,应该提到Windows Server 当前不支持2008R2。
解决方法是使用Microsoft
和正确的开关。
如果您将它放在schtasks /tn \Microsoft\ServiceNow /query /fo LIST
文件夹中,就像我在示例中一样,则只需运行:
Folder: \Microsoft
HostName: XXXXXACL06
TaskName: \Microsoft\ServiceNow
Next Run Time: 7/4/2018 8:16:22 AM
Status: Ready
Logon Mode: Interactive only
输出:
/v
如果需要更多详细信息,可以使用schtasks /tn \Microsoft\ServiceNow /query /v > service_now_details.txt
(详细)开关:
findstr
编辑-查找图案
如果仅要搜索模式,则必须使用一些其他工具来搜索字符串。 Windows本机支持Select-String
(或Powershell中的sls
(简称schtasks /query /fo LIST | findstr "ServiceNow"
)):
要找到任务名称,您可以使用:
schtasks /query /fo LIST | findstr "ServiceNo*"
或者即使是租船合同也是如此
powershell
或通过schtasks /query /fo LIST | sls 'ServiceNo*'
方式:
ServiceNow
在所有情况下,输出都是这样的(因为我的任务的名称恰好是TaskName: \Microsoft\ServiceNow
)
findstr
Edit2 区分大小写
如果要搜索不区分大小写的字符串,则:
对于/I
,您必须添加select-string
使其不敏感。 Powershell的abc_
(sls)自然不敏感。
答案 1 :(得分:1)
MS脚本库中有一个很棒的脚本,Get-ScheduledTasks(请注意服务名称末尾的S)。此功能适用于可追溯到Windows Server 2003 / Windows XP的Windows早期版本。
感谢惊人的Warren F(又名Rambling Cookie怪物)创建并分享了此内容。