GPO : Variable @ IP dans un script batch d'ouverture de session

GPO : Variable @ IP dans un script batch d'ouverture de session - Infrastructures serveurs - Systèmes & Réseaux Pro

Marsh Posté le 04-03-2010 à 18:32:10    

Bonjour,
 
Voilà le contexte de ma demande :
Dans l'entreprise où j'effectue présentement mon stage de fin d'étude nous trouvons un siège et des agences distantes (la liaison est VPN PPTP). Chaque entité possède son propre sous-réseau. Nous trouvons du Windows 2003 pour la partie serveur, du Windows XP et Windows 7 pour la partie clients...
Le siège est en 192.168.3.0/24, les agences en 192.168.(numéro du département).0/24... Le serveur de fichier est situé au siège.
 
On me demande s'il est possible pour les utilisateurs du réseau local siège de monter automatiquement à l'ouverture de session un lecteur réseau correspondant à un dossier partagé qui porte leur nom d'utilisateur, plutôt facile :
Je crée une stratégie de groupe pour l'OU correspondante avec un script exécuté à l'ouverture de session qui contient net use z: \\nomdu serveur\%USERNAME%
Pour le démonter je pourrais exécuter un script à la fermeture de session qui serait net use z: /delete.
 
Le hic, c'est qu'au siège, il y a des utilisateurs nomades (avec des PC portables). On ne souhaite pas que ces derniers ait accès à leur lecteur réseau lorsqu'ils se connectent depuis les agences distantes (on peut monter grâce au routage mis en place des lecteurs réseau depuis ces agences) pour des raisons de maintien de la bande passante.
 
Comme les adresses IP sont distribuées à travers un DHCP, je me suis dit (et c'est là l'objet de ma question) qu'il est peut-être possible d'exécuter la commande net use seulement après avoir testé la valeur de l'adresse IP (du genre if "%IPADDRESS%"=="192.168.3.*" net use z: \\nomdu serveur\%USERNAME%...
 
Pouvez-vous m'indiquer quelle est la variable Windows (si elle existe) correspondant à l'adresse IP de l'hôte ? Si cette variable n'existe pas que me suggérez-vous pour résoudre mon problème ?
 
Merci d'avance.


---------------
Google n'est pas toujours mon ami... Mon site : http://francoisdm.fr
Reply

Marsh Posté le 04-03-2010 à 18:32:10   

Reply

Marsh Posté le 04-03-2010 à 19:34:39    

WMI pour récupérer l'adresse IP (fait gaffe si tu as plusieurs ip aussi ...)

Reply

Marsh Posté le 04-03-2010 à 19:56:00    

Je@nb a écrit :

WMI pour récupérer l'adresse IP (fait gaffe si tu as plusieurs ip aussi ...)


 
Merci pour la réponse.
Je ne maîtrise pas du tout les requêtes WMI. Je pense que ça se passe par le biais de la console wmimgmt.msc mais je dois avouer que je sèche...


---------------
Google n'est pas toujours mon ami... Mon site : http://francoisdm.fr
Reply

Marsh Posté le 04-03-2010 à 20:07:36    

bah le wmi en bat c'est un peu nul quoi; faut passer à du vbs.
 
wmimgmt ne sert pas du tout à ça

Reply

Marsh Posté le 04-03-2010 à 20:50:02    

Vbs alias Visual Basic Script ? Oups je crois que je suis dépassé là...

Reply

Marsh Posté le 04-03-2010 à 20:50:51    

Bah ouais, les fichiers bat ça fait belle lurette qu'il faut pas utiliser ça :/

Reply

Marsh Posté le 04-03-2010 à 20:53:07    

J'en prends bonne note. Un petit conseil pour débuter dans le scripting VBS ?

Reply

Marsh Posté le 04-03-2010 à 23:21:14    

WMI ca passe pas à ma connaissance avec de simples droits utilisateur.
 
Perso, je suis passé par autoit pour faire l'équivalent de ce que tu demandes.
 
Sinon, tu peux aussi placer des GPO suivant des sites.

Reply

Marsh Posté le 05-03-2010 à 21:50:59    

Salut Joelmander
J'utilise dans ma boite un script vbs qui se lance par une GPO.
Chaque utilisateur possède à l'ouverture de session (GPO) toujours 3 raccourcis de lecteur réseau.
On définit le chemin souhaité et le nom du raccourci dans ce script.

Reply

Marsh Posté le 05-03-2010 à 21:53:37    

Bah, pas français ça sorry...
A l'ouverture de session, chaque utilisateur retrouve sur son bureau les raccourcis pointant vers les lecteurs réseau.
 
