GPO : Variable @ IP dans un script batch d'ouverture de session - Infrastructures serveurs - Systèmes & Réseaux Pro
Marsh Posté le 04-03-2010 à 19:34:39
ReplyMarsh 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...
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
Marsh Posté le 04-03-2010 à 20:50:02
Vbs alias Visual Basic Script ? Oups je crois que je suis dépassé là...
Marsh Posté le 04-03-2010 à 20:50:51
Bah ouais, les fichiers bat ça fait belle lurette qu'il faut pas utiliser ça
Marsh Posté le 04-03-2010 à 20:53:07
J'en prends bonne note. Un petit conseil pour débuter dans le scripting VBS ?
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.
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.
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
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 ! ) :
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à
Marsh Posté le 08-03-2010 à 09:58:06
ReplyMarsh 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.
Ç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 !
Marsh Posté le 08-03-2010 à 10:14:52
google en 2min :
Code :
|
Marsh Posté le 08-03-2010 à 10:32:38
Je@nb, si tu n'existais pas, il faudrait t'inventer !
Merci
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 !
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