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

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

Старожил


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

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


в общем что-то получилось
Скрытый текст
Код: Выделить весь код
$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-CimInstance -computername $pp -ClassName Win32_ComputerSystem  |foreach {$_.Manufacturer}  
$Model = Get-CimInstance -computername $pp -ClassName Win32_ComputerSystem  |foreach {$_.Model} 
$SN = Get-WmiObject -computername $pp Win32_BaseBoard | foreach {$_.SerialNumber}        
$mm = [char[]]((gwmi wmimonitorid -Namespace root\wmi -ComputerName $pp).UserFriendlyName)-join "" 
[string]$mmod1 = $mm[0..12]
[string]$mmod2 = $mm[13..26]
$msn = [char[]]((gwmi wmimonitorid -Namespace root\wmi -ComputerName $pp).SerialNumberID)-join ""
[string]$msn1 = $msn[0..15]
[string]$msn2 = $msn[16..32]
$hash_object = [ordered] @{PSComputerName = $PSComputerName; Manufacturer = $Manufacturer; Model = $Model; Serialnumber = $SN; MACAddress = $MACAddress; name = $namenet; AdapterType = $AdapterType; Speed = $Speed; "Monitor 1" = $mmod1; "SN 1" = $msn1; "Monitor 2" = $mmod2; "SN 2" = $msn2;  } 
$ps_object = [pscustomobject]$hash_object
$ps_object | export-csv $outfile -notype -enc utf8 -d ';' -append
но есть проблема. Если мониторов вообще нет то записываются предыдущие данные. Как оставить поле пустым или его заполнить например "-"?!
Скрытый текст
Код: Выделить весь код
"PSComputerName";"Manufacturer";"Model";"Serialnumber";"MACAddress";"name";"AdapterType";"Speed";"Monitor 1";"SN 1";"Monitor 2";"SN 2"
"E";"Hewlett-Packard";"HP ProDesk 400 G2 MT";"CZC4483YK7";"A0:D3:C1:4D:51:2D";"Realtek PCIe GBE Family Controller";"Ethernet 802.3";"100000000";"HP E231      ";"3CQ3510L75      ";"HP E231      ";"CNC238NS0G      "
"05-SERVER";"Hewlett-Packard";"HP ProDesk 400 G2 MT";"CZC44843RP";"A0:D3:C1:4D:6B:CE";"Realtek PCIe GBE Family Controller #4";"Ethernet 802.3";"1000000000";"";"3CQ3510L75      ";"";"CNC238NS0G      "
"05-SERVER";"Hewlett-Packard";"HP ProDesk 400 G2 MT";"CZC44843RP";"A0:D3:C1:4D:6B:CE";"Realtek PCIe GBE Family Controller #4";"Ethernet 802.3";"1000000000";"";"3CQ3510L75      ";"";"CNC238NS0G      "
"TT-PC-AV";"Dell Inc.";"OptiPlex 5050";"/C7JLBS2/CNFCW0087V029Y/";"54:BF:64:7E:FE:E3";"Intel(R) Ethernet Connection (5) I219-V";"Ethernet 802.3";"100000000";"HP E243      ";"CNK91733GB      ";"";""


ну и как то избавиться от красноты, так где нет мониторов вообще такие вот ошибки:
Скрытый текст
Код: Выделить весь код
gwmi : Не поддерживается 
D:\PowerShell\test\3.ps1:15 знак:17
+ ... = [char[]]((gwmi wmimonitorid -Namespace root\wmi -ComputerName $pp). ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [Get-WmiObject], ManagementException
    + FullyQualifiedErrorId : GetWMIManagementException,Microsoft.PowerShell.Commands.GetWmiObjectCommand
 
gwmi : Не поддерживается 
D:\PowerShell\test\3.ps1:18 знак:18
+ ... = [char[]]((gwmi wmimonitorid -Namespace root\wmi -ComputerName $pp). ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [Get-WmiObject], ManagementException
    + FullyQualifiedErrorId : GetWMIManagementException,Microsoft.PowerShell.Commands.GetWmiObjectCommand
 
Не удается индексировать в массив NULL.
D:\PowerShell\test\3.ps1:19 знак:1
+ [string]$msn1 = $msn[0..15]
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : NullArray
 
Не удается индексировать в массив NULL.
D:\PowerShell\test\3.ps1:20 знак:1
+ [string]$msn2 = $msn[16..32]
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : NullArray

Последний раз редактировалось Griboed0ff, 02-06-2020 в 23:00.


Отправлено: 22:54, 02-06-2020 | #16