Powershell ile HP Ürün Numarasını Alın


8

Sağlam bir HP Warrant Lookup PowerShell betiğini bir araya getirdim. Ancak, bir HP sisteminin ürün numarasının otomatik bir işlemde nasıl alınacağını çözemiyorum. Yani...

PowerShell'den HP ürün numarasını (seri numarasını değil) nasıl alabilirim? Yalnızca yerleşik kullanıma hazır Windows ve PowerShell komutlarıyla yapmak istememe rağmen, diğer fikirlere açığım. Sonunda nihai amaç, ürün numarasını mümkün olan en güvenilir ve en az istilacı yolla bulmaktır (örneğin 3. yazılımı kurmak).

Sorun giderme

Denenmiş:

Get-WmiObject Win32_ComputerSystem | Select-Object OEMStringArray

Sonuç:

{ABS 70/71 79 7A 7B 7C, CMS v01.4A, HP_Mute_LED_0, www.hp.com}

... ama bulmayı umuyorum XT908UT#ABA


Aşağıdaki komutlardan herhangi birini çalıştırırken beklediğiniz ürün numarası listeleniyor mu? wmic csproduct list /format:list/wmic computersystem list /format:list
ve31415,

Hayır! SMBios'ta saklandığından eminim, ancak geri almanın güvenilir bir yolunu bilmiyorum.
SgtOJ

1
Bu makale , sayının kayıt defterinde bulunduğunu ve HKLM\HARDWARE\DESCRIPTION\System\BIOS\SystemSKUbu nedenle PowerShell'de alınabileceğini söylüyor. Bu diyor wmic /namespace:\\root\wmi path MS_SystemInformation. Bunlardan herhangi biri sizin için çalışıyor mu?
harrymc

Bir Dell bilgisayarda kullanabilirim Get-WmiObject Win32_BIOS | Select-Object SerialNumber(bunu test etmek için HP'm yok).
harrymc

@harrymc - Kayıt defterine benziyor ve MS_SystemInformation bir go! Teşekkürler, cevabı cevap yazmalısınız. Kendimi hayal kırıklığına uğrattım çünkü aynı yazıyla karşılaştım (kayıt metodu) ama patladı.
SgtOJ

Yanıtlar:


8

İşte çeşitli bilgisayar modelleri için çalışan bazı yöntemler.

Yöntem 1: kayıt defteri

HP ürün numarası kayıt defterinde yer aldığından, PowerShell HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\BIOS öğesinde alınabilir SystemSKU.

Makalede daha fazla bilgi ve komut dosyası bulunabilir:
Nasıl Yapılır: powershell kullanarak tüm HP sunucunuzun HP Ürün Numarasını bulun .

Yöntem 2: root \ wmi - MS_SystemInformation

MS_SystemInformation sınıfı, üyesindeki ürün numarasını içerir SystemSKU.
(Muhtemelen ilk yöntemde olduğu gibi kayıt defterinden alır.)

Daha fazla bilgi için bkz. Richard Siddaway'in Blogu .

Yöntem 3: sınıf Win32_BIOS

Aşağıdaki parça bazı bilgisayar markalarının ürün numarasını bulur. Dell üzerinde test edilmiştir.

Get-WmiObject Win32_BIOS | Select-Object SerialNumber

Microsoft başvuru bilgileri, Win32_BIOS sınıfında bulunur .


1
Win32_BIOS sınıfı seri numarasına sahip, ancak bu HP'nin ürün numarasından (P / N) farklı. Son zamanlarda keşfettiğim Microsoft tarafından System SKU ve SMBios tarafından Product SKU. Kayıt defteri ve MS_SystemInformation sınıfı, bu P / NI'yi aradığımı depolamaz.
SgtOJ

2

Bu bir HP Dizüstü Bilgisayarda test edilmiştir. HP'nin "Ürün numarası" nın win32_computersystem WMI'da SystemSKUNumber olduğunu düşünüyorum. HP dizüstü bilgisayarımda test edildi.

Get-WmiObject win32_computersystem | Select-Object SystemSKUNumber

Sonuçlanacak:

SystemSKUNumber
---------------
J9A12EA#ABN

0

Bu soruya başkası gelirse, dikkat edilmesi gereken, win32_computersystem'ın bütününün özellikle sunucular için ürün numarası içermediği görülüyor. Bu bilgiyi WMI ile gerçekten bulamadım, ancak belli ki bir sunucuya ürün numarası ve seri numaraları verildi (elektronik tablo korkunç biçimde biçimlendirildi, bu yüzden iki alan öğleden sonraya kadar büyük bir dize gibi görünüyordu). kahve tekmeledi).


0
$PN = (Get-WmiObject -Namespace Root\wmi MS_SystemInformation -ComputerName $PC -ErrorAction SilentlyContinue ).SystemSKU

Write-host $PN

Bunun neden işe yaradığını açıklamak için neyi ifade ettiğinizi destekleyen bu cevaba biraz referans eklemeyi düşünün.
Pezevenk Suyu BT

-1

Windows 7 ve Windows 10'da çalışır. Gönderilen başka bir kullanıcıdan. @harrymc

#Open Powershell and type the following. 
$Server='ComputerName'
$reg = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey('LocalMachine', $Server)
$regkey = $reg.OpenSubkey("HARDWARE\\DESCRIPTION\\System\\BIOS")
$SystemSku = $regkey.GetValue("SystemSku")

$SystemSku

veya Dene

$Server='ComputerName'

Get-WmiObject -ClassName CIM_System -ComputerName $Server| Select-object -ExpandProperty SystemSKUNumber

$Serverdoğrudan bir ComputerName ile değiştirilebilir. örnek...

Get-WmiObject -ClassName CIM_System -ComputerName PC001 | select SystemSKUNumber

Bir etki alanındaysanız, bir invoke-commandveya -credentialparametresini kullanarak kimlik bilgileri sağlamanız gerekebilir .

Get-WmiObject -Credential Domain\UserID -ClassName CIM_System -ComputerName $Server

veya

Invoke-Command -Credential Domain\UserID -ComputerName PC001 -ScriptBlock {Get-WmiObject -Credential -ClassName CIM_System}

WinRm istemcide yapılandırılmadıysa, sorunlarla karşılaşabilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.