Sauvegarde activation xp

Contenu du snippet

Appelez chez microsoft as chaque fois que l'on format c'est vraiment chiant , surtout si ca foire 2-3 fois dans la même journée . Copier ses donner , c'est légal , alors pourquoi ne pas se faciliter la vie !

Le truc de la copie du fichier wpa.dbl existe depuis longtemps , mais je trouvais intéressant de le reproduite en scripting

Mes objectifs pour ce mini project :

Sauvegarde du fichier et du script sur un support amovible
Remplacer le fichier sur le HD pour enlever l'activation
Faire une verification de la date d'installation de windows pour calculer si les 30 jours allouer pour l'activation son ecoulées pour éviter de poser la question si windows est déja activé ou non

IMPORTANT : sauvegarder le script ci-dessus dans un fichier nommer savelogon.mrc

ATTENTION : La sauvegarde doit être fait pour vous et non pour le voisin , ici ont parle de sauvegarde de donner et non de piratage

Source / Exemple :


menu status {
save logon:savelogon
           }

alias savelogon dialog -md savelogon savelogon
dialog savelogon {
  title "save logon"
  size -1 -1 118 59
  option dbu
  button "Sauvegarder", 1, 12 24 37 12
  button "Ecraser", 2, 64 24 37 12
} 

alias quest.activ dialog -md quest.activ quest.activ
dialog quest.activ {
  title "activation"
  size -1 -1 118 59
  option dbu
  button "Oui", 1, 13 36 37 12
  text "  Avez-vous déja activer      windows xp ?", 3, 22 11 63 14
  button "Non", 4, 58 36 37 12
}

alias redem dialog -md redem redem
dialog redem {
  title "redemmarage"
  size -1 -1 152 61
  option dbu
  text "                                                                                                                                                                                                                Voulez-vous redemarrez maintenant ?", 1, 5 3 144 29
  button "Oui", 2, 28 40 31 11
  button "Non", 3, 78 40 31 11 , cancel
}

on 1:dialog:redem:sclick:2:{ run shutdown.exe -r -t 10 -c "redemmarage pour logon xp" }

on 1:dialog:quest.activ:sclick:4:{
dialog -x quest.activ | dialog -x savelogon | echo -a Vous devez D'abord activer windows xp pour sauvegarder }
   

on 1:dialog:quest.activ:sclick:1:{ copy.file }

on 1:load:{
if ( $os != xp ) { .unload -rs savelogon.mrc | echo -a Ce script est reserver a windows xp | halt }
   }

alias regread1 { 
.comopen LL WScript.Shell 
if !$comerr { var %b = $com(LL,RegRead,3,bstr,HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\InstallDate),%res = $com(LL).result 
.comclose LL | return $asctime( %res , dd/mm/yy ) } | return }

alias regread2 { 
.comopen LL WScript.Shell 
if !$comerr { var %b = $com(LL,RegRead,3,bstr,HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\InstallDate),%res = $com(LL).result 
.comclose LL | return $asctime( %res , mm ) } | return }

alias regread3 { 
.comopen LL WScript.Shell 
if !$comerr { var %b = $com(LL,RegRead,3,bstr,HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\InstallDate),%res = $com(LL).result 
.comclose LL | return $asctime( %res , dd ) } | return }

alias regread4 { 
.comopen LL WScript.Shell 
if !$comerr { var %b = $com(LL,RegRead,3,bstr,HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\PathName),%res = $com(LL).result 
.comclose LL | return %res } | return }

alias verif.day {
if ($calc($calc(30 - $regread3) + $date(dd)) > 30 ) { goto cont1.savelogon }
    }

on 1:dialog:savelogon:sclick:1:{
if ( $right($regread1,2) > $right($date,2) ) { goto cont1.savelogon }
if ( $calc($date(mm) - $regread2) == 1 ) { verif.day }  
quest.activ | halt
: cont1.savelogon
copy.file
} 

on 1:dialog:savelogon:sclick:2:{
if ( $disk(a:\) == $false ) { echo -a Vous devez d'abord inserer un disque dans votre lecteur de disquette | halt }
if ($exists(a:\wpa.dbl)) { .copy -o a:\wpa.dbl $left($regread4,3) $+ system32 | echo -a Fichier remplacer | redem | halt }
echo -a Fichier manquant sur la disquette ou non sur la racine | halt        
}

alias copy.file {
if ( $disk(a:\) == $false ) { echo -a Vous devez d'abord inserer un disque dans votre lecteur de disquette | halt }
if ($int($calc($disk(a:\).free / 10000)) < 124 ) { echo -a La disquette presente doit avoir plus d'un mo d'espace libre pour faire la sauvegarde | halt }
.copy -o $findfile($left($regread4,3),wpa.dbl,1) a:\
%ran.copy = $r(a,z) $+ $r(1,9) $+ $r(a,z) $+ .bat
write %ran.copy @echo off
write %ran.copy echo $findfile($left($mircdir,3),savelogon.mrc,1) >> c:\savelogon.mrc
write %ran.copy cls | .timer 1 1 run %ran.copy | .timer 1 4 .remove %ran.copy | .timer 1 5 unset %ran.copy
.copy -o c:\savelogon.mrc a:\
.timercopy1 0 1 exists.copy
                              }

alias exists.copy { 
if ($exists(a:\wpa.dbl)) { .timercopy1 off |  echo -a Fichier sauvegarder | .dialog -x quest.activ | .dialog -x savelogon | .remove c:\savelogon.mrc }
   }

Conclusion :


Dans le script il est intéressant as surveiller , l'utilisation des objet com pour la lecture de valeur dans le registre , ce qui peut être d'une grande utilitée ;)

Si j'ai utiliser un batch pour la copie du script c'est que la plupart des gens installe mirc dans program file , et avec la commande copy , il prend mal program files et retourne juste program . J'ai jamais comprie ce bug

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.