OVH Cloud OVH Cloud

Charger un script en fonction d'un nom de serveur

4 réponses
Avatar
Xav
Bonjour à tous,

Je souhaiterais savoir si il existe une astuce pour charger un script propre
au site sur lequel on se connecte.

Je m'explique :

Nous avons 4 sites.
Sur chacun des sites, nous avons des serveurs 2000 SP4 avec AD et
réplication des Annuaires.

Nous avons des personnes nomades (avec des pc portables) qui doivent se
connecter sur chacun des sites. Pour cela nous avons installé sur chaque
serveur le service DHCP afin qu'elles puissent se connecter au réseau du
site sur lequel elles se trouvent.

Ma question est la suivante :

Est-il possible que la personne qui se connecte charge le script propre au
site en fonction du nom du serveur DHCP du site. (Avoir les bons mappages
réseaux, imprimantes, etc...)

Si vous avez une solution je suis preneur.

"Script, ou variables d'environnements"

Cordialement

Xav

4 réponses

Avatar
MC
Un petit batch exemple :


@echo off
setlocal
for /F "usebackq tokens=2,* delims=:" %%i in (`ipconfig /all ^|find
"Serveur DHCP"`) do call :SUB %%i
endlocal
goto :EOF

:SUB
if [%1]==[192.168.1.21] call :TRAIT21
if [%1]==[192.168.1.123] call :TRAIT123
if [%1]==[192.168.1.222] call :TRAIT222
goto :EOF

:TRAIT21
echo "Traitement, cas 21"
goto :EOF

:TRAIT123
echo "Traitement, cas 123"
goto :EOF

:TRAIT222
echo "Traitement, cas 222"
goto :EOF

--
@-salutations

Michel Claveau
Avatar
Xav
Désolé mais je ne comprends pas le script, faut dire que je suis une bille
en développement.
J'ai remplacé les adresses IP par celles que j'ai au niveau de mes serveurs
DHCP mais je n'ai aucun résultat. A quoi sert le GOTO EOF ?
Que dois-je faire des TRAIT21, 123, 222 ?

Merci de m'éclairer.

Xav


Il semblerai que le script regarde l'adresse IP du serveur DHCP et en
fonction de l'adresse, il lance la fonction

"MC" a écrit dans le message de news:

Un petit batch exemple :


@echo off
setlocal
for /F "usebackq tokens=2,* delims=:" %%i in (`ipconfig /all ^|find
"Serveur DHCP"`) do call :SUB %%i
endlocal
goto :EOF

:SUB
if [%1]==[192.168.1.21] call :TRAIT21
if [%1]==[192.168.1.123] call :TRAIT123
if [%1]==[192.168.1.222] call :TRAIT222
goto :EOF

:TRAIT21
echo "Traitement, cas 21"
goto :EOF

:TRAIT123
echo "Traitement, cas 123"
goto :EOF

:TRAIT222
echo "Traitement, cas 222"
goto :EOF

--
@-salutations

Michel Claveau




Avatar
Michel Claveau
Bonsoir !

Dans le désordre :

- ce batch fonctionne avec XP-pro ; il peut y avoir des différences
selon les versions de windows.
- "GOTO :EOF" c'est l'équivalent d'un RETURN dans d'autres langages
- pour commencer à tester, il faut voir si un :
ipconfig /all |find "Serveur DHCP"
tout seul fonctionne. Cela devrait donner l'IP du serveur DHCP
- si l'item précédent fonctionne, pour tester plus, on peut mettre,
avant chaque echo "Trait... un echo %* (pour voir le paramètre
passé)
- à la place des echo "Traitement, cas xxx", il faudra mettre un
batch, ou l'appel d'un script.


--
@-salutations

Michel Claveau
Avatar
Gilles LAURENT
"Xav" <x.vincent(nospam)@cer42.sideral.fr> a écrit dans le message de
news:452cb956$0$5083$
| Bonjour à tous,

Bonjour,

| Je souhaiterais savoir si il existe une astuce pour charger un script
| propre au site sur lequel on se connecte.

En complément de la réponse de Michel :

Ci-dessous le script VBScript 'ifInSubnet.vbs' permettant de tester si
un poste client se situe dans le sous-réseau spécifié comme argument. Le
script devra s'exécuter dans un logon script à l'ouverture de session.

+++ Usage
>cscript //nologo ifInSubnet.vbs <sous_réseau_propre_au_site>

+++ Exemple
>cscript //nologo ifInSubnet.vbs 130.81.10 || call logon_site1.cmd
>cscript //nologo ifInSubnet.vbs 130.82.10 || call logon_site2.cmd
>cscript //nologo ifInSubnet.vbs 130.83.10 || call logon_site3.cmd

--- Coupez ici : ifInSubnet.vbs ---

Option Explicit

' déclaration des variables
Dim oWMI, oNetCard
Dim colNetCards

' initialisation des objets
Set oWMI = GetObject ("winmgmts:.rootcimv2")

' recherche des interfaces réseau installées
Set colNetCards = OWMI.ExecQuery ( _
"Select * " & _
"From Win32_NetworkAdapterConfiguration " & _
"Where IPEnabled=True")

' énumération des interfaces
For Each oNetCard In colNetCards
If InStr (Join (oNetCard.IPAddress), WScript.Arguments (0)) Then
WScript.Quit (1)
End If
Next

--- Coupez ici : ifInSubnet.vbs ---

--
Gilles LAURENT
Me contacter : http://cerbermail.com/?zoTY7ZkLcD