powershell:security-audit:powershell-script-for-network-scan-to-find-non-standard-non-administrative-shared-folders-on-computers-and-servers
Различия
Показаны различия между двумя версиями страницы.
Следующая версия | Предыдущая версия | ||
powershell:security-audit:powershell-script-for-network-scan-to-find-non-standard-non-administrative-shared-folders-on-computers-and-servers [04.05.2018 09:39] – создано Алексей Максимов | powershell:security-audit:powershell-script-for-network-scan-to-find-non-standard-non-administrative-shared-folders-on-computers-and-servers [04.05.2018 13:27] (текущий) – Алексей Максимов | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
===== Powershell скрипт опроса сети для поиска нестандартных сетевых каталогов (исключая административные и служебные) | ===== Powershell скрипт опроса сети для поиска нестандартных сетевых каталогов (исключая административные и служебные) | ||
- | {{: | + | {{: |
- | Здесь представлен вариант **Powershell**-скрипта, | + | |
+ | Скрипт сканирует указанный в первых двух переменных диапазон IP-адресов. | ||
+ | В переменной '' | ||
+ | Обнаружив в сканируемом диапазоне доступный хост, скрипт выполняет проверку доступности порта TCP 139 и, в случае успешного ответа, | ||
+ | |||
+ | <file powershell Network-Scan-for-SMB-Shares.ps1> | ||
+ | [System.Net.IPAddress]$StartScanIP = " | ||
+ | [System.Net.IPAddress]$EndScanIP = " | ||
+ | [string]$ShareNameExclusions = " | ||
+ | # | ||
+ | $Watch = [System.Diagnostics.Stopwatch]:: | ||
+ | $Watch.Start() | ||
+ | # | ||
+ | $ScanIPRange = @() | ||
+ | if($EndScanIP -ne $null) | ||
+ | { | ||
+ | $StartIP = $StartScanIP -split ' | ||
+ | [Array]:: | ||
+ | $StartIP = ([System.Net.IPAddress]($StartIP -join ' | ||
+ | # | ||
+ | $EndIP = $EndScanIP -split ' | ||
+ | [Array]:: | ||
+ | $EndIP = ([System.Net.IPAddress]($EndIP -join ' | ||
+ | # | ||
+ | For ($x=$StartIP; | ||
+ | $IP = [System.Net.IPAddress]$x -split ' | ||
+ | [Array]:: | ||
+ | $ScanIPRange += $IP -join ' | ||
+ | } | ||
+ | } | ||
+ | else | ||
+ | { | ||
+ | | ||
+ | } | ||
+ | |||
+ | Workflow Network-Scan{ | ||
+ | | ||
+ | | ||
+ | | ||
+ | { | ||
+ | | ||
+ | { | ||
+ | [array]$ResultArray = "" | ||
+ | |||
+ | If (Test-Connection -Computername $USING:ip -BufferSize 16 -Count 1 -Quiet) { | ||
+ | If (Test-NetConnection -Computername $USING:ip -Port 139 -InformationLevel Quiet) { | ||
+ | |||
+ | $Response = (net view $USING:ip /all 2>$null | Where-Object { $_ -match ' | ||
+ | | ||
+ | | ||
+ | If ($Line -notmatch $USING: | ||
+ | $ResultArray = $ResultArray + $Line | ||
+ | } | ||
+ | } | ||
+ | | ||
+ | |||
+ | If ($ResultArray) { | ||
+ | | ||
+ | $hName = [System.Net.Dns]:: | ||
+ | } | ||
+ | | ||
+ | $hName = " - " | ||
+ | } | ||
+ | $Item = New-Object System.Object | ||
+ | $Item | Add-Member -MemberType NoteProperty -Name " | ||
+ | $Item | Add-Member -MemberType NoteProperty -Name " | ||
+ | $Item | Add-Member -MemberType NoteProperty -Name " | ||
+ | | ||
+ | } | ||
+ | } | ||
+ | | ||
+ | } # | ||
+ | $WORKFLOW: | ||
+ | } | ||
+ | | ||
+ | } | ||
+ | |||
+ | $Result = Network-Scan $ScanIPRange $ShareNameExclusions | ||
+ | |||
+ | $Result | Sort-Object Version, | ||
+ | Format-Table -GroupBy Version -Wrap -Autosize ` | ||
+ | @{Name=" | ||
+ | @{Name=" | ||
+ | @{Name=" | ||
+ | |||
+ | Write-Host $Result.Count "hosts found on network range " $StartScanIP " | ||
+ | $Watch.Stop() | ||
+ | Write-Host " | ||
+ | |||
+ | </ | ||
---- | ---- | ||
Проверено на следующих конфигурациях: | Проверено на следующих конфигурациях: | ||
- | ^ Версия | + | ^ Версия |
- | | | | + | | Windows Server 2012 R2 Standard EN (6.3.9600)| Windows PowerShell 4.0 | |
---- | ---- |
powershell/security-audit/powershell-script-for-network-scan-to-find-non-standard-non-administrative-shared-folders-on-computers-and-servers.1525415962.txt.gz · Последнее изменение: 04.05.2018 09:39 — Алексей Максимов