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

Компьютерный форум 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

 

Deadooshka


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

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


серийник ОСи или материнской платы?

Отправлено: 11:52, 19-11-2024 | #2



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

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


Аватара для rafka

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


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

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


Цитата Sham:
серийник ОСи или материнской платы? »
серийник компьютера

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


Deadooshka


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

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


Там же всё из классов WMI берётся. Например get-ciminstance win32_baseboard даёт по материнке данные, в т.ч SerialNumber. Сериальник системы есть в классе win32_operatingsystem. У вас можно просто засунуть туда что-то типа $((get-ciminstance win32_baseboard).serialnumber)
п.с. пробуйте ещё классы win32_bios и win32_systemenclosure - там тоже какие-то серийники.

Последний раз редактировалось Sham, 19-11-2024 в 14:37.

Это сообщение посчитали полезным следующие участники:

Отправлено: 14:23, 19-11-2024 | #4


Аватара для rafka

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


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

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


Цитата Sham:
Там же всё из классов WMI берётся. Например get-ciminstance win32_baseboard даёт по материнке данные, в т.ч SerialNumber. Сериальник системы есть в классе win32_operatingsystem. У вас можно просто засунуть туда что-то типа $((get-ciminstance win32_baseboard).serialnumber)
п.с. пробуйте ещё классы win32_bios и win32_systemenclosure - там тоже какие-то серийники. »
Спасибо Большое!

Отправлено: 15:28, 19-11-2024 | #5


Аватара для rafka

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


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

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


Цитата Sham:
Там же всё из классов WMI берётся. Например get-ciminstance win32_baseboard даёт по материнке данные, в т.ч SerialNumber. Сериальник системы есть в классе win32_operatingsystem. У вас можно просто засунуть туда что-то типа $((get-ciminstance win32_baseboard).serialnumber)
п.с. пробуйте ещё классы win32_bios и win32_systemenclosure - там тоже какие-то серийники. »
еще один вопрос. А если хочу получить серийный номер удалённого компьютера ? тогда как ?

Отправлено: 16:27, 19-11-2024 | #6


Аватара для rafka

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


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

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


Цитата rafka:
еще один вопрос. А если хочу получить серийный номер удалённого компьютера ? тогда как ? »
сделал вот так $Serial=$(get-ciminstance win32_bios -ComputerName $compAdr).serialnumber и все заработал корректно.
Это сообщение посчитали полезным следующие участники:

Отправлено: 23:00, 19-11-2024 | #7


Deadooshka


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

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


Get-WmiObject в последних версиях удалён, поэтому везде лучше заменить на Get-CimInstance
Это сообщение посчитали полезным следующие участники:

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


Аватара для rafka

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


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

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


Цитата rafka:
сделал вот так $Serial=$(get-ciminstance win32_bios -ComputerName $compAdr).serialnumber и все заработал корректно. »
когда вот так локальный не показывает. а мне надо что бы локальный показывал по умолчанию а когда выбираю удалённую компьютер то показывал удалённую.
как граммотно это прописать?

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


Deadooshka


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

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


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

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



Компьютерный форум 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




 
Переход