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

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Добавит код для серийного Номера

Ответить
Настройки темы
PowerShell - [решено] Добавит код для серийного Номера

Аватара для rafka

Пользователь


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

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


Добрый день !
код слишком длинный и поэтому не мог полностью кидать сюда.
Вопрос такого характера что кто может добавить код после `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"} 
  }
}

Отправлено: 10:24, 19-11-2024

 

Аватара для rafka

Пользователь


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

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


Цитата Sham:
А в $compAdr наверное точка "." в случае локального компьютера? get-ciminstance видимо не понимает эту точку как локальный комп. Для него нужен $null (пустая переменная). Тогда варианта два: 1. заменить get-ciminstance на старый get-wmiobject, либо 2. во всём скрипте заменить get-wmiobject на get-ciminstance и заменить везде точку "." на $null в объявлениях переменной $compAdr во всём скрипте, где подразумевается локальный комп. »
get-wmiobject -ом работает корректно.

Отправлено: 10:50, 20-11-2024 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


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

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


получается что с таким путем можно заполучит и мак адресс. только мне кажется он будет видеть все мак адреса. А как филтировать что бы показывал только eth и wifi?

Код: Выделить весь код
Get-WmiObject Win32_NetworkAdapterConfiguration -ComputerName $compAdr).MACAddress

Отправлено: 11:21, 20-11-2024 | #12


Deadooshka


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

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


Цитата Sham:
А в $compAdr наверное точка "." в случае локального компьютера? »
нет, там не точка, а %computername% (имя компьютера), и быстро заменить на get-ciminstance не получится, поскольку $compAdr ещё используется в других командах, типа ping. Если там будет пустота, то будут ошибки.

Отправлено: 11:27, 20-11-2024 | #13


Deadooshka


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

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


Цитата Imation:
что бы показывал только eth и wifi? »
Там нет такого. Только косвенно по названию, описанию, по наличию IP, DHCP и т.д. Либо через базы мак-адресов, где определяются производители железа.

Отправлено: 11:47, 20-11-2024 | #14


Аватара для rafka

Пользователь


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

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


Цитата 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
Это сообщение посчитали полезным следующие участники:

Отправлено: 11:47, 20-11-2024 | #15


Deadooshka


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

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


Цитата rafka:
$_.Description -like '*Ethernet*'} »
не везде в описании это явно указывается.

Отправлено: 11:49, 20-11-2024 | #16


Пользователь


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

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


Цитата rafka:
попробуйте так. »
Wifi показывает а вот *Ethernet* нет

Цитата Sham:
Там нет такого. Только косвенно по названию, описанию, по наличию IP, DHCP и т.д. Либо через базы мак-адресов, где определяются производители железа. »
а если 3-4 виртуальных сети (адаптеры) как указать что бы он показывал именно физических ?

Отправлено: 11:49, 20-11-2024 | #17


Аватара для rafka

Пользователь


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

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


Цитата Sham:
не везде в описании это явно указывается. »
если ему нужен локальный то можно и так
Код: Выделить весь код
(Get-NetAdapter -Name "Local Area Connection").MacAddress
Это сообщение посчитали полезным следующие участники:

Отправлено: 11:57, 20-11-2024 | #18


Пользователь


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

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


Цитата rafka:
если ему нужен локальный то можно и так »
Локально не плохо , а было бы здорово если через сеть :-)

Отправлено: 12:03, 20-11-2024 | #19


Аватара для rafka

Пользователь


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

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


Цитата 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*
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:11, 20-11-2024 | #20



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Добавит код для серийного Номера

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Изменение серийного номера на смартфоне. Alexxandr9 Мобильные ОС, смартфоны и планшеты 1 10-04-2013 15:26
Разное - Смена серийного номера Smarty Microsoft Windows 2000/XP 9 02-07-2009 18:21
Win 2003 - смена серийного номера Zorax Microsoft Windows NT/2000/2003 5 06-12-2007 10:36
Интеграция серийного номера в Win98 alex1999 Microsoft Windows 95/98/Me (архив) 4 20-10-2005 15:54
Ввод серийного номера-вопрос! ssi Хочу все знать 5 02-08-2004 11:17




 
Переход