Skip to content

Commit 8baaef7

Browse files
authored
Add files via upload
1 parent ec78214 commit 8baaef7

File tree

1 file changed

+103
-0
lines changed

1 file changed

+103
-0
lines changed

Get-Query/1.2/Get-Query-1.2.psm1

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
function Get-Query {
2+
<#
3+
.SYNOPSIS
4+
Module using query.exe for created object powershell
5+
Does not depend on the localization of the OS
6+
.DESCRIPTION
7+
Example:
8+
Get-Query localhost # default
9+
Get-Query 192.168.1.1
10+
Get-Query 192.168.1.1 -proc # all user process list (default -user *)
11+
Get-Query 192.168.1.1 -proc -user username
12+
.LINK
13+
https://github.com/Lifailon/Get-Query
14+
https://github.com/Lifailon/Remote-Shadow-Administrator
15+
#>
16+
Param (
17+
$srv="localhost",
18+
[switch]$proc,
19+
$user="*"
20+
)
21+
if (!($proc)) {
22+
$Users = New-Object System.Collections.Generic.List[System.Object]
23+
$query = query user /server:$srv
24+
if ($query -ne $null) {
25+
$usr = $query[1..100]
26+
$usr = $usr -replace "(^\s)|(^\>)"
27+
$usr = $usr -replace "\s{2,100}"," "
28+
$split1 = $usr -split "\n"
29+
foreach ($s in $split1) {
30+
$split2 = $s -split "\s"
31+
if ($split2.Count -eq 6) {
32+
if ($split2[2].Length -eq 4) {$status = "Disconnect"
33+
} elseif ($split2[2].Length -eq 6) {$status = "Active"
34+
} elseif ($split2[2].Length -eq 7) {$status = "Active"}
35+
$Users.Add([PSCustomObject]@{
36+
User = $split2[0]
37+
Session = $null
38+
ID = $split2[1]
39+
Status = $status
40+
IdleTime = $split2[3]
41+
LogonTime = $split2[4]+" "+$split2[5]
42+
})
43+
}
44+
if ($split2.Count -eq 7) {
45+
if ($split2[3].Length -eq 4) {$status = "Disconnect"
46+
} elseif ($split2[3].Length -eq 6) {$status = "Active"
47+
} elseif ($split2[3].Length -eq 7) {$status = "Active"}
48+
$Users.Add([PSCustomObject]@{
49+
User = $split2[0]
50+
Session = $split2[1]
51+
ID = $split2[2]
52+
Status = $status
53+
IdleTime = $split2[4]
54+
LogonTime = $split2[5]+" "+$split2[6]
55+
})
56+
}
57+
}
58+
$Users
59+
}
60+
}
61+
if ($proc) {
62+
$Users = New-Object System.Collections.Generic.List[System.Object]
63+
$query = query process $user /server:$srv
64+
if ($query -ne $null) {
65+
$usr = $query[1..5000]
66+
$usr = $usr -replace "(^\s)|(^\>)"
67+
$usr = $usr -replace "\s{2,100}"," "
68+
$split1 = $usr -split "\n"
69+
foreach ($s in $split1) {
70+
$split2 = $s -split "\s"
71+
if ($split2.Count -eq 6) {
72+
$split3 = @($split2[0])
73+
$split3 += $split2[2..5]
74+
$split2 = $split3
75+
}
76+
if ($split2[0] -match "\(") {
77+
$username = "unknown"
78+
} else {
79+
$username = $split2[0]
80+
}
81+
if ($split2.Count -eq 5) {
82+
$Users.Add([PSCustomObject]@{
83+
User = $username
84+
Session = $split2[1]
85+
ID = $split2[2]
86+
PID = $split2[3]
87+
Process = $split2[4]
88+
})
89+
}
90+
if ($split2.Count -eq 4) {
91+
$Users.Add([PSCustomObject]@{
92+
User = $username
93+
Session = $null
94+
ID = $split2[1]
95+
PID = $split2[2]
96+
Process = $split2[3]
97+
})
98+
}
99+
}
100+
$Users
101+
}
102+
}
103+
}

0 commit comments

Comments
 (0)