【问题标题】:Start time of a process running on remote machine using powershell使用 powershell 在远程机器上运行的进程的开始时间
【发布时间】:2012-05-29 08:23:58
【问题描述】:

我想使用 powershell 获取在远程机器上运行的进程的开始时间。 在我的本地计算机上,我只需使用 get-process $processname | select StartTime 即可获得它。

我尝试使用get-process $processname -computername $server1 | select StartTime,但这并没有给我任何回报。

请提出更好的方法。

【问题讨论】:

    标签: powershell


    【解决方案1】:

    使用WMI。此代码返回powershell.exe进程的开始时间:

    $a =  gwmi win32_process -computername $server1| ? { $_.name -eq "powershell.exe" }
    
    $a | % { $_.ConvertToDateTime( $_.CreationDate )}
    

    【讨论】:

    • 如果 $a 包含多个进程,这可能不起作用。我建议你通过管道连接到 foreach-object
    • 好的,这很酷..现在我想以我想要的方式格式化它,比如 5/15/2012 12:35:16 PM ..但是我使用 get- 的格式机制不起作用date 命令..你能帮我吗?
    • 嘿,克里斯蒂安,它工作了,谢谢..但它仍然没有在上午/下午提供时间......非常感谢。
    • @Abhi_Mishra 试试$a | % { $_.ConvertToDateTime( $_.CreationDate ) } | Get-Date -format "MM/dd/yyyy hh:mm:ss tt"
    • 哇,这是最好的方法,它也解决了我的一些其他问题..非常感谢..:)
    【解决方案2】:
    PS> $StartTime= @{n='StartTime';e={$_.ConvertToDateTime($_.CreationDate)}}
    PS> gwmi win32_process -cn $server1 -filter "Name='$processname' AND CreationDate IS NOT NULL" | select Name,$StartTime
    

    【讨论】:

    • 更好的答案,恕我直言,因为它更容易添加其他字段。
    猜你喜欢
    • 1970-01-01
    • 2017-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-23
    相关资源
    最近更新 更多