Как стать автором
Обновить

Комментарии 20

1. На старых компах с ним могут быть сложности
2. Так консоль в винде такая.
для старого ПК разгон один — SSD
Для всего остального — HWInfo
«Для всего остального — HWInfo» — статья направлена на способ получения краткой информации о ПК без использования специализированного ПО!
Скрипт это ПО?
Всё равно Вы его передаёте как-то.
Реализовал на cmd и на PowerShell, см. обновление публикации…
На cmd скрипт отрабатывает быстрее, чем на PowerShell.
Кроме того, на машине может быть запрещено выполнение неподписанных сценариев.
Как-то кратко и скомкано.
И зачем для модернизации IP-адрес?
Просто доп. инфо-я…
И что с этой информацией делать?
Вы этот батник будете не в ручную набирать. Запускатьс флешки например. В чем проблема запустить HwInfo, тем более она portable?
Или скопипастить в чат и попросить на другой стороне скопипастить в файл.bat.
только сначала придётся объяснять, как включить показ расширений
потом, как переименовать файл
потом как запустить консоль
проще aida
aida, вообще-то, не бесплатная. А вот hwinfo тот да.
Написать в чате:
поиск выполнить cmd /c echo. >c:/1.bat
потом поиск выполнить notepad c:/1.bat
Вот было бы неплохо выдавать еще и серийники всего, до чего можно дотянуться.

Вот несколько скриптов PS для получения сериников мамки и накопителей и ключа винды:

Получение серийных номеров накопителей
WScript.Echo GetSerialNumber()

Function GetSerialNumber()
Set oWMI = GetObject(«WinMgmts:»)
Set col = oWMI.InstancesOf(«Win32_DiskDrive»)
For Each obj In col
sAns = sAns & obj.Model & " — " & obj.SerialNumber & vbCrLf
Next
GetSerialNumber=sAns
End Function

К сожалению, для оптических приводов он серийники не выдает. Даже вообще их не видит. Да и для некоторых старых HDD накопителей выдает какую-то километровую строчку. А у некоторых SSD серийник из этого скрипта не совпадает с напечатанными на этикетке — вот и думай, кто тут химичит.

Получение серийного номера материнской платы
WScript.Echo GetSerialNumber()

Function GetSerialNumber()
Set oWMI = GetObject(«WinMgmts:»)
Set col = oWMI.InstancesOf(«Win32_BaseBoard»)
For Each obj In col
sAns = sAns & obj.Product & ": " & obj.SerialNumber & vbCrLf
Next
GetSerialNumber=sAns
End Function

Получение сведений об ОС Windows
Option Explicit

Dim strComputer, objWMIService, objItem, Caption, colItems

Set objWMIService = GetObject(«winmgmts:\\.\root\cimv2»)
Set colItems = objWMIService.ExecQuery(«Select * from Win32_OperatingSystem»,,48)
For Each objItem in colItems
Caption = objItem.Caption
Next

If InStr(Caption,«Windows») > 0 Then
Dim objshell,path,DigitalID, Result
Dim fil
Set objshell = CreateObject(«WScript.Shell»)
'Set registry key path
Path = «HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\»
'Registry key value
DigitalID = objshell.RegRead(Path & «DigitalProductId»)
Dim ProductName,ProductID,ProductKey,ProductData
'Get ProductName, ProductID, ProductKey
ProductName = «Product Name: » & objshell.RegRead(Path & «ProductName»)
fil = objshell.RegRead(Path & «ProductName»)
ProductID = «Product ID: » & objshell.RegRead(Path & «ProductID»)
ProductKey = «Installed Key: » & ConvertToKey(DigitalID)
ProductData = ProductName & vbNewLine & ProductID & vbNewLine & ProductKey
'Show messbox if save to a file
If vbYes = MsgBox(ProductData & vblf & vblf & «Save to a file?», vbYesNo + vbQuestion, «BackUp Windows Key Information») then
Save ProductData
End If

Else
MsgBox «Please run this script in Windows 8.x»
End If


'Convert binary to chars
Function ConvertToKey(Key)
Const KeyOffset = 52
Dim isWin8, Maps, i, j, Current, KeyOutput, Last, keypart1, insert
'Check if OS is Windows 8
isWin8 = (Key(66) \ 6) And 1
Key(66) = (Key(66) And &HF7) Or ((isWin8 And 2) * 4)
i = 24
Maps = «BCDFGHJKMPQRTVWXY2346789»
Do
Current= 0
j = 14
Do
Current = Current* 256
Current = Key(j + KeyOffset) + Current
Key(j + KeyOffset) = (Current \ 24)
Current=Current Mod 24
j = j -1
Loop While j >= 0
i = i -1
KeyOutput = Mid(Maps,Current+ 1, 1) & KeyOutput
Last = Current
Loop While i >= 0
If (isWin8 = 1) Then
keypart1 = Mid(KeyOutput, 2, Last)
insert = «N»
KeyOutput = Replace(KeyOutput, keypart1, keypart1 & insert, 2, 1, 0)
If Last = 0 Then KeyOutput = insert & KeyOutput
End If
ConvertToKey = Mid(KeyOutput, 1, 5) & "-" & Mid(KeyOutput, 6, 5) & "-" & Mid(KeyOutput, 11, 5) & "-" & Mid(KeyOutput, 16, 5) & "-" & Mid(KeyOutput, 21, 5)


End Function
'Save data to a file

Function Save(Data)
Dim fso, fName, txt,objshell,UserName,Cur,Computer
Set objshell = CreateObject(«wscript.shell»)
Cur = CreateObject(«Scripting.FileSystemObject»).GetParentFolderName(WScript.ScriptFullName)
'Get current user name
UserName = objshell.ExpandEnvironmentStrings("%UserName%")
Computer = objshell.ExpandEnvironmentStrings("%computername%")
'Create a text file on desktop
fName = Cur & "\" & «KeyBackup» & ".txt"
Set fso = CreateObject(«Scripting.FileSystemObject»)
Set txt = fso.OpenTextFile(fName, 8, True)
txt.Writeline Computer
txt.Writeline UserName
txt.Writeline Data
txt.WriteBlankLines 1
txt.Close
End Function


Где-то были еще скрипты для получения более подробной инфы по процессору и серийников планок памяти — не нашел.

Вместо IP лучше давать MAC (ну или вместе).
Вместо текущего пользователя — дескриптор компа в сетевом окружении.

Ну вывод сделать более форматированным.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории