Added comments for module Get-Query v.1.1

This commit is contained in:
Alex Kup 2023-12-22 00:15:08 +03:00 committed by GitHub
parent 60b6c069fa
commit 3b4057bf15
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

79
Scripts/Get-Query.psm1 Normal file
View 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