问题描述
我正在寻找一个简单的命令来查看关于服务器的用户登录。我知道这一个:
I am searching for a simple command to see logged on users on server.I know this one :
Get-WmiObject -Class win32_computersystem
但是这不会给我我需要的信息。它返回:域Manufactureer模型名称(机器名)PrimaryOwnerNameTotalPhysicalMemory
but this will not provide me the info I need.It returns :domainManufactureerModelName (Machine name)PrimaryOwnerNameTotalPhysicalMemory
我在Windows 2012服务器上运行的Powershell 3.0。
I run Powershell 3.0 on a Windows 2012 server.
此外
Get-WmiObject Win32_LoggedOnUser -ComputerName $Computer | Select Antecedent -Unique
让我没有确切的答案,我需要。我很想看到还有空闲时间,或者如果他们主动或消失。
gives me not the exact answers I need.I would love to see as well the idle time, or if they are active or away.
推荐答案
有没有简单的命令来做到这一点。你可以写一个函数,或者把你所选择的几个是在不同的code库可在网上。我用这样的:
There's no "simple command" to do that. You can write a function, or take your choice of several that are available online in various code repositories. I use this:
function get-loggedonuser ($computername){
#mjolinor 3/17/10
$regexa = '.+Domain="(.+)",Name="(.+)"$'
$regexd = '.+LogonId="(\d+)"$'
$logontype = @{
"0"="Local System"
"2"="Interactive" #(Local logon)
"3"="Network" # (Remote logon)
"4"="Batch" # (Scheduled task)
"5"="Service" # (Service account logon)
"7"="Unlock" #(Screen saver)
"8"="NetworkCleartext" # (Cleartext network logon)
"9"="NewCredentials" #(RunAs using alternate credentials)
"10"="RemoteInteractive" #(RDP\TS\RemoteAssistance)
"11"="CachedInteractive" #(Local w\cached credentials)
}
$logon_sessions = @(gwmi win32_logonsession -ComputerName $computername)
$logon_users = @(gwmi win32_loggedonuser -ComputerName $computername)
$session_user = @{}
$logon_users |% {
$_.antecedent -match $regexa > $nul
$username = $matches[1] + "\" + $matches[2]
$_.dependent -match $regexd > $nul
$session = $matches[1]
$session_user[$session] += $username
}
$logon_sessions |%{
$starttime = [management.managementdatetimeconverter]::todatetime($_.starttime)
$loggedonuser = New-Object -TypeName psobject
$loggedonuser | Add-Member -MemberType NoteProperty -Name "Session" -Value $_.logonid
$loggedonuser | Add-Member -MemberType NoteProperty -Name "User" -Value $session_user[$_.logonid]
$loggedonuser | Add-Member -MemberType NoteProperty -Name "Type" -Value $logontype[$_.logontype.tostring()]
$loggedonuser | Add-Member -MemberType NoteProperty -Name "Auth" -Value $_.authenticationpackage
$loggedonuser | Add-Member -MemberType NoteProperty -Name "StartTime" -Value $starttime
$loggedonuser
}
}
这篇关于以当前登录的用户(域和机)+状态PowerShell脚本看到(活动,空闲,远)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!