Имя пользователя:
Пароль:
 

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

Старожил


Сообщения: 211
Благодарности: 2

Профиль | Отправить PM | Цитировать


Цитата Fors1k_m:
А Вас номера мониторов совсем не смущают?)) »
Да вот как раз номера то и смутили. Я просто не понимаю возможно как вашим кодом пользоваться. Сделал так
Код: Выделить весь код
Param($rv=(rv * -ea 0),
    $a=((Get-Date).ToShortDateString() | Foreach-Object {$_ -replace "\.", ""}) ,
    $outfile = "E:\video\1111.csv",
    $pp = "10.10.10.7"
)cls

$PSComputerName = Get-WmiObject -computername $pp Win32_NetworkAdapter -Filter "NetConnectionStatus>0" |foreach {$_.PSComputerName}
$MACAddress = Get-WmiObject -computername $pp Win32_NetworkAdapter -Filter "NetConnectionStatus>0" |foreach {$_.MACAddress} 
$namenet = Get-WmiObject -computername $pp Win32_NetworkAdapter -Filter "NetConnectionStatus>0" |foreach {$_.name}
$AdapterType = Get-WmiObject -computername $pp Win32_NetworkAdapter -Filter "NetConnectionStatus>0" |foreach {$_.AdapterType}
$Speed = Get-WmiObject -computername $pp Win32_NetworkAdapter -Filter "NetConnectionStatus>0" |foreach {$_.Speed} 
$Manufacturer = Get-WmiObject -computername $pp -ClassName Win32_ComputerSystem  |foreach {$_.Manufacturer}  
$Model = Get-WmiObject -computername $pp -ClassName Win32_ComputerSystem  |foreach {$_.Model} 
$SN = Get-WmiObject -computername $pp Win32_BaseBoard | foreach {$_.SerialNumber}        

$hash_object = [ordered] @{PSComputerName = "$PSComputerName"; Manufacturer = "$Manufacturer"; Model = "$Model"; Serialnumber = "$SN"; MACAddress = "$MACAddress"; name = "$namenet"; AdapterType = "$AdapterType"; Speed = "$Speed";  } 
gwmi -ea 0 wmimonitorid -Namespace root\wmi|%{$hash_object.add("Monitor"+ ++$i,(($_.UserFriendlyName|?{($_ -ne 0)}|%{[char]$_}) -join "")+' ['+(($_.SerialNumberID|?{($_ -ne 0)}|%{[char]$_}) -join "")+']')}

$ps_object = [pscustomobject]$hash_object
$ps_object | export-csv $outfile -notype -enc utf8 -d ';' -append
вывод получился такой:
Код: Выделить весь код
"PSComputerName";"Manufacturer";"Model";"Serialnumber";"MACAddress";"name";"AdapterType";"Speed";"Monitor11"
"DESKTOP-84S5RK8 DESKTOP-84S5RK8 DESKTOP-84S5RK8 DESKTOP-84S5RK8 DESKTOP-84S5RK8 DESKTOP-84S5RK8 DESKTOP-84S5RK8";"Gigabyte Technology Co., Ltd.";"To be filled by O.E.M.";"To be filled by O.E.M.";"74:D4:35:08:86:7C      ";"Realtek PCIe GbE Family Controller VirtualBox Host-Only Ethernet Adapter VirtualBox Host-Only Ethernet Adapter VirtualBox Host-Only Ethernet Adapter VirtualBox Host-Only Ethernet Adapter VirtualBox Host-Only Ethernet Adapter VirtualBox Host-Only Ethernet Adapter";"Ethernet 802.3      ";"100000000      ";"HP W2072a [CNC401NT3L]"
И еще из-за того, что имя столбца всегда разное export-csv не может записать инфу файл больше одного раза получается ошибка:
Код: Выделить весь код
export-csv : Не удается присоединить содержимое CSV к следующему файлу: E:\video\1111.csv. У присоединяемого объекта отсутствует свойство, соответствующее сл
едующему столбцу: Monitor11. Чтобы продолжить работу при наличии несоответствий свойств, добавьте параметр -Force и выполните команду снова.
строка:20 знак:14
+ $ps_object | export-csv $outfile -notype -enc utf8 -d ';' -append
+              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidData: (Monitor11:String) [Export-Csv], InvalidOperationException
    + FullyQualifiedErrorId : CannotAppendCsvWithMismatchedPropertyNames,Microsoft.PowerShell.Commands.ExportCsvCommand
Так же модель и серийник записываются в одну ячейку, а не в две. Надеюсь я просто не понимаю как правильно вывести результат..

Отправлено: 23:41, 03-06-2020 | #25