 |
|
Добавит код для серийного Номера
Добрый день !
код слишком длинный и поэтому не мог полностью кидать сюда.
Вопрос такого характера что кто может добавить код после `r`n$(addSp "Manufacturer" 15) : $model" что бы после модель компьютера показывал и Серийник ? Прошу очень помочь
Код:
function CompHw {
if (-not $ip){return}
$hst= ((get-wmiobject -list "StdRegProv" -computername $compAdr -namespace root\default).GetStringValue(2147483650,"SOFTWARE\Microsoft\Virtual Machine\Guest\Parameters","HostName")).sValue
$memSum=0; $model=""; $memModule=""
$cpu=(Get-WmiObject -Class CIM_Processor -ComputerName $compAdr).Name | Select-Object -first 1
$cpu=$cpu -replace ' ',' '; $cpu=$cpu -replace ' ',' '; $cpu=$cpu -replace ' ',' ' ;$cpu=$cpu -replace ' ',' '
$cpu=$cpu -replace ' CPU ',' '
$cpu=$cpu -replace 'Intel\(R\) Core\(TM\)2 Duo','Core2Duo'
$cpu=$cpu -replace 'Intel\(R\) Pentium\(R\)','Pentium'
$cpu=$cpu -replace 'Intel\(R\) Core\(TM\)','Core'
$cpu=$cpu -replace 'Intel\(R\) Celeron\(R\)','Celeron'
$cpu=$cpu -replace 'Intel\(R\) Xeon\(R\)','Xeon'
$cpu=$cpu -replace 'Pentium\(R\) Dual-Core','Pentium'
$cpu=$cpu -replace ' with Radeon\(tm\) HD Graphics',''
$cpu=$cpu -replace ' with Radeon Vega Mobile Gfx',''
$cpu=$cpu -replace ' with Radeon Vega Graphics',''
$cpu=$cpu -replace ' @ ',' '
if ("$cpu" -ne ""){
$memModule=((Get-WmiObject -Class CIM_PhysicalMemory -ComputerName $compAdr).Capacity | ForEach {$mem=[int]($_*10/1073741824)/10; if($mem -ge 0.5){$mem; $memSum=$memSum+$mem}}) -join ' '
$sys=Get-WmiObject -Class CIM_ComputerSystem -ComputerName $compAdr
$model=$sys.model
$model=("$model").Trim()
$model=$model -replace 'System Product Name','Noname'
$model=$model -replace 'To be filled by O.E.M.','Noname'
$model=$model -replace 'VMware Virtual Platform','VMware'
$cores=$sys.NumberOfLogicalProcessors
$compName=$sys.Name+$(if($sys.Domain){"."+$sys.Domain})
$hdd=""; Get-WmiObject -Class CIM_diskdrive -ComputerName $compAdr | ForEach {if($_.Size -gt 0){$hdd+=[string]($_.Model+" "+[int]($_.Size / (1000000000)))+"GB`r`n"}}
Output "`r`n $(addSp $compName 23) $ip`r`n-------------------------------------------------------`r`n$(addSp "CPU" 15) : $cpu($cores core) `r`n$(addSp "Memory" 15) : $memModule (Sum:$memSum`GB) `r`n$(addSp "Manufacturer" 15) : $model"
$(if($hst){Output " ("; Output "$hst" "MediumVioletRed"; Output ")"}); Output "`r`n"
if($hdd){Output "`r`nHard Disk Drive:"; Output "`r`n$hdd" "DarkBlue"}
}
}
|
серийник ОСи или материнской платы?
|
Цитата:
Цитата Sham
серийник ОСи или материнской платы? »
|
серийник компьютера
|
Там же всё из классов WMI берётся. Например get-ciminstance win32_baseboard даёт по материнке данные, в т.ч SerialNumber. Сериальник системы есть в классе win32_operatingsystem. У вас можно просто засунуть туда что-то типа $((get-ciminstance win32_baseboard).serialnumber)
п.с. пробуйте ещё классы win32_bios и win32_systemenclosure - там тоже какие-то серийники.
|
Цитата:
Цитата Sham
Там же всё из классов WMI берётся. Например get-ciminstance win32_baseboard даёт по материнке данные, в т.ч SerialNumber. Сериальник системы есть в классе win32_operatingsystem. У вас можно просто засунуть туда что-то типа $((get-ciminstance win32_baseboard).serialnumber)
п.с. пробуйте ещё классы win32_bios и win32_systemenclosure - там тоже какие-то серийники. »
|
Спасибо Большое!
|
Цитата:
Цитата Sham
Там же всё из классов WMI берётся. Например get-ciminstance win32_baseboard даёт по материнке данные, в т.ч SerialNumber. Сериальник системы есть в классе win32_operatingsystem. У вас можно просто засунуть туда что-то типа $((get-ciminstance win32_baseboard).serialnumber)
п.с. пробуйте ещё классы win32_bios и win32_systemenclosure - там тоже какие-то серийники. »
|
еще один вопрос. А если хочу получить серийный номер удалённого компьютера ? тогда как ?
|
Цитата:
Цитата rafka
еще один вопрос. А если хочу получить серийный номер удалённого компьютера ? тогда как ? »
|
сделал вот так $Serial=$(get-ciminstance win32_bios -ComputerName $compAdr).serialnumber и все заработал корректно.
|
Get-WmiObject в последних версиях удалён, поэтому везде лучше заменить на Get-CimInstance
|
Цитата:
Цитата rafka
сделал вот так $Serial=$(get-ciminstance win32_bios -ComputerName $compAdr).serialnumber и все заработал корректно. »
|
когда вот так локальный не показывает. а мне надо что бы локальный показывал по умолчанию а когда выбираю удалённую компьютер то показывал удалённую.
как граммотно это прописать?
|
А в $compAdr наверное точка "." в случае локального компьютера? get-ciminstance видимо не понимает эту точку как локальный комп. Для него нужен $null (пустая переменная). Тогда варианта два: 1. заменить get-ciminstance на старый get-wmiobject, либо 2. во всём скрипте заменить get-wmiobject на get-ciminstance и заменить везде точку "." на $null в объявлениях переменной $compAdr во всём скрипте, где подразумевается локальный комп.
|
Цитата:
Цитата Sham
А в $compAdr наверное точка "." в случае локального компьютера? get-ciminstance видимо не понимает эту точку как локальный комп. Для него нужен $null (пустая переменная). Тогда варианта два: 1. заменить get-ciminstance на старый get-wmiobject, либо 2. во всём скрипте заменить get-wmiobject на get-ciminstance и заменить везде точку "." на $null в объявлениях переменной $compAdr во всём скрипте, где подразумевается локальный комп. »
|
get-wmiobject -ом работает корректно.
|
получается что с таким путем можно заполучит и мак адресс. только мне кажется он будет видеть все мак адреса. А как филтировать что бы показывал только eth и wifi?
Код:
Get-WmiObject Win32_NetworkAdapterConfiguration -ComputerName $compAdr).MACAddress
|
Цитата:
Цитата Sham
А в $compAdr наверное точка "." в случае локального компьютера? »
|
нет, там не точка, а %computername% (имя компьютера), и быстро заменить на get-ciminstance не получится, поскольку $compAdr ещё используется в других командах, типа ping. Если там будет пустота, то будут ошибки.
|
Цитата:
Цитата Imation
что бы показывал только eth и wifi? »
|
Там нет такого. Только косвенно по названию, описанию, по наличию IP, DHCP и т.д. Либо через базы мак-адресов, где определяются производители железа.
|
Цитата:
Цитата Imation
Get-WmiObject Win32_NetworkAdapterConfiguration -ComputerName $compAdr).MACAddress »
|
попробуйте так.
Код:
(Get-WmiObject -ComputerName $compAdr Win32_NetworkAdapterConfiguration | where {$_.Description -like '*Ethernet*'}).MACAddress
(Get-WmiObject -ComputerName $compAdr Win32_NetworkAdapterConfiguration | where {$_.Description -like '*Wireless*'}).MACAddress
|
Цитата:
Цитата rafka
$_.Description -like '*Ethernet*'} »
|
не везде в описании это явно указывается.
|
Wifi показывает а вот *Ethernet* нет
Цитата:
Цитата Sham
Там нет такого. Только косвенно по названию, описанию, по наличию IP, DHCP и т.д. Либо через базы мак-адресов, где определяются производители железа. »
|
а если 3-4 виртуальных сети (адаптеры) как указать что бы он показывал именно физических ?
|
Цитата:
Цитата Sham
не везде в описании это явно указывается. »
|
если ему нужен локальный то можно и так
Код:
(Get-NetAdapter -Name "Local Area Connection").MacAddress
|
Цитата:
Цитата rafka
если ему нужен локальный то можно и так »
|
Локально не плохо , а было бы здорово если через сеть :-)
|
Цитата:
Цитата Imation
Локально не плохо , а было бы здорово если через сеть :-) »
|
тогда как выход можете так . Но настолько корректно это не знаю.
Код:
Get-WmiObject -ComputerName $compAdr Win32_NetworkAdapterConfiguration | where {$_.Description -like '*Realtek*'}).MACAddress
Цитата:
Цитата rafka
Get-WmiObject -ComputerName $compAdr Win32_NetworkAdapterConfiguration | where {$_.Description -like '*Realtek*'}).MACAddress »
|
только это будет работать с сетевыми картами *Realtek*
|
Цитата:
Цитата Imation
а если 3-4 виртуальных сети (адаптеры) как указать что бы он показывал именно физических ? »
|
полный список смотрите, есть ли за что зацепиться. В основном по ключевым словам в описании ищут, но гарантии нет. Драйвер обновится и изменит описание например.
Код:
get-ciminstance Win32_NetworkAdapterConfiguration -Property *
|
DJ Mogarych |
20-11-2024 17:20 3033375 |
Цитата:
Цитата Imation
как указать что бы он показывал именно физических »
|
Код:
Get-NetAdapter -Physical
|
Время: 00:02.
© OSzone.net 2001-