Давайте погрузимся в то, как создать инструмент тестирования портов PowerShell, который позволяет вам проверять открытые порты по номеру и метке.
Для создания надежного сценария, который не упадет наполовину на ваших серверах, важно первым делом удостовериться, что предварительные требования, необходимые для достижения конечного результата, выполнены.
Какие же эти предварительные требования? Предварительные требования – это службы, такие как FTP, HTTP, DCOM, WMI, WSMAN и т. д. Соединение, которое вы пытаетесь установить с сервером, обычно зависит от таких служб.
Есть иерархия нескольких уровней проверок, которые вы можете выполнить на своих серверах перед попыткой установить соединение, в зависимости от того, насколько вы хотите быть строгим.
Во-первых, у вас есть весь стек OSI для преодоления сетевой стороны. Это не включает службы на системе хоста, с которой вы выполняете сценарий, и все остальное на удаленной системе хоста.
Один из первых тестов, который вам нужно выполнить при запросе удаленного сервера, – это проверка того, чтобы убедиться, что соответствующие сетевые порты открыты и доступны. В зависимости от служб, работающих на удаленном сервере, зависит от портов, которые вам нужно запросить.
I always used to either not even attempting to test port connections or fumbling around with finding that latest Test-Port script I had scavenged somewhere. Once I found it to figure out what ports I actually needed to a test ahead of time. Today was the final straw.
I needed to query a set of domain controllers before running some CIM queries against them. I went about my normal fumbling around and decided enough was enough and sat down and built my own, fully featured port testing script.
С помощью этого сценария Technet мне удалось создать довольно хорошую пару функций PowerShell, которые позволят вам не только проверять открытые TCP и UDP-порты, но и тестировать группы портов по роли сервера. Больше не нужно искать в Google каждый раз, чтобы узнать, какие порты использует та или иная служба!
Предоставляется, особенно для Active Directory, порты могут различаться в зависимости от операционной системы сервера, различных служб на контроллере домена и т. д. Не стесняйтесь настраивать их по необходимости для вашей среды.
Вот скриншот примера использования:

Как видите, вы можете указать любое количество серверов, и он выведет красивый список объектов, разбитых по группе портов служб и порту для каждого компьютера. Пока что это очень пригодилось! Надеюсь, вы также найдете в нем пользу, как и я!