scripting

scripting - Windows & Software

Marsh Posté le 14-05-2004 à 09:26:05    

Citation :

salut
y aurais t-il quelqu'un qui pourrais me dire comment créer des partages reseau en scripting? en fait il me faut supprimer les presents et en refaire d'autres, mais en une seule fois (execution du script et qu'il reste actif tout seul)
merci :pt1cable:  
 

Reply

Marsh Posté le 14-05-2004 à 09:26:05   

Reply

Marsh Posté le 14-05-2004 à 14:17:43    

ouvre une fenêtre ms-dos et tape "net help use" :D

Reply

Marsh Posté le 14-05-2004 à 16:30:36    

heu j'ai du mal me faire comprendre, donc je rééxplique:
je sais faire des partages en batch, la n'est pas la question, ce que je veux faire, c'est des partages en vbscripting!!!
et la JE N'Y ARRIVE PAS  :cry:  
 
 

KenShInouU a écrit :

ouvre une fenêtre ms-dos et tape "net help use" :D



---------------
L'ordre génère le désordre et le désordre génère l'ordre.
Reply

Marsh Posté le 14-05-2004 à 16:35:23    

si c'est le même vbs auquel je pense ya une jolie commande qui s'appelle "MapDrive"  :lol:  :lol:  :lol:

Reply

Marsh Posté le 14-05-2004 à 16:54:31    

KenShInouU a écrit :

si c'est le même vbs auquel je pense ya une jolie commande qui s'appelle "MapDrive"  :lol:  :lol:  :lol:


 
et t'aurais pas une petite ligne pour que je vois si tu pense comme moi? :heink:


---------------
L'ordre génère le désordre et le désordre génère l'ordre.
Reply

Marsh Posté le 14-05-2004 à 17:11:41    

Je suis trop bon...
 

Code :
  1. Option Explicit
  2. On Error Resume Next
  3. Dim wshNetwork, wshShell, wshSysEnv, colDrives, nReturnCode
  4. Dim i, j
  5. Dim aryDrives, aryShares, strUser
  6. Dim colPrinters, aryPrinters
  7. Dim BS
  8. BS = Chr(92) ' Set a backslash (\)
  9. Set wshNetwork = WScript.CreateObject("WScript.Network" )
  10. Set wshShell = WScript.CreateObject("WScript.Shell" )
  11. Set wshSysEnv = wshShell.Environment("SYSTEM" )
  12. strUser = wshShell.ExpandEnvironmentStrings("%USERNAME%" )
  13. ' Those array are linked, using two 1-dim arrays instead of one 2-dim array
  14. aryDrives = Array("F:", "M:", "O:", "U:" )
  15. aryShares = Array("\\totosrv1\metro$", _
  16.                   "\\totosrv1\toto$\" & strUser & "\mes documents", _
  17.                   "\\totosrv1\toto$\" & strUser & "\outlook", _
  18.                   "\\totosrv1\toto$" )
  19. aryPrinters = Array("\\totosrv1\infoprint", _
  20.                     "\\totosrv1\bobcolpt1-p", _
  21.                     "\\totosrv1\bobcolpt1-l", _
  22.                     "\\totosrv1\bobcobac-l" )
  23. If (wshSysEnv("OS" ) = "Windows_NT" ) Then
  24.  
  25.    ' Connect drives
  26.    Set colDrives = wshNetwork.EnumNetworkDrives
  27.    For i = 0 To colDrives.Count - 1 Step 2
  28.       ' Disconnect previous connections
  29.       For j = LBound(aryDrives) To UBound(aryDrives)
  30.          If (colDrives(i) = aryDrives(j)) Then
  31.             wshNetwork.RemoveNetworkDrive aryDrives(j)
  32.          End If
  33.       Next
  34.    Next
  35.    ' Map new drive
  36.    If UBound(aryDrives) = UBound(aryShares) Then
  37.       For i = Lbound(aryDrives) To UBound(aryDrives)
  38.          wshNetwork.MapNetworkDrive aryDrives(i), aryShares(i)
  39.       Next
  40.    Else
  41.       MsgBox "Error into connexion's script, aryShares and arryDrives aren't of the same size !"
  42.    End If
  43.    
  44.    ' Connect printers
  45.    Set colPrinters = wshNetwork.EnumPrinterConnections
  46.    For i = 0 To colPrinters.Count - 1 Step 2
  47.       ' Disconnect already connected printers
  48.       For j = LBound(aryPrinters) To UBound(aryPrinters)
  49.          If (colPrinters(i) = aryPrinters(j)) Then
  50.             wshNetwork.RemovePrinterConnection aryPrinters(j)
  51.          End If
  52.       Next
  53.    Next
  54.    For j = LBound(aryPrinters) To UBound(aryPrinters)
  55.       wshNetwork.AddWindowsPrinterConnection aryPrinters(j)
  56.    Next
  57. Else
  58.    WScript.Echo "This WSH logon script supports only Windows NT/2000/XP/2003." & vbNewLine &_
  59.                 "Exiting..."
  60.    Set wshNetwork = Nothing
  61.    Set wshShell = Nothing
  62.    WScript.Quit(1)
  63. End If
  64. Set wshNetwork = Nothing
  65. Set wshShell = Nothing
  66. WScript.Quit(nReturnCode)


 
Pour la doc voir le site :
http://msdn.microsoft.com/scripting

Reply

Marsh Posté le 14-05-2004 à 17:16:44    

merci j'essaye de le comprendre et je te tiens au courant ;0)


---------------
L'ordre génère le désordre et le désordre génère l'ordre.
Reply

Marsh Posté le 14-05-2004 à 18:07:21    

ca marche  :bounce:   :bounce:   :bounce:  
mais tu vas dire que je suis chiant, mais mes partages je l'ai vois apparaitre,....., et disparaitre :cry:  
je sais que j'abuse la, mais ca fait 2 jours que je suis dessus, et la j'en ai un peu ras le :pt1cable:  
si ta la reponse  :hello:


---------------
L'ordre génère le désordre et le désordre génère l'ordre.
Reply

Marsh Posté le 14-05-2004 à 18:11:35    

Ce n'est a priori pas lié au script puisque ce dernier fonctionne sur plusieurs réseaux 2000 et 2003...
 
Essaie le mapping manuel pour voir si ton partage est viré...

Reply

Marsh Posté le 14-05-2004 à 18:18:39    

les partages sont ok, en manuel il sont bien la, mais je ne remet pas en cause ton script c'est juste que le seul partage a rester c'est le dernier, genre il fait une boucle et il vire ceux qu'il a crèer au dèbut, je sais , c'est le principe meme du script, mais comment faire pour que la boucle se fasse juste au dessous des delete.....


---------------
L'ordre génère le désordre et le désordre génère l'ordre.
Reply

Marsh Posté le 14-05-2004 à 18:18:39   

Reply

Marsh Posté le 14-05-2004 à 18:27:43    

Quel est l'interêt de faire ses mapages en VBS et non en batch DOS ?

Reply

Marsh Posté le 14-05-2004 à 18:56:32    

Bcp plus rapide au niveau de l'exécution !
 
Et surtout bcp plus flexible... tu as toutes les structures de programmations habituelles (sélections conditionnelles, boucles, fonctions, ...)
 
Par exemple tente de connecter et définir une imprimante réseau par défaut en fonction du groupe d'appartenance dans Active Directory d'un utilisateur à l'aide d'un batch ;)

