[英]WMIC Query on Creationdate to find old processes
我正在尝试提取 1 天前在我的 Windows 10 PC 上启动的进程的信息。 我在 Creationdate 字段上没有成功匹配。
wmic process where "Creationdate < $((Get-Date).AddDays(-1).ToShortDateString().toString())" get processid
错误:描述 = 无效查询
wmic process where "Creationdate < 20200906012615" get processid
错误:描述 = 无效查询
如果可能,我确实需要使用 WMIC。
更新
我需要的完整查询示例:
WMIC PROCESS WHERE "commandline LIKE '%_900\\`"%' AND commandline LIKE '%data-dir%' AND Creationdate < 20200906012615" CALL TERMINATE
这是我的初始评论的单行powershell示例,已扩展以包含您提供的过滤条件:
$d=get-date -hour 0 -minute 0 -second 0;gcim win32_process -f "commandline like '%_900`"' and commandline like '%data-dir%' and creationdate<'$d'"|icim -m terminate
我会像这样在powershell中做到这一点,我认为这是最简单的方法。 与 get-wmiobject 不同,get-ciminstance 实际上是为 creationdate 输出日期时间对象。 wmic 中的“Process”是 win32_process 类的别名。
get-ciminstance win32_process |
where { $_.creationdate -lt (get-date).AddDays(-1) -and
$_.commandline -like '*svchost*' } |
remove-ciminstance -whatif
您必须将“.000000-300”附加到 CreationDate 过滤器。
在你的情况下:
WMIC PROCESS WHERE "commandline LIKE '%_900`"%' AND commandline LIKE '%data-dir%' AND Creationdate < '20200906012615.000000-300'" ....
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.