Как установить модуль PSTerminalServices

Задача: В ходе составления пошаговой заметке, как посредством Zabbix Server 4.4 on Ubuntu 18.04 Server мониторить RDP соединения, сессии и т.д на Windows Server 2012 R2 Std мне понадобилось чтобы в системе был модуль PSTerminalServices посредством которого я все это проверну, но вот в процессе его инсталляции в систему столкнулся с недопонимание как он должен быть инсталлирован. Ниже моя пошаговая заметка как это дело поправить от и до.

Шаг №1: Авторизуюсь в системе Windows с правами Администратора ( это у меня учетная запись Login: ekzorchik Pass: 712mbddr@) и запускаю сперва консоль командной строки, а после перехожу в консоль PowerShell:

1234567891011Win + X – Command Prompt (Admin) – Yes Microsoft Windows [Version 6.3.9600] (c) 2013 Microsoft Corporation. All rights reserved. C:\Windows\system32>powershell Windows PowerShell Copyright (C) 2014 Microsoft Corporation. All rights reserved.

Шаг №2: Вывожу на консоль какие пути использует консоль PowerShell когда производится подгрузка модуля в скрипте или в интерактивном режиме:

1234567PS C:\Windows\system32> $env:PSModulePath C:\Users\ekzorchik\Documents\WindowsPowerShell\Modules;C:\Program Files\Windows PowerShell\Modules;C:\Windows\system32\WindowsPowerShell\v1.0\Modules\ PS C:\Windows\system32>

Шаг №3: У меня есть модуль PSTerminalServices через который я расписываю как мониторить состояние RDP посредством Zabbix Server 4.4 и вот его мне нужно добавить в систему дабы через Zabbix Agent получать значения.

Я файлы модуля скопировал в созданный каталог "RDP":

12345678910111213141516171819C:\Windows\System32\WindowsPowerShell\v1.0\Modules\Rdp (Directory) Format PSFanatic.PSTerminalServices.Format.ps1xml (Directory) Bin Cassia.dll Cassia.zip (Directory) en-US about_PSTerminalServices_Module.help.txt PSTerminalServices.psd1 PSTerminalServices.psm1

Проверяю, а какие теперь модули видит оболочка PowerShell:

123PS C:\Windows\system32> Get-Module -ListAvailable Directory: C:\Windows\system32\WindowsPowerShell\v1.0\Modules

но увы в выводе нет моего модуля: PSTerminalServices

Шаг №4: Что я сделал чтобы модуль появился в списке, просто переименовал директорию RDP в PSTerminalServices и после вывод команды Get-Module -ListAvailable показал наличии моего модуля.

Шаг №5: Пробую импортировать модуль в консоль PowerShell, но перед этим закрываю консоль PowerShell и по шагам выше открываю, затем:

12345678910111213Win + X – Command Prompt (Admin) – Yes C:\Windows\system32>powershell Windows PowerShell Copyright (C) 2014 Microsoft Corporation. All rights reserved. PS C:\Windows\system32> Set-ExecutionPolicy Unrestricted PS C:\Windows\system32> Import-Module PSTerminalServices PS C:\Windows\system32>

ошибок нет, модуль подгружен.

Ниже, пример получения активных RDP сессий с текущего сервера где у меня поднята роль терминального сервера:

12345678910111213141516171819202122232425PS C:\Windows\system32> Get-TSSession -State Active -ComputerName localhost | foreach {$_.DomainName, $_.UserName, $_.ClientName, (($_.IPAddress).IPAddressToString), “”} SRV-TS01 ekzorchik navy 172.33.33.16 SRV-TS01 alektest EKZORCH-D9VNKEM 172.33.33.11 SRV-TS01 alektest1 EKZORCH-GTVREI9 172.33.33.43

Шаг №6: Получить справку по модулю

1PS C:\script> get-help PSTerminalServices

Вот отлично. Модуль работает. На этом у меня пока все, с уважением автор блога Олло Александр aka ekzorchik.