在PowerShell(或quser)中更轻松地解析查询用户 [英] Easier way to parse 'query user' in PowerShell (or quser)

查看:27
本文介绍了在PowerShell(或quser)中更轻松地解析查询用户的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我当前在PowerShell中有以下查询:

query user /server:$server

返回输出:

USERNAME              SESSIONNAME        ID  STATE   IDLE TIME  LOGON TIME  
svc_chthost                               2  Disc         1:05  8/16/2016 12:01 PM  
myusername                rdp-tcp         3  Active          .  8/29/2016 11:29 AM

目前,我使用@(query user /server:$server).Count - 1作为一个值来表示登录的用户数(我知道它不是很好)。但是,现在我想获取诸如USERNAMEIDLOGON TIME之类的信息,以便在脚本的其他部分使用。

我的问题围绕着一种更简单的方式来分析上面的信息,或者可能是对我的问题的更好的解决方案:统计和收集与登录用户相关的信息。

我已经找到了其他似乎效果更好的解决方案,但我相信一定有更简单的方法来完成此任务:

$ComputerName | Foreach-object { 
$Computer = $_ 
try 
    {
        $processinfo = @(Get-WmiObject -class win32_process -ComputerName $Computer -EA "Stop") 
            if ($processinfo) 
            {     
                $processinfo | Foreach-Object {$_.GetOwner().User} |  
                Where-Object {$_ -ne "NETWORK SERVICE" -and $_ -ne "LOCAL SERVICE" -and $_ -ne "SYSTEM"} | 
                Sort-Object -Unique | 
                ForEach-Object { New-Object psobject -Property @{Computer=$Computer;LoggedOn=$_} } |  
                Select-Object Computer,LoggedOn 
            }#If 
    } 
catch 
    { 

    }

推荐答案

评论中很棒的引用,仍然可以获得更多关于此问题的答案,因为它应该有一个更简单的解决方案!

    foreach ($s in $servers) #For Each Server
{
    foreach($ServerLine in @(query user /server:$s) -split "
") #Each Server Line
    {
        #USERNAME              SESSIONNAME        ID  STATE   IDLE TIME  LOGON TIME

        $Parsed_Server = $ServerLine -split 's+'

        $Parsed_Server[1] #USERNAME
        $Parsed_Server[2] #SESSIONNAME
        $Parsed_Server[3] #ID
        $Parsed_Server[4] #STATE
        $Parsed_Server[5] #IDLE TIME
        $Parsed_Server[6] #LOGON TIME
    }
}

此解决方案暂时解决了问题,有点草率。

有关功能更多的更深入的解决方案,请查看对原始问题的评论:)

这篇关于在PowerShell(或quser)中更轻松地解析查询用户的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