
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersionИ здесь видим следующие параметры:




Cайт о правильной настройке и оптимизации компьютера
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersionИ здесь видим следующие параметры:
И сохраняем файл.Set WshShell = CreateObject("WScript.Shell") regKey = "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\" DigitalProductId = WshShell.RegRead(regKey & "DigitalProductId") Win8ProductName = "Windows Product Name: " & WshShell.RegRead(regKey & "ProductName") & vbNewLine Win8ProductID = "Windows Product ID: " & WshShell.RegRead(regKey & "ProductID") & vbNewLine Win8ProductKey = ConvertToKey(DigitalProductId) strProductKey ="Windows 8 Key: " & Win8ProductKey Win8ProductID = Win8ProductName & Win8ProductID & strProductKey MsgBox(Win8ProductKey) MsgBox(Win8ProductID) Function ConvertToKey(regKey) Const KeyOffset = 52 isWin8 = (regKey(66) \ 6) And 1 regKey(66) = (regKey(66) And &HF7) Or ((isWin8 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 (isWin8 = 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 End Function
Сохраняем файл.## Декларация функции получения ключа продукта Windows ## Скрипт предназначен PowerShell версии 2.0 (актуальна для всех версии Windows) Function Get-WindowsProduct { ## Функция возвращает ключ установленной Windows с любой машины в сети, плюс краткую инфу по установленной версии. Вызов без ключей подразумевает обращение к хосту param ($Targets = [System.Net.Dns]::GetHostName()) function PIDDecoderFromRegistry($digitalProductId) { New-Variable -Name base24 -Value 'BCDFGHJKMPQRTVWXY2346789' ## -Option Const ## <24> символа использующиеся в ключах продукта Windows и Office New-Variable -Name decodeStringLength -Value 24 ## -Option Const ## ‘Чистая’ длина зашифрованного ключа продукта New-Variable -Name decodeLength -Value 14 ## -Option Const ## Длина зашифрованного ключа продукта в байтах (символы хранятся в полубайтах) New-Variable -Name decodedKey -Value ([System.String]::Empty) ## Строка содержащая расшифрованный ключ продукта ## Проверка, содержит ли ключ продукта ‘N’ (такое возможно для Windows 8 и Office 15) $containsN = ($digitalProductId[$decodeLength] / 8) -bAnd 1 ## ($digitalProductId[$decodeLength] -shr 3) -bAnd 1 ## PS 4.0 $digitalProductId[$decodeLength] = [System.Byte]($digitalProductId[$decodeLength] -bAnd [System.Convert]::ToByte('F7', 16)) ## 247 ## Собственно процесс расшифровки for ($i = $decodeStringLength; $i -ge 0; $i--) { $digitMapIndex = 0 for ($j = $decodeLength; $j -ge 0; $j--) { $digitMapIndex = $digitMapIndex * 256 -bXor $digitalProductId[$j] ## $digitMapIndex -shl 8 -bXor $digitalProductId[$j] ## PS 4.0 $digitalProductId[$j] = [System.Math]::Truncate($digitMapIndex / $base24.Length) $digitMapIndex = $digitMapIndex % $base24.Length } $decodedKey = $decodedKey.Insert(0, $base24[$digitMapIndex]) } ## Удаление первого символа в ключе и помещение ‘N’ в нужную позицию if ([System.Boolean]$containsN) { $firstLetterIndex = 0 for ($index = 0; $index -lt $decodeStringLength; $index++) { if ($decodedKey[0] -ne $base24[$index]) {continue} $firstLetterIndex = $index break } $keyWithN = $decodedKey $keyWithN = $keyWithN.Remove(0, 1) $keyWithN = $keyWithN.Substring(0, $firstLetterIndex) + 'N' + $keyWithN.Remove(0, $firstLetterIndex) $decodedKey = $keyWithN; } $returnValue = $decodedKey ## Вставка тире через каждые пять символов for ($t = 20; $t -ge 5; $t -= 5) { $returnValue = $returnValue.Insert($t, '-') } return $returnValue } ## Main New-Variable -Name hklm -Value 2147483650 ## -Option Const New-Variable -Name regPath -Value 'Software\Microsoft\Windows NT\CurrentVersion' ## -Option Const New-Variable -Name regValue -Value 'DigitalProductId' ## -Option Const Foreach ($target in $Targets) { $win32os = $null $wmi = [WMIClass]"\\$target\root\default:stdRegProv" $binArray = $wmi.GetBinaryValue($hklm,$regPath,$regValue).uValue[52..66] $win32os = Get-WmiObject -Class 'Win32_OperatingSystem' -ComputerName $target $product = New-Object -TypeName System.Object ## Конструктор $product | Add-Member -MemberType 'NoteProperty' -Name 'Computer' -Value $target $product | Add-Member -MemberType 'NoteProperty' -Name 'Caption' -Value $win32os.Caption $product | Add-Member -MemberType 'NoteProperty' -Name 'CSDVersion' -Value $win32os.CSDVersion $product | Add-Member -MemberType 'NoteProperty' -Name 'OSArch' -Value $win32os.OSArchitecture $product | Add-Member -MemberType 'NoteProperty' -Name 'BuildNumber' -Value $win32os.BuildNumber $product | Add-Member -MemberType 'NoteProperty' -Name 'RegisteredTo' -Value $win32os.RegisteredUser $product | Add-Member -MemberType 'NoteProperty' -Name 'ProductID' -Value $win32os.SerialNumber $product | Add-Member -MemberType 'NoteProperty' -Name 'ProductKey' -Value (PIDDecoderFromRegistry($binArray)) Write-Output $product } } ## End Get-WindowsProduct
Set-ExecutionPolicy RemoteSignedИ жмём Enter.
Import-Module "*путь_до_вашего_файла*"В моем случае это будет выглядеть вот так Import-Module "D:\Windows key\module.ps1" и жмём Enter. Если вы создавали файл с помощью блокнота, а не скачали готовый файл доступный по ссылке в первом пункте, то с большой долей вероятности у вас показало следующую ошибку:
Get-WindowsProductСкрипт отобразит в командной строке подробную информацию об активации системы.
2) Ищем и открываем следующий каталог:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer
3) Нам нужен параметр link. Его значение не так уж и важно, так как на разных компьютерах оно разное. Обычно первая пара начинается на 1, а вторая, третья и четвертая состоят из нулей (Например, 1C 00 00 00 или 16 00 00 00). Лично у меня его вообще не было, я его создал сам. Поэтому, если вы его не находите, просто создайте новый двоичный параметр и дайте ему имя link.
Чтобы удалить слово ярлык, этому параметру нужно задать значение 00 00 00 00.
4) Так как мы работали в ветке HKEY_CURRENT_USER, все изменения относятся только к текущему пользователю. Перезагружаем компьютер или просто выходим из пользователя и заново заходим. Теперь при создании ярлыков, навязчивое слово больше не будет добавляться.
Ну, и чтобы облегчить вам немного жизнь, мой друг предоставил bat-файл для моего сайта. Он позволяет внести все эти изменения, буквально в пару нажатий клавиш. Скачать его можно по ссылке: Link.cmd
На этом всё. Надеюсь эта статья оказалась вам полезной, нажмите одну из кнопок ниже, чтобы рассказать о ней друзьям. Также подпишитесь на обновления сайта, введя свой e-mail в поле справа. Спасибо за внимание
Но, к счастью, его так же можно включить, и сейчас мы научимся это делать.
1) Первое, что нужно сделать это открыть доступ к меню выбора параметров загрузки нажатием клавиши F8 при старте системы. Как это сделать описано в этой статье.
2) Открываем реестр, для этого жмём сочетание клавиш Win+R и вводим regedit:
3) Переходим по следующему пути:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Configuration Manager
4) Здесь нам нужно создать новый DWORD параметр с именем BackupCount. Его значение будет равным количеству резервных копий, которые будет хранить система. Рекомендую поставить значение 2, этого вполне хватит для решения основных проблем, но и не создаст излишек резервных копий. Если он вас уже создан, как было в моем случае, просто измените значение на нужное вам количество копий.
5) Далее нам нужно создать новый подраздел с именем LastKnownGood.
6) Открываем его, создаем DWORD - параметр с именем Enabled и задаем ему значение 1.
7) Перезагружаем систему, чтобы система создала резервную копию.
8) Теперь, если вы зайдете в параметры загрузки (F8 при старте), то увидите заветный пункт "Загрузка последней успешной конфигурации":
На этом всё. Надеюсь эта статья оказалась вам полезной, нажмите одну из кнопок ниже, чтобы рассказать о ней друзьям. Также подпишитесь на обновления сайта, введя свой e-mail в поле справа. Спасибо за внимание