2014-01-16 157 views
1

我們正試圖找出用戶使用rdp的機器。如何查找登錄到計算機的客戶端名稱?

使用「quser」實用程序,我們可以獲取有關登錄用戶的所有信息,客戶名稱除外。

以下是命令

function Get-LoggedOnUser 
{ 
    param([String[]]$ComputerName = $env:COMPUTERNAME) 

    $ComputerName | ForEach-Object { 
     (quser /SERVER:$_) -replace '\s{2,}', ',' | 
     ConvertFrom-CSV | 
     Add-Member -MemberType NoteProperty -Name ComputerName -Value $_ -PassThru 
    } 
} 

它顯示它可以在Windows任務管理器,除了客戶名稱中提供的所有信息。

enter image description here

如何使用PowerShell得到客戶名稱?

+1

做'$ env:CLIENTNAME'適合你? 'quser'似乎不包含客戶端名稱信息 – poiu2000

+0

@ poiu2000是否可以通過遠程處理在遠程計算機上運行$ env:ClientName? – Samselvaprabu

+0

沒有$ env:ClientName。你的意思是$ env:ComputerName?是的,它將在遠程會話中可用。 – ravikanth

回答

0

您可以使用此:

http://gallery.technet.microsoft.com/scriptcenter/0e43993a-895a-4afe-a2b2-045a5146048a 

,並查找登錄的用戶與登錄類型的RemoteInteractive

0

你可以閱讀來自安全事件日誌的信息(查找登錄類型10):

$username = '...' 
$eventID = 4624 # 526 on Server 2003 and earlier 
$date  = (Get-Date).Date 

$pattern = 'logon type:\s+10[\s\S]+source network address:\s+(\S+)' 

Get-EventLog Security -InstanceId $eventID -EntryType SuccessAudit ` 
    -After $date -Message '*$username*' ` 
    | ? { $_.Message -match $pattern } ` 
    | % { $matches[1] } ` 
    | select -Unique 

注意,在Server 2003和更早版本,需要檢查的事件ID的528,而不是4624

參考文獻:

相關問題