Added comments for module Get-Query v.1.1
This commit is contained in:
parent
60b6c069fa
commit
3b4057bf15
1 changed files with 79 additions and 0 deletions
79
Scripts/Get-Query.psm1
Normal file
79
Scripts/Get-Query.psm1
Normal file
|
|
@ -0,0 +1,79 @@
|
|||
function Get-Query {
|
||||
Param (
|
||||
$srv="localhost",
|
||||
$user="*"
|
||||
)
|
||||
# Создаем коллекцию - будущий объект
|
||||
$Users = New-Object System.Collections.Generic.List[System.Object]
|
||||
# Используем команду query с параметром user и именем удаленного сервера (забираем вывод в переменную)
|
||||
$query = query user /server:$srv
|
||||
# Проверяем, что перемення не пустая
|
||||
if ($null -ne $query) {
|
||||
# Перечитываем все строки
|
||||
$usr = $query[1..100]
|
||||
# Удаляем лишние пробелы
|
||||
$usr = $usr -replace "(^\s)|(^\>)"
|
||||
$usr = $usr -replace "\s{2,100}"," "
|
||||
# Формируем массив из полученого вывода, где каждая новая строка будет выступать элементом цикла
|
||||
$split1 = $usr -split "\n"
|
||||
# Отправляем массив в цикл
|
||||
foreach ($s in $split1) {
|
||||
# Формируем массив из слов разделенных пробелами
|
||||
$split2 = $s -split "\s"
|
||||
# Проверяем количество элементов в массиве строки
|
||||
if ($split2.Count -eq 6) {
|
||||
# Если длина 2-го элемента в массиве равна 4, значит сессия отключена
|
||||
if ($split2[2].Length -eq 4) {
|
||||
$status = "Disconnect"
|
||||
}
|
||||
# Если 6 или 7 - активна (зависит от локализации)
|
||||
elseif (($split2[2].Length -eq 6) -or ($split2[2].Length -eq 7)) {
|
||||
$status = "Active"
|
||||
}
|
||||
# Заполняем коллекцию значениями из массива строки
|
||||
$Users.Add([PSCustomObject]@{
|
||||
User = $split2[0]
|
||||
Session = $null
|
||||
ID = $split2[1]
|
||||
Status = $status
|
||||
IdleTime = $split2[3]
|
||||
LogonTime = $split2[4]+" "+$split2[5]
|
||||
})
|
||||
}
|
||||
if ($split2.Count -eq 7) {
|
||||
if ($split2[3].Length -eq 4) {
|
||||
$status = "Disconnect"
|
||||
}
|
||||
elseif (($split2[3].Length -eq 6) -or ($split2[3].Length -eq 7)) {
|
||||
$status = "Active"
|
||||
}
|
||||
$Users.Add([PSCustomObject]@{
|
||||
User = $split2[0]
|
||||
Session = $split2[1]
|
||||
ID = $split2[2]
|
||||
Status = $status
|
||||
IdleTime = $split2[4]
|
||||
LogonTime = $split2[5]+" "+$split2[6]
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
$Users
|
||||
}
|
||||
|
||||
# Get-Query 192.168.3.100
|
||||
# User : lifailon
|
||||
# Session : rdp-tcp#34
|
||||
# ID : 1
|
||||
# Status : Active
|
||||
# IdleTime : 2:24
|
||||
# LogonTime : 16.12.2023 11:11
|
||||
#
|
||||
#
|
||||
# Get-Query 192.168.3.100
|
||||
# User : lifailon
|
||||
# Session :
|
||||
# ID : 1
|
||||
# Status : Disconnect
|
||||
# IdleTime : .
|
||||
# LogonTime : 16.12.2023 11:11
|
||||
Loading…
Add table
Add a link
Reference in a new issue