Il faut l'appliquer la GPO sur l'UO voulue et après filtrer éventuellement à cause des OS différents, d'ailleurs j'ai un souci car j'ai du XP (là ça fonctionne OK) mais j'ai aussi du Vista et seven (et là ça marche moins bien)
 
Je cherche de l'aide aussi sur ces filtres GPO

Reply

Marsh Posté le 05-03-2010 à 21:53:37   

Reply

Marsh Posté le 08-03-2010 à 09:24:44    

Bon après avoir un peu fait le tour de  ce qui se fait, j'ai pondu un script VBS (mon tout 1er ! Je fais un voeu !  :pt1cable: ) :
 
strComputer = "."
 
Set objWMIService = GetObject("winmgmts:" & "!\\" & strComputer & "\root\cimv2" )
Set colAdapters = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration Where IPEnabled = True" )
Set objNetwork = wscript.CreateObject("wscript.network" )
 
For Each objAdapter in colAdapters
 
IP = LBound(objAdapter.IPAddress)
 
If Mid (objAdapter.IPAddress(IP),8,3) = ".3."  then
CreateObject("WScript.Shell" ).Run "C:\mappage.bat"
end if
 
next
 
Le script mappage.bat lancé sera :
 
net use z: \\monserveurdefichiers\%USERNAME%
 
C'est loin d'être parfait et donc j'imagine perfectible (à vos suggestions !).
 
Voilà voilà voilà


---------------
Google n'est pas toujours mon ami... Mon site : http://francoisdm.fr
Reply

Marsh Posté le 08-03-2010 à 09:58:06    

pk tu montes pas ton share en vbs aussi plutot que d'appeler un .bat ? :/

Reply

Marsh Posté le 08-03-2010 à 10:08:53    

Je@nb a écrit :

pk tu montes pas ton share en vbs aussi plutot que d'appeler un .bat ? :/


Bah j'ai pas réussi à intégrer la variable username   :(  
Alors du coup j'ai joué à jojo le bricolo. :sol:
Ça marche, même si je sais que c'est moyen. Juré je vais continuer à chercher à améliorer ça.
Toujours à l'écoute de tes brillantes suggestions !  :)

Reply

Marsh Posté le 08-03-2010 à 10:14:52    

google en 2min :
 

Code :
  1. ' MNDUserName.vbs
  2. ' VBScript to map a network drive to the UserName.
  3. ' Author Guy Thomas http://computerperformance.co.uk/
  4. ' Version 1.3 - April 24th 2005
  5. ' -----------------------------------------------------------------'
  6. Option Explicit
  7. Dim objNetwork
  8. Dim strDriveLetter, strRemotePath, strUserName
  9. strDriveLetter = "J:"
  10. strRemotePath = "\\grand\home"
  11. ' Purpose of script to create a network object. (objNetwork)
  12. ' Then to apply the MapNetworkDrive method. Result J: drive
  13. Set objNetwork = WScript.CreateObject("WScript.Network" )
  14. ' Here is where we extract the UserName
  15. strUserName = objNetwork.UserName
  16. objNetwork.MapNetworkDrive strDriveLetter, strRemotePath _
  17. & "\" & strUserName
  18. ' Extra code just to add a message box
  19. WScript.Echo " Launch Explorer, check: "& strDriveLetter
  20. WScript.Quit
  21. ' End of MapNetworkDrive Example logon script.

Reply

Marsh Posté le 08-03-2010 à 10:32:38    

Je@nb, si tu n'existais pas, il faudrait t'inventer !
Merci

Reply

Marsh Posté le 08-03-2010 à 11:23:39    

Voilà la trombine de mon script
 
Set objWMIService = GetObject("winmgmts:" & "!\\" & strComputer & "\root\cimv2" )
Set colAdapters = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration Where IPEnabled = True" )
Set objNetwork = wscript.CreateObject("wscript.network" )
For Each objAdapter in colAdapters
IP = LBound(objAdapter.IPAddress)
If Mid (objAdapter.IPAddress(IP),8,3) = ".3."  then
Dim objNetwork
Dim strDriveLetter, strRemotePath, strUserName
strDriveLetter = "Z:"
strRemotePath = "\\monserveurdefichier"
Set objNetwork = WScript.CreateObject("WScript.Network" )
strUserName = objNetwork.UserName
objNetwork.MapNetworkDrive strDriveLetter, strRemotePath _
& "\" & strUserName
end if
next
 
J'espère que j'ai bon !  :D

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed