Цитата 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
Так же модель и серийник записываются в одну ячейку, а не в две. Надеюсь я просто не понимаю как правильно вывести результат..