Данная статья моя первая шпаргалка по Powershell.
Изначально я хотел запихнуть всё, что я понаписывал на PowerShell в одну, но когда начал копировать скрипты - статья превратилась в нечитаемую простыню.
Поэтому решил разбить на несколько статей, от простого к сложному (для меня).
Для знающих - это очевидные вещи, но может кому и пригодиться.
В самом начале разберёмся, что у нас за версия Powershell-а, отформатируем телефонный номер в читаемый формат, а также пинганём IP диапазон локальной сети. Принимается конструктивная критика и советы по улучшению скриптов.
Изначально я хотел запихнуть всё, что я понаписывал на PowerShell в одну, но когда начал копировать скрипты - статья превратилась в нечитаемую простыню.
Поэтому решил разбить на несколько статей, от простого к сложному (для меня).
Для знающих - это очевидные вещи, но может кому и пригодиться.
В самом начале разберёмся, что у нас за версия Powershell-а, отформатируем телефонный номер в читаемый формат, а также пинганём IP диапазон локальной сети. Принимается конструктивная критика и советы по улучшению скриптов.
Как узнать версию Powershell:
Windows PowerShell ISE
- # Вариант 1
- $PSVersionTable.PSVersion
- # Вариант 2
- $host.version
- PS C:\> $PSVersionTable.PSVersion
- Major Minor Build Revision
- ----- ----- ----- --------
- 5 1 15063 138
- PS C:\> $host.version
- Major Minor Build Revision
- ----- ----- ----- --------
- 5 1 15063 138
- PS C:\>
Отформатируем телефонный номер:
Windows PowerShell ISE
- #####################################################################
- # С помощью регулярных выражений и PowerShell,
- # приведём не читаемый телефонный номер xxxxxxxxxxxx
- # к читаемому виду +xxx (xx) xxx-xx-xx
- # Работает для белорусских и российских номеров
- # Очень легко переделывается для любых других
- #
- #####################################################################
- [string] $tel = Read-Host "Введите номер телефона в международном формате, например 375296843234"
- if
- ( $tel -match "^375")
- {
- $tel -replace "^(...)(..)(...)(..)(..)", '+$1 ($2) $3-$4-$5'
- }
- elseif
- ( $tel -match "^7")
- {
- $tel -replace "^(.)(...)(...)(..)(..)", '+$1 ($2) $3-$4-$5'
- }
- else {
- $tel= "$tel - Неверный номер"; $tel
- }
- Введите номер телефона в международном формате, например 375291234567:
- 375296843234
- +375 (29) 684-32-34
- PS C:\>
Пингуем IP диапазон:
Windows PowerShell ISE
- #################################################################################
- #
- # С помощью PowerShell пингуем подсеть или некий IP диапазон.
- # Сперва вводим маску подсети (первые 3 октета IP адреса с ТОЧКОЙ!!! на конце)
- # Потом вводим 4 октет адреса с которого начинаем пинг
- # и 4 октет, которым завершаем его
- #
- ##################################################################################
- function IPNetEchoScanner
- {
- [string] $net = Read-Host "Введите маску сети, например 192.168.1."
- [int]$StartIP = Read-Host "Введите начальный IP"
- [int]$EndIP = Read-Host "Ведите конечный IP"
- for ($i = $StartIP; $i -le $EndIP; $i++)
- {
- [string]$IP = $net + $i
- # Убираем переход на новую строку и добавляем табуляцию
- write-host $IP `t -NoNewline
- $result = Test-Connection -ComputerName $IP -Count 1 -Quiet
- if ($result -eq $false)
- {
- Write-Host $result -ForegroundColor Red
- }
- else
- {
- Write-Host $result -ForegroundColor Green
- }
- }
- }
- PS C:\> IPNetEchoScanner
- Введите маску сети, например 192.168.1.: 172.16.0.
- Введите начальный IP: 1
- Ведите конечный IP: 7
- 172.16.0.1 True
- 172.16.0.2 True
- 172.16.0.3 True
- 172.16.0.4 False
- 172.16.0.5 True
- 172.16.0.6 False
- 172.16.0.7 True
- PS C:\>