Имя: Пароль:
IT
Админ
Попонтуюсь, серийный номер виндуз и сила пакетных файлов...
0 smaharbA
 
19.11.10
01:22
1. Че за хрень 0% (0)
2. Виндуз лучше линукс 0% (0)
3. Армяне лучше чем грузины 0% (0)
Всего мнений: 0

Как то на досуге...
(вполне подвержен оптимизации)

echo off
setlocal enabledelayedexpansion
for /f "tokens=3" %%i in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v DigitalProductId') do (
   set x=%%~i
   )
for /l %%z in (0,2,1000) do (
   if "!x:~%%z,2!"=="" goto break
   set /a n=0x!x:~%%z,2!
   set array=!array! !n!
   )
:break
call :getkey "%array%"
echo Ключ виндуз: %getkey%
pause
exit /b

:getkey (p) {
   setlocal enabledelayedexpansion
   set opt=%~1
   set out=%~0
   set pc=BCDFGHJKMPQRTVWXY2346789
   set x=0
   for /l %%i in (0,1,28) do (
       if !x! gtr 28 goto break_2
       set a=0
       for /l %%j in (0,1,14) do (
           set /a n=66 - %%j
           set e=0
           set p=!opt!
           set opt=
           for %%z in (!p!) do (
               set z=%%z
               if !e! equ !n! (
                   set /a a=%%z + !a! * 256
                   set /a z="( !a! / 24 ) & 255"
                   set /a a%%=24
                   )
               set opt=!opt! !z!
               set /a e+=1
               )
           )
       for %%z in (!a!) do set key=!pc:~%%z,1!!key!
       set /a f="( !x! + 2 ) %% 6"
       if !f! equ 0 if !x! lss 28 (
           set /a x+=1
           set key=-!key!
           )
       <nul set /p u=.
       set /a x+=1
       )
:break_2
   echo.
   endlocal & set %out:~1%=%key%
   exit /b
   }
1 Злопчинский
 
19.11.10
01:24
"Папа, это ты сейчас с кем разговаривал...?" ;-)
2 Злопчинский
 
19.11.10
01:26
запустил.. что-то делает.. долго так...
3 Злопчинский
 
19.11.10
01:36
мдя.. работало работало хрясь БСОД!
но ты не баись! все ок - это у мну схемотехнке уже лет 8 на компе... перегрузился - работает! инфу дало!
4 smaharbA
 
19.11.10
01:39
а не боюся )) опробовано, но это так для баловства, хотя и не бесполезно
5 Злопчинский
 
19.11.10
01:43
а!

Че за хрень
6 Злопчинский
 
19.11.10
01:44
буквакитока перед ключом кракозябами
7 smaharbA
 
19.11.10
01:45
(6) ну напиши по англицки или chcp 1251 > nul
или сохрани в 866
8 smaharbA
 
19.11.10
01:48
конечно в всш или даже адинесе все гораздо быстрее, но хобби
9 Противный
 
19.11.10
01:55
понтанулся... прикольно, теперь я знаю серийник спизженой винды ;)

4. все равно все умрем...
5. нас рать!
10 Armando
 
19.11.10
02:23
хм. оно.
один хрен победят татары
11 hd1
 
19.11.10
05:51
ну и досуг ))
возьму на всякий, до этого пользовался где-то найденным vbs.
12 smaharbA
 
19.11.10
09:03
Значительно оптимизированная версия (раз в сто)

echo off
setlocal enabledelayedexpansion
for /f "tokens=3" %%i in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v DigitalProductId') do (
   set x=%%~i
   )
for /l %%z in (104,2,130) do (
   set /a array[%%z]=0x!x:~%%z,2!
   )
:break
call :getkey
echo %getkey%
exit /b

:getkey (p) {
   setlocal enabledelayedexpansion
   set out=%~0
   set pc=BCDFGHJKMPQRTVWXY2346789
   set x=0
   for /l %%i in (0,1,28) do (
       if !x! gtr 28 goto break_2
       set a=0
       for /l %%j in (130,-2,104) do (
           set /a a=array[%%j] + !a! * 256
           set /a array[%%j]="( !a! / 24 ) & 255"
           set /a a%%=24
           set /a n=%%j
           )
       for %%z in (!a!) do set key=!pc:~%%z,1!!key!
       set /a f="( !x! + 2 ) %% 6"
       if !f! equ 0 if !x! lss 28 (
           set /a x+=1
           set key=-!key!
           )
       <nul set /p u=.
       set /a x+=1
       )
:break_2
   echo.
   endlocal & set %out:~1%=%key%
   exit /b
   }
