nonoken
Messages postés2Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention23 novembre 2007
-
22 nov. 2007 à 19:39
nonoken
Messages postés2Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention23 novembre 2007
-
23 nov. 2007 à 13:14
Bonjour,
voilà j'ai un script de connexion qui supprime et installe les imprimantes réseaux en fonction des groupes utilisateurs d'Active Directory dont les utilisateurs sont membres et je voudrais qu'en fonction de la passerelle par défaut il définisse telle ou telle imprimante par défaut. Le réseau est en 2003.
Voici le script:
If DefaultGateway [192.168.102.254] or DefaultGateway [192.168.110.254] Then
'passerelle1=192.168.102.254 et la passerelle2=192.168.110.254
strComputer = "."
Set WshNetwork = WScript.CreateObject("WScript.Network")
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\" & strComputer & "\root\cimv2")
Set colInstalledPrinters = objWMIService.ExecQuery ("Select * from Win32_Printer")
For Each objPrinter in colInstalledPrinters
On Error Resume Next
if InStr(objPrinter.Name, "\") > 0 then
' wscript.echo "Will delete: " & objPrinter.Name
WshNetwork.RemovePrinterConnection objPrinter.Name
End If
Next
Set WSHNetwork = WScript.CreateObject("WScript.Network")
Set UserName = GetObject("WinNT://nom_du_domaine.fr/" & WSHNetwork.username)
For Each UserGroup In UserName.groups
On Error Resume Next
'----------------------------Imprimantes passerelle1----------------------------
Select Case UserGroup.name
Case "PRT1"
WshNetwork.AddWindowsPrinterConnection "\\SRVPRT\PRT1"
Case "PRT2"
WshNetwork.AddWindowsPrinterConnection "\\
SRVPRT\PRT2
"
'---------------------------Imprimantes Passerelle2----------------------------
Case "PRT3"
WshNetwork.AddWindowsPrinterConnection "\\SRV2PRT\PRT3"
Case "PRT4"
WshNetwork.AddWindowsPrinterConnection "\\
SRV2PRT\PRT4
"
End Select
Next
End If
Set WSHNetwork = WScript.CreateObject("WScript.Network")
Set UserName = GetObject("WinNT://nom_du_domaine.fr/" & WSHNetwork.username)
Dim net
Set net = CreateObject("WScript.Network")
For Each UserGroup In UserName.groups
On Error Resume Next
'-------------------------Imprimantes par defaut Passerelle1--------------------
If DefaultGateway = [192.168.102.254] Then
Select Case UserGroup.name
Case "PRT1DEF"
net.SetDefaultPrinter "\\SRVPRT\PRT1"
Case "PRT2DEF"
net.SetDefaultPrinter "\\SRVPRT\PRT2"
End select
Else
'-------------------------Imprimantes par defaut Passerelle2-----------------------
If DefaultGateway = [192.168.110.254] Then
Select Case UserGroup.name
Case "PRT3DEF"
net.SetDefaultPrinter "\\SRV2PRT\PRT3"
Case "PRT4DEF"
net.SetDefaultPrinter "\\SRV2PRT\PRT4"
End Select
End If
End if
Next
Le problème est que :
Si je suis membre des groupes PRT1, PRT1DEF,PRT3 et PRT3DEF.
- Dans le cas où je suis dans le réseau de la passerelle1, j'ai bien ma PRT1 et PRT3 qui s'installent et la PRT1 par défaut.
- Dans le cas où je suis dans le réseau de la passerelle2, j'ai bien ma
PRT1 et PRT3 qui s'installent mais la PRT3 par n'est pas par défaut.
Si j'inverse les parties rouge et verte de mon script, j'ai le résultat inverse.
C'est à dire,
- Dans le cas où je suis dans le réseau de la passerelle1, j'ai bien ma PRT1 et PRT3 qui s'installent mais la PRT1 par n'est pas par défaut.
- Dans le cas où je suis dans le réseau de la passerelle2, j'ai bien ma
PRT1 et PRT3 qui s'installent et la PRT3 par défaut.
Je voudrais savoir si quelqu'un à une idée car la je flanche.
Merci d'avance.
nonoken
Messages postés2Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention23 novembre 2007 23 nov. 2007 à 13:14
C'est bon,
un ami sur un autre forum m'a donné la solution.
Je n'ai pas identifié la variable DefaultGateway, c'est pour ça.
Voci le code à rajouter
Function DefaultGateway()
strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\" & strComputer & "\root\cimv2")
Set colAdapters objWMIService.ExecQuery ("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled True")
For Each objAdapter in colAdapters
If Not IsNull(objAdapter.DefaultIPGateway) Then
For i = 0 To UBound(objAdapter.DefaultIPGateway)
DefaultGateway = objAdapter.DefaultIPGateway(i)
Next
End If
Next
End Function