-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathget-intel-hwids.ps1
More file actions
81 lines (66 loc) · 3.52 KB
/
get-intel-hwids.ps1
File metadata and controls
81 lines (66 loc) · 3.52 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# Script to dump all Intel device identifiers
# Requires administrator privileges
# Check if running as administrator
if (-NOT ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) {
Write-Host "This script requires administrator privileges. Please run PowerShell as Administrator." -ForegroundColor Red
exit
}
# Get script directory for output file
$scriptDir = Split-Path -Parent $MyInvocation.MyCommand.Definition
$outputFile = Join-Path $scriptDir "Intel_HWIDs_Report.txt"
Write-Host "Collecting Intel device information..." -ForegroundColor Green
# All Intel devices (VEN_8086)
$intelDevices = Get-PnpDevice | Where-Object { $_.InstanceId -like "*VEN_8086*" }
# Save to file
"=== INTEL DEVICES REPORT ===" | Out-File -FilePath $outputFile -Encoding UTF8
"Created: $(Get-Date)" | Out-File -FilePath $outputFile -Encoding UTF8 -Append
" " | Out-File -FilePath $outputFile -Encoding UTF8 -Append
"INTEL DEVICES (VEN_8086):" | Out-File -FilePath $outputFile -Encoding UTF8 -Append
"=========================" | Out-File -FilePath $outputFile -Encoding UTF8 -Append
foreach ($device in $intelDevices) {
" " | Out-File -FilePath $outputFile -Encoding UTF8 -Append
"Name: $($device.FriendlyName)" | Out-File -FilePath $outputFile -Encoding UTF8 -Append
"Instance ID: $($device.InstanceId)" | Out-File -FilePath $outputFile -Encoding UTF8 -Append
"Class: $($device.Class)" | Out-File -FilePath $outputFile -Encoding UTF8 -Append
"Status: $($device.Status)" | Out-File -FilePath $outputFile -Encoding UTF8 -Append
# Get driver version if possible
try {
$versionProperty = $device | Get-PnpDeviceProperty -KeyName "DEVPKEY_Device_DriverVersion" -ErrorAction SilentlyContinue
if ($versionProperty -and $versionProperty.Data) {
"Driver Version: $($versionProperty.Data)" | Out-File -FilePath $outputFile -Encoding UTF8 -Append
}
} catch {
# Ignore errors
}
# Extract DEV_XXXX
if ($device.InstanceId -match 'DEV_([0-9A-F]{4})') {
"DEV_ID: $($matches[1])" | Out-File -FilePath $outputFile -Encoding UTF8 -Append
}
}
# Additional: Search for chipset-related devices
" " | Out-File -FilePath $outputFile -Encoding UTF8 -Append
" " | Out-File -FilePath $outputFile -Encoding UTF8 -Append
"CHIPSET/PCI BRIDGE/ROOT PORT DEVICES:" | Out-File -FilePath $outputFile -Encoding UTF8 -Append
"=====================================" | Out-File -FilePath $outputFile -Encoding UTF8 -Append
$chipsetRelated = $intelDevices | Where-Object {
$_.Class -eq "System" -or
$_.FriendlyName -like "*chipset*" -or
$_.FriendlyName -like "*PCI*" -or
$_.FriendlyName -like "*Root*" -or
$_.FriendlyName -like "*Bridge*" -or
$_.FriendlyName -like "*Controller*"
}
foreach ($device in $chipsetRelated) {
" " | Out-File -FilePath $outputFile -Encoding UTF8 -Append
"Name: $($device.FriendlyName)" | Out-File -FilePath $outputFile -Encoding UTF8 -Append
"Instance ID: $($device.InstanceId)" | Out-File -FilePath $outputFile -Encoding UTF8 -Append
"Class: $($device.Class)" | Out-File -FilePath $outputFile -Encoding UTF8 -Append
# Extract DEV_XXXX
if ($device.InstanceId -match 'DEV_([0-9A-F]{4})') {
"DEV_ID: $($matches[1])" | Out-File -FilePath $outputFile -Encoding UTF8 -Append
}
}
Write-Host "Report saved to: $outputFile" -ForegroundColor Green
Write-Host "Opening file..." -ForegroundColor Yellow
# Open file in Notepad
notepad $outputFile