Reply

Marsh Posté le 14-05-2004 à 19:34:44    

a propos de boucle ta pas une idée requin pour ma boucle qui supprime mes partages ausitôt créé ???
je met un exemple de mon script, dite moi ou je me plante, car il fonctionne trop bien pour supprimer les partages déjas existant, mais ensuite je veux qu'il les gardes :??:  
[citation]
  Option Explicit
  On Error Resume Next
 
  Dim wshNetwork, wshShell, wshSysEnv, colDrives, nReturnCode
  Dim i, j
  Dim aryDrives, aryShares, strUser
 
  Dim BS
  BS = Chr(92) ' Set a backslash (\)
 
  Set wshNetwork = WScript.CreateObject("WScript.Network" )
  Set wshShell = WScript.CreateObject("WScript.Shell" )
  Set wshSysEnv = wshShell.Environment("SYSTEM" )
  strUser = wshShell.ExpandEnvironmentStrings("%USERNAME%" )
 
  ' Those array are linked, using two 1-dim arrays instead of one 2-dim array
  aryDrives = Array("U:", "P:", "S:", "M:","V:" )
  aryShares = Array("\\serveur\partage1", _
                    "\\serveur\partage2", _
                    "\\serveur\partage3", _
                    "\\serveur\partage4", _
                    "\\serveur\partage5" )
 
  If (wshSysEnv("OS" ) = "Windows_NT" ) Then
 
     ' Connect drives
     Set colDrives = wshNetwork.EnumNetworkDrives
     For i = 0 To colDrives.Count - 1 Step 2
        ' Disconnect previous connections
        For j = LBound(aryDrives) To UBound(aryDrives)
           If (colDrives(i) = aryDrives(j)) Then
              wshNetwork.RemoveNetworkDrive aryDrives(j)
           End If
        Next
     Next
     ' Map new drive
     If UBound(aryDrives) = UBound(aryShares) Then
        For i = Lbound(aryDrives) To UBound(aryDrives)
           wshNetwork.MapNetworkDrive aryDrives(i), aryShares(i)
        Next
     Else
        MsgBox "Error into connexion's script, aryShares and arryDrives aren't of the same size !"
     End If
     Set wshNetwork = Nothing
     Set wshShell = Nothing
     WScript.Quit(1)
  End If
 
  Set wshNetwork = Nothing
  Set wshShell = Nothing
