Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Старожил


Сообщения: 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
В подсетях где есть айпишки этот же скрипт корректно выдает информацию.

Отправлено: 10:46, 22-04-2020 | #85