Des Scripts

 
 

Les scripts que vou trouverez ici et ceux que vous pourrez trouver sur le reste du net ne sont pas trop différents. En effet la rédaction de script n'est pas vraiment une action très complexe et il y a souvent LA meilleure solution, surtout pour des commandes de base.

 
 

Les scripts que vou trouverez ici et ceux que vous pourrez trouver sur le reste du net ne sont pas trop différents. En effet la rédaction de script n'est pas vraiment une action très complexe et il y a souvent LA meilleure solution, surtout pour des commandes de base.

Il est conseillé de taper vos commandes et d'indiquer les répertoires en n'oubliant pas que certains OS ne prennent que 8 caractères (ex: Program Files -> Progra~1).

S. 1 : Empêcher l'utilisateur de stopper votre script par un 'Ctrl C ' - menu

BREAK OFF

S .2 : Détection du système d'exploitation - menu

Beaucoup de softs ou de fonctions réseaux réagissent différemment sous NT/2000/XP ou 95/98/Me

IF @INWIN = "1"
GOTO NT
ELSE IF @INWIN = "2"
GOTO WIN9x
ENDIF
ENDIF

$Produit = "OS :"+@PRODUCTTYPE+" type :"+@PRODUCTSUITE
? $Produit ; affiche la variable produit

S. 3 : Création d'une connexion réseau par utilisateur - menu

La commande USE va permettre les actions sur les lecteurs réseaux. Dans un réseau d'entreprise standardisé la gestion des lecteurs réseaux revient aux administrateurs. L'exemple le plus simple est de passer par la connection des lecteurs de répertoire personnel si on décide de ne pas utiliser l'option fournie dans les propriété de l'utilisateur.

Pour cela on met en partage sur le serveur de fichier un répertoire du type USERID$ pour qu'il ne soit visible qu'à l'utilisateur.

$userHome = "\\FileServeur\"+@USERID+"$"

USE U: /DELETE ;permet d'effacer une précédente connexion parasite
USE U: $userHome ;crée la connexion réseau, la valeur de retour est 0 si tout se passe bien

S. 4: Création d'une connexion réseau par groupe d'appartenance - menu

Sur le même principe que pour l'utilisateur on va vérifier à quel groupe appartient l'utilisateur pou lui connecter les bons lecteurs réseaux. Dans cet exempl nous prenons un professeurs travaillant à la fois dans des groupes Sytèmes et Réseaux.

$SERVICES="\\fileServeur\services"
$MAP="L:M:N:O:P" ;définition des lecteurs

$SEPARATION=instr($MAP,":") ;Récupération des lecteurs

;****GROUPE SYSTEME****

IF ingroup("GL-systeme") = 2

$lecteur=substr($MAP,1,$SEPARATION) ;recupere la premiere lettre dans les maps disponibles
USE $LECTEUR /DELETE
USE $LECTEUR "$SERVICES\systeme" ; cree le lecteur
$MAP=substr($MAP,$SEPARATION+1,LEN($MAP)-$SEPARATION) ; décale à la prochaine lettre

ENDIF

;****GROUPE RESEAU****

IF ingroup("GL-reseau") = 2

$lecteur=substr($MAP,1,$SEPARATION) ;recupere la premiere lettre dans les maps disponibles
USE $LECTEUR /DELETE
USE $LECTEUR "$SERVICES\reseau" ; cree le lecteur
$MAP=substr($MAP,$SEPARATION+1,LEN($MAP)-$SEPARATION) ; décale à la prochaine lettre

ENDIF

S. 5: Synchronisation de la date et de l'heure - menu

SETTIME "\\Serveur" ;pour un serveur quelconque

SETTIME "@LSERVER" ;pour le serveur d'authentification

S. 6 : Copie d'un fichier - menu

COPY "\\fileServeur\resultats\result2000-2001.xls" "d:\resultats\import" ;copie d'un fichier sur le réseau vers un disque local

S. 7: Ajout d'un raccourci dans le menu démarrer si appartenance à un groupe. - menu

Par exemple vous mettez à disposition une application qui affiche certains menus suivant les paramètres passés en ligne de commande. En considérant que nous sommes dans un environnement Windows NT 4 (dans 2000 et XP c:\winnt\profiles est transféré à c:\Document and Settings)

IF ingroup("systeme") = 2

$profileUser = "c:\winnt\profiles\"+@USERID+"Menu Démarrer\superProg"
COPY "\\fileServeur\admi$\raccourcis\superProg\sys.lnk" $profileUser

ENDIF

...

S. 8 : Modification d'une imprimante sur un poste client - menu

Encore une fois on peut l'étendre à un groupe. Mais ça ne marche que sous NT/2000/XP, et a besoin d'être fait pour chaque utilisateur car la gestion dépend du profil.

DELPRINTERCONNECTION ("\\printerServeur\HP4L") ; pour la supprimer

ADDPRINTERCONNECTION ("\\printerServeur\HP4L") ; pour l'ajouter

SETDEFAULTPRINTERCONNECTION("\\printerServeur\HP4L") ; pour la mettre par défaut

S. 9 : Ecrire dans la base de registre - menu

Par exemple nous allons enlever le nom de l'utilisateur dans la boite de connexion au démarrage. On modifie pour cela la sous-clé "DontDisplayLastUserName situé dans HKLM\SOFTWARE\Windows\CurrentVersion\Winlogon et d'y attribuer la valeur 1.

WRITEVALUE("HKEY_LOCAL_MACHINE\SOFTWARE\Windows\CurrentVersion\Winlogon", "DontDisplayLastUserName ", "1","REG_SZ")

S. 10 : Lire et tester la base de registre - menu

Nous allons tester la version d'antivirus utilisée par MacAfee sur ce poste avant de le mettre à jour. Puis nous allons supprimer une entree au cas où l'un des utilisateurs serait parvenu à installer un logiciel non désiré.

$valUpdate=ReadValue("HKEY_LOCAL_MACHINE\SOFTWARE\Network Associates\TVD\Shared Components\VirusScan Engine\4.0.xx\","szDatVersion") ;on sait ainsi que la dernière mise à jour est la 4.0.4179.

$rien=DelVAlue("KKEY_LOCAL_MACHINE\SOFTWARE\Windows\CurrentVersion\Run\","ICQ")

S. 11 : Exécuter une commande - menu

La dernière version à jour de MacAfee est la 4.0.4180. Nous allons donc la mettre à jour à l'aide du fichier 4180xdat.exe que l'on va éxécuter silencieusement.

$MAJ = 4180

;/**** Detection de la version de l'antivirus *****/

$valUpdate = ReadValue("HKEY_LOCAL_MACHINE\SOFTWARE\Network Associates\TVD\Shared Components\VirusScan Engine\4.0.xx\","szDatVersion")

If ( SubStr($valUpdate, Len($valUpdate) - 3, 4) < $MAJ )
USE Y: "\\fileServeur\$Anti"

RUN "Y:\"+$MAJ+"xdat.exe /SILENT /F" ; on lance silencieusement et on force le passage à cette version

endif

Tous ces scripts sont très basiques et ne constituent que des petits pierres à ajouter à votre propre mur. Donc n'hésitez pas à faire un tour dans la rubrique lien et affronter les scripts des autres. Ils ne répondront pas toujours directement à votre demande mais au moins ils vous inspireront.

 

 
 


J'oubliais, le contenu de ce site peut être pompé ou utilisé dans son intégralité tant que ce n'est pas à des fins commerciales. Il a été concu dans le cadre de ma formation à l'Université de Marne la Vallée et les copyright lui appartiennent donc.