13 Попытка1С
 
19.11.10
09:06
ммм

Че за хрень
14 Trigg
 
19.11.10
09:08
(13)
Это типа он показал, какой он крутой спец :)
15 smaharbA
 
19.11.10
09:09
(14) да, а ты бабло гони
16 Fragster
 
гуру
19.11.10
09:13
да, без регэкспов в пакетниках тяжело

Че за хрень
17 smaharbA
 
19.11.10
09:14
(16) а они есть если чо, тока они тут не очень то нужны

кому не лень сравните оба варианта
18 Попытка1С
 
19.11.10
09:16
(15) Так можешь для тех кто в тяжелой технике пояснишь, куды это вставлять.
19 sapfirys
 
19.11.10
09:19
второй вариант на вин 7 про неработает
20 smaharbA
 
19.11.10
09:21
(19) спасибо, гляну
21 smaharbA
 
19.11.10
09:30
ошибся в цифирях

echo off
setlocal enabledelayedexpansion
for /f "tokens=3" %%i in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v DigitalProductId') do (
   set x=%%~i
   )
for /l %%z in (104,2,132) do (
   set /a array[%%z]=0x!x:~%%z,2!
   )
call :getkey
echo Ключ виндуз: %getkey%
pause > nul
exit /b

:getkey (p) {
   setlocal enabledelayedexpansion
   set out=%~0
   set pc=BCDFGHJKMPQRTVWXY2346789
   set x=0
   for /l %%i in (0,1,28) do (
       if !x! gtr 28 goto break
       set a=0
       for /l %%j in (132,-2,104) do (
           set /a a=array[%%j] + !a! * 256
           set /a array[%%j]="( !a! / 24 ) & 255"
           set /a a%%=24
           set /a n=%%j
           )
       for %%z in (!a!) do set key=!pc:~%%z,1!!key!
       set /a f="( !x! + 2 ) %% 6"
       if !f! equ 0 if !x! lss 28 (
           set /a x+=1
           set key=-!key!
           )
       <nul set /p u=.
       set /a x+=1
       )
:break
   echo.
   endlocal & set %out:~1%=%key%
   exit /b
   }
22 smaharbA
 
19.11.10
09:32
(19) можешь еще проверить ?
23 avkend
 
19.11.10
09:34
твою бы энергию да в нужное русло

Че за хрень
24 sapfirys
 
19.11.10
09:49
(22) теперь работает, гораздо быстрее первого
25 smaharbA
 
19.11.10
09:53
Спасибо
26 hd1
 
19.11.10
10:01
сам серийник какую-нибудь избыточность содержит, что можно часть его восстановить?
27 smaharbA
 
19.11.10
10:02
в смысле часть ?
28 hd1
 
19.11.10
10:03
(27)Есть нетбук, на нем наклейка сильно потерта, из системы выдергивается вообще левый серийник
29 Злой Бобр
 
19.11.10
10:15
(0) А зачем все это?
Есть прекрасные проги которые вытягивают серийники не только по винде но и много чему еще. И все в одном. И работает быстро.
Так что - незач_от.
Пойди лучше проведи досуг с семьей.
30 smaharbA
 
19.11.10
10:17
(28) такое возможно для оем
31 smaharbA
 
19.11.10
10:17
(29) а проги эти от святого духа появляются ?
32 hd1
 
19.11.10
10:20
(30) не понял сказанного
33 hd1
 
19.11.10
10:22
(30) серийник может отличаться чтоли?
34 hd1
 
19.11.10
10:23
+(28) там даже 2 наклейки, одна на другой - не понятна...
35 smaharbA
 
19.11.10
10:24
(33) может
36 hd1
 
19.11.10
10:29
(35) это порадовало, но почему их две?
37 detec
 
19.11.10
10:30
Нужно писать, на каких версиях Винды тестировался скрипт. А то выглядит как пук в лужу. У меня самый последний вариант на Windows Server 2008 R2 Enterprise x64 в 32- и 64-битной командной  строке с просроченным триалом не сработал, типа нет такой ветки в реестре.
Насколько я читал на руборде, серверные дистрибы Винды сейчас отключаются только вложенными в них дефолтными ключами.
38 smaharbA
 
19.11.10
11:36
читайте дальше руборды
39 smaharbA
 
19.11.10
11:42
для особо одаренных - проверено на winXP x32/vista x32/win7 x32/win2003 x32

(37) руки выпрямить и башкой о стену не предлагать ?