Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function Get-QUserInfo
- {
- [CmdletBinding()]
- Param (
- [Parameter ()]
- [string[]]
- $ComputerName = $env:COMPUTERNAME
- )
- begin
- {
- $Header = 'UserName','SessionName','ID','State','IdleTime','LogonTime'
- $No_Connection = '-- No Connection --'
- }
- process
- {
- foreach ($CN_Item in $ComputerName)
- {
- if (Test-Connection -ComputerName $CN_Item -Count 1 -Quiet)
- {
- quser /server:$CN_Item |
- Select-Object -Skip 1 |
- ForEach-Object {($_ -replace '\s{2,}', ',').Trim()} |
- ConvertFrom-Csv -Header $Header |
- ForEach-Object {
- if ($_.IdleTime -eq 'none')
- {
- $IdleTime = $Null
- }
- else
- {
- $IdleTime = [timespan]$_.IdleTime
- }
- [PSCustomObject]@{
- ComputerName = $CN_Item
- UserName = $_.UserName
- SessionName = $_.SessionName
- ID = $_.ID
- State = $_.State
- IdleTime = $IdleTime
- LogonTime = [datetime]$_.LogonTime
- }
- }
- }
- else
- {
- [PSCustomObject]@{
- ComputerName = $CN_Item
- UserName = $No_Connection
- SessionName = $No_Connection
- ID = $No_Connection
- State = $No_Connection
- IdleTime = $No_Connection
- LogonTime = $No_Connection
- }
- }
- } # end >> foreach ($CN_Item in $ComputerName)
- } # end >> process {}
- end {}
- } # end >> function Get-QUserInfo
- Get-QUserInfo -ComputerName LocalHost
- ''
- Get-QUserInfo -ComputerName '10.0.0.1'
- ''
- Get-QUserInfo -ComputerName '127.0.0.1', BetterNotBeThere, LocalHost
- ''
Add Comment
Please, Sign In to add comment