Sauvegarde activation xp

Soyez le premier à donner votre avis sur cette source.

Snippet vu 33 793 fois - Téléchargée 30 fois

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

Ajouter un commentaire Commentaires
Messages postés
97
Date d'inscription
mercredi 10 septembre 2003
Statut
Membre
Dernière intervention
7 juillet 2004

Oupsss sorndrixer, s'cuse, pas thyb, mes mains ont fourché,
oui, dj328i, merci

;)
Et Quidni!
Messages postés
311
Date d'inscription
dimanche 23 février 2003
Statut
Membre
Dernière intervention
1 mai 2009

SornDrixer

merci pour le tricks :) je savais la fonction pour le short file name mais j'avais jamais penser m'en servir pour ca.

Si tu supprime wpabaln tu va vouloir lancer ta sourie dans le mur parce que quand tu va rebooter il va t'indiquer que ton temps d'enregistrement est dépasser même si ile st déja activer , tu va devoir tout reinstaller ! alors fait pas ca lol

Alerion

Si ont peut s'apprendre entre scripteur , c'est génial ;)
Messages postés
97
Date d'inscription
mercredi 10 septembre 2003
Statut
Membre
Dernière intervention
7 juillet 2004

bah, j'ai pas XP, je testerai pas!!!
très enrichissant pour moi, et
merciiiiiiiiiiiiii bien thyb pour le $shortfn(path) parceque là ça me reture une sacrée épine du pied avec un "editeur,runneur" de *.txt sur #chan dans mon script.

[;)]
Et Quidni
Messages postés
2084
Date d'inscription
jeudi 12 décembre 2002
Statut
Modérateur
Dernière intervention
30 janvier 2011
8
"avec la commande copy , il prend mal program files et retourne juste program"
utilises $shortfn(path) , là sa devrait marcher. $shortfn renvoie le path en chemin DOS, sans espace.

Bon bah sinon, c'est une très bonne source :)

Aussi en passant, dans mon répertoire system32 , j'ai trouvé l'.exe là :
wpabaln.exe , et en description il y a :
"Rappel d'activation de windows" . Peut-être si on le supprime, ou on le déplace, windows ne nous demandera plus d'activer windows.
Enfin ceci est à vérifier :x

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.