Старожил
Сообщения: 211
Благодарности: 2
|
Профиль
|
Отправить PM
| Цитировать
Цитата YuS_2:
Приведите в порядок код и всё заработает... »
|
этот
код
Код: 
param (
#[parameter(Mandatory=$true)]
$encode = 65001,
[string]$outfile = 'table.csv',
[int]$number = 1
)
function convert ($from, $to){
begin{
$fenc = [text.encoding]::getencoding($from)
$tenc = [text.encoding]::getencoding($to)
}
process{
$a = $tenc.getbytes($_)
$fenc.getstring($a)
}
}
[net.servicepointmanager]::securityprotocol = 'ssl3,tls,tls11,tls12'
[array]$arr = gc 'D:\PowerShell\list_Net.txt'
$ips = 130..190 |%{$n=$_;$arr|%{"$_"+$n}}|sort|?{test-connection $_ -count 1 -q}
$ips|%{
$html = iwr $_
$tables = $html.parsedhtml.getelementsbytagname("table")
$tbl = ($tables|?{($_.getelementsbytagname('table')|%{$_}).count -eq 0})[$number]|%{
$headers = @();
$tr = $_|%{$_.getelementsbytagname("tr")}
if($headers = $tr|?{$_.firstchild().tagname -eq 'th'}|
%{$_.getelementsbytagname("th")}|select -exp innertext){
if ($headers -match [char]208){$headers=$headers|convert $encode 28591}
$headers = $headers.trim()
} else {
$headers = 1..([linq.parallelenumerable]::max(
[linq.parallelenumerable]::asparallel($tr.lastchild().cellindex)
)+1)|%{"H$_"}
}
$rowind = ,1 * $headers.count
$tr.where({$_.firstchild().tagname -eq 'td'})|%{
$row = $_.getelementsbytagname("td") |? innertext -ne $null| select innertext,rowspan,colspan
if($row.innertext -match [char]208){
for($i=0;$i -lt $row.count;$i++){
$row[$i].innertext = $row[$i].innertext|convert $encode 28591
}
}
try {
$str = [ordered]@{}
$k=0
foreach ($item in $row){
if ($rowind[$k] -gt 1){
while ($rowind[$k] -gt 1){
$str[$headers[$k]] = $null
$rowind[$k] -= 1
$k++
}
}
if (($colspan = $item.colspan) -gt 1) {
$str[$headers[$k]] = if($item.innertext){
$item.innertext.trim()
} else {$null}
if ($item.rowspan -gt 1){$rowind[$k] = $item.rowspan}
$k++
while ($colspan -gt 1){
$str[$headers[$k]] = $null
$colspan -=1
if ($rowind[$k] -gt 1){$rowind[$k]-=1}
$k++
}
} else {
$str[$headers[$k]] = if($item.innertext){
$item.innertext.trim()
} else {$null}
if ($item.rowspan -gt 1){$rowind[$k] = $item.rowspan}
$k++
}
}
[pscustomobject]$str
} catch {
write-host Разметка заголовков не соответствует размерам строк -for red
write-host $_ -for cyan
}
}
}
[pscustomobject]@{
'IP' = $_
'MAC-адрес' = $tbl[([array]::indexof($tbl.h1,'MAC-адрес'))].h2
'Номер телефона' = if ([array]::indexof($tbl.h1,'Номер телефона') -ne -1){
$tbl[([array]::indexof($tbl.h1,'Номер телефона'))].h2
} else {
$tbl[([array]::indexof($tbl.h1,'Номер телефона 1'))].h2
}
'Серийный номер' = $tbl[([array]::indexof($tbl.h1,'Серийный номер'))].h2
'Номер модели' = $tbl[([array]::indexof($tbl.h1,'Номер модели'))].h2
}
} |export-csv D:\PowerShell\all_phone.csv -notype -enc utf8 -d ';'
я скопировал у вас, менял только путь к файлу подсетей и путь вывода. Отрабатывает нормально, но если нет в сети айпишек то берет какой-то результат и приписывает его ко всему, что пингуется.
Результат выполнения кода
Код: 
10.81.1.134 00778DF88C94 60025 WZP23060APA CP-7821
10.81.1.137 00778DF88C94 60025 WZP23060APA CP-7821
10.81.1.139 00778DF88C94 60025 WZP23060APA CP-7821
10.81.1.140 00778DF88C94 60025 WZP23060APA CP-7821
10.81.1.141 00778DF88C94 60025 WZP23060APA CP-7821
10.81.1.143 00778DF88C94 60025 WZP23060APA CP-7821
10.81.1.144 00778DF88C94 60025 WZP23060APA CP-7821
10.81.1.145 00778DF88C94 60025 WZP23060APA CP-7821
10.81.1.146 00778DF88C94 60025 WZP23060APA CP-7821
10.81.1.147 00778DF88C94 60025 WZP23060APA CP-7821
10.81.1.148 00778DF88C94 60025 WZP23060APA CP-7821
10.81.1.149 00778DF88C94 60025 WZP23060APA CP-7821
10.81.1.150 00778DF88C94 60025 WZP23060APA CP-7821
10.81.1.151 00778DF88C94 60025 WZP23060APA CP-7821
10.81.1.152 00778DF88C94 60025 WZP23060APA CP-7821
10.81.1.155 00778DF88C94 60025 WZP23060APA CP-7821
10.81.1.157 00778DF88C94 60025 WZP23060APA CP-7821
10.81.1.160 00778DF88C94 60025 WZP23060APA CP-7821
10.81.1.163 00778DF88C94 60025 WZP23060APA CP-7821
10.81.1.165 00778DF88C94 60025 WZP23060APA CP-7821
10.81.1.166 00778DF88C94 60025 WZP23060APA CP-7821
10.81.1.167 00778DF88C94 60025 WZP23060APA CP-7821
10.81.1.169 00778DF88C94 60025 WZP23060APA CP-7821
10.81.1.170 00778DF88C94 60025 WZP23060APA CP-7821
10.81.1.172 00778DF88C94 60025 WZP23060APA CP-7821
ошибки, которые выдал, когда нет айпишек.
Код: 
iwr : Невозможно соединиться с удаленным сервером
строка:23 знак:10
+ $html = iwr $_
+ ~~~~~~
+ CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebException
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand
iwr : Невозможно соединиться с удаленным сервером
строка:23 знак:10
+ $html = iwr $_
+ ~~~~~~
+ CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebException
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand
iwr : Невозможно соединиться с удаленным сервером
строка:23 знак:10
+ $html = iwr $_
+ ~~~~~~
+ CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebException
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand
iwr : Невозможно соединиться с удаленным сервером
строка:23 знак:10
+ $html = iwr $_
+ ~~~~~~
+ CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebException
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand
iwr : Невозможно соединиться с удаленным сервером
строка:23 знак:10
+ $html = iwr $_
+ ~~~~~~
+ CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebException
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand
iwr : Невозможно соединиться с удаленным сервером
строка:23 знак:10
+ $html = iwr $_
+ ~~~~~~
+ CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebException
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand
iwr : Невозможно соединиться с удаленным сервером
строка:23 знак:10
+ $html = iwr $_
+ ~~~~~~
+ CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebException
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand
iwr : Невозможно соединиться с удаленным сервером
строка:23 знак:10
+ $html = iwr $_
+ ~~~~~~
+ CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebException
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand
iwr : Невозможно соединиться с удаленным сервером
строка:23 знак:10
+ $html = iwr $_
+ ~~~~~~
+ CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebException
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand
iwr : Невозможно соединиться с удаленным сервером
строка:23 знак:10
+ $html = iwr $_
+ ~~~~~~
+ CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebException
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand
iwr : Невозможно соединиться с удаленным сервером
строка:23 знак:10
+ $html = iwr $_
+ ~~~~~~
+ CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebException
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand
iwr : Невозможно соединиться с удаленным сервером
строка:23 знак:10
+ $html = iwr $_
+ ~~~~~~
+ CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebException
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand
iwr : Невозможно соединиться с удаленным сервером
строка:23 знак:10
+ $html = iwr $_
+ ~~~~~~
+ CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebException
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand
iwr : Невозможно соединиться с удаленным сервером
строка:23 знак:10
+ $html = iwr $_
+ ~~~~~~
+ CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebException
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand
iwr : Невозможно соединиться с удаленным сервером
строка:23 знак:10
+ $html = iwr $_
+ ~~~~~~
+ CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebException
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand
iwr : Невозможно соединиться с удаленным сервером
строка:23 знак:10
+ $html = iwr $_
+ ~~~~~~
+ CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebException
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand
iwr : Невозможно соединиться с удаленным сервером
строка:23 знак:10
+ $html = iwr $_
+ ~~~~~~
+ CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebException
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand
iwr : Невозможно соединиться с удаленным сервером
строка:23 знак:10
+ $html = iwr $_
+ ~~~~~~
+ CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebException
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand
iwr : Невозможно соединиться с удаленным сервером
строка:23 знак:10
+ $html = iwr $_
+ ~~~~~~
+ CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebException
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand
iwr : Невозможно соединиться с удаленным сервером
строка:23 знак:10
+ $html = iwr $_
+ ~~~~~~
+ CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebException
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand
iwr : Невозможно соединиться с удаленным сервером
строка:23 знак:10
+ $html = iwr $_
+ ~~~~~~
+ CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebException
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand
iwr : Невозможно соединиться с удаленным сервером
строка:23 знак:10
+ $html = iwr $_
+ ~~~~~~
+ CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebException
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand
iwr : Невозможно соединиться с удаленным сервером
строка:23 знак:10
+ $html = iwr $_
+ ~~~~~~
+ CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebException
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand
iwr : Невозможно соединиться с удаленным сервером
строка:23 знак:10
+ $html = iwr $_
+ ~~~~~~
+ CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebException
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand
iwr : Невозможно соединиться с удаленным сервером
строка:23 знак:10
+ $html = iwr $_
+ ~~~~~~
+ CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebException
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand
В подсетях где есть айпишки этот же скрипт корректно выдает информацию.
|