[/citation]


---------------
L'ordre génère le désordre et le désordre génère l'ordre.
Reply

Marsh Posté le 14-05-2004 à 19:40:46    

Code :
  1. wshNetwork.RemoveNetworkDrive aryDrives(j)

 
 
Déconnecte un lecteur réseau... c'est pour éviter qu'un utilisateur récupère les lecteurs d'un autre ou que le lecteur soit déjà mappé sur autre chose.

Reply

Marsh Posté le 14-05-2004 à 19:50:54    

mais ca, je le veux!!! c'est exactement ce que je veux, ce que je ne veux pas, c'est qu'il continu aprés avoir supprimer les existant et qu'il me garde les nouveaux...


---------------
L'ordre génère le désordre et le désordre génère l'ordre.
Reply

Marsh Posté le 14-05-2004 à 20:46:13    

pas trop le courage d'etudier ton truc, mais tu peux utiliser ca pour virer tout les lecteurs reseau avant d'en mapper de nouveau,

Code :
  1. Set WshNetwork = WScript.CreateObject("WScript.Network" )
  2. Set oDrives = WshNetwork.EnumNetworkDrives
  3. For i = 0 to oDrives.Count - 1 Step 2
  4.   NetworkDriveLetter = oDrives.Item(i)
  5.   WshNetwork.RemoveNetworkDrive NetworkDriveLetter , true, true
  6. Next


 
moin evoluer que celui que tu utilise sauf si ton but est de virer tout les lecteurs reseau.
 
a voir si le prb reviens, je te laisse t'amuser a tester :D

Reply

Marsh Posté le 15-05-2004 à 09:34:40    


merci pour ton exemple, je m'amuse dessus et te dit si ca me suffit, avec tous ca si je n'y arrive pas, ca serait ballot  :D  
et pour repondre directment à ta question, oui, je veux virer les lecteurs dejas presents pour les remplacer par d'autres qui ont été déplacé sur un autre serveur, et pour compliquer un peu la chose, il doivent être en dur, pas de script de connexion!!!! :lol:  
mais la je crois que je m'en approche mechamment, merci a tous
 

Citation :

[nom]Bernard Werber a écrit[/nom]

Code :
  1. L'ordre génère le désordre et le désordre génère l'ordre. En théorie, si l'on fait une omelette en brouillant un œuf,il n'existe qu'une probabilité infime pour que l'omelette reprenne la forme de l'œuf originel. Mais cette probabilité existe.


Reply

Marsh Posté le 15-05-2004 à 09:43:36    

Regarde si il y a une option "persistent" ... elle existe sous "net use", je suppose que ca doit être un paramètre du mappage.

Reply

Marsh Posté le 15-05-2004 à 10:20:24    

a ca je le sais, c'est true, comme knives le montre dans son exemple ;o)

Reply

Sujets relatifs:

Leave a Replay

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