Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   VBS скрипт для вывода в текстовый файл информации о серийном номере компьютера (http://forum.oszone.net/showthread.php?t=350810)

Maddrag 06-03-2022 21:14 2981206

VBS скрипт для вывода в текстовый файл информации о серийном номере компьютера
 
Здравствуйте! В инете нашел скрипт для вывода информации о ключе windows, потом дописал, чтобы он выводил эту информацию в текстовый файл, но вот сделать чтобы он перед ключом писал серийный номер компьютера, не получается. Помогите, пожалуйста. Можно изменить еще чтобы он не выводил информацию на экран, а только писал в текстовый файл.
Код:

Set WshShell = CreateObject("WScript.Shell")
regKey = "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\"
DigitalProductId = WshShell.RegRead(regKey & "DigitalProductId")
Win10ProductName = "Версия Windows 10: " & WshShell.RegRead(regKey & "ProductName") & vbNewLine
Win10ProductID = "ID продукта: " & WshShell.RegRead(regKey & "ProductID") & vbNewLine
Win10ProductKey = ConvertToKey(DigitalProductId)
ProductKeyLabel ="Ключ Windows 10: " & Win10ProductKey
Win10ProductID = Win10ProductName & Win10ProductID & ProductKeyLabel
MsgBox(Win10ProductID)
Function ConvertToKey(regKey)
Const KeyOffset = 52
isWin10 = (regKey(66) \ 6) And 1
regKey(66) = (regKey(66) And &HF7) Or ((isWin10 And 2) * 4)
j = 24
Chars = "BCDFGHJKMPQRTVWXY2346789"
Do
Cur = 0
y = 14
Do
Cur = Cur * 256
Cur = regKey(y + KeyOffset) + Cur
regKey(y + KeyOffset) = (Cur \ 24)
Cur = Cur Mod 24
y = y -1
Loop While y >= 0
j = j -1
winKeyOutput = Mid(Chars, Cur + 1, 1) & winKeyOutput
Last = Cur
Loop While j >= 0
If (isWin10 = 1) Then
keypart1 = Mid(winKeyOutput, 2, Last)
insert = "N"
winKeyOutput = Replace(winKeyOutput, keypart1, keypart1 & insert, 2, 1, 0)
If Last = 0 Then winKeyOutput = insert & winKeyOutput
End If
a = Mid(winKeyOutput, 1, 5)
b = Mid(winKeyOutput, 6, 5)
c = Mid(winKeyOutput, 11, 5)
d = Mid(winKeyOutput, 16, 5)
e = Mid(winKeyOutput, 21, 5)
ConvertToKey = a & "-" & b & "-" & c & "-" & d & "-" & e

set FSO = CreateObject("Scripting.FileSystemObject")
set OFile = FSO.OpenTextFile("file.txt", 8, True)
 
OFile.Write(ConvertToKey & vbCrLf)

End Function


Sham 07-03-2022 15:28 2981234

для "If (isWin10 = 1)" нету "end if". Где он должен быть? На экран выводится Win10ProductID в MsgBox. Вместо MsgBox() пишите в файл (сейчас это 2-4 строки с конца скрипта).

NickM 07-03-2022 15:51 2981236

Цитата:

Цитата Sham
для "If (isWin10 = 1)" нету "end if". Где он должен быть? »

Чуть ниже.
Там же предыдущий If - однострочник, ему End не нужен.


Время: 23:47.

Время: 23:47.
© OSzone.net 2001-