comment creer un script de démarage svp?

comment creer un script de démarage svp? - Windows & Software

Marsh Posté le 19-06-2006 à 14:04:10    

bonjour.  
 
Alors voilà:je suis en 1ere anée de bac pro, je suis en stageet je doit, pour aprendre, administrer un serveur.bref,  
 j'ais un serveur avec Windows 2003 avec des utilisateurs (on s'en doutais XD)
Comme les utilisateurs (humains) n'ont pas de pc prés-définis, ils ont la possibilité de se loguer grâce à un mot de passe.
 
Ceci entraînant  cela: quand ils change de pc, les connecteurs réseaux qu'ils on créer ne sont plus là.
 
Ce que je doit faire, c'est créer un scripte de démarrage sur le serveur, qui connecteras des lecteurs réseau prés définis, ainsi il n'y auras plus de problème.
 
Cependant, je n'ais réussi à faire de scripte que sur un pc utilisateur pour tester la commende "net use", que je doit utiliser, et je ne sais pas du tout comment faire pour que le scripte s'enclenche automatiquement à l'ouverture des sessions utilisateur, mais à partir du serveur.
 
Pouvez vous m'aider svp?


Message édité par fan2000 le 19-06-2006 à 14:27:34
Reply

Marsh Posté le 19-06-2006 à 14:04:10   

Reply

Marsh Posté le 19-06-2006 à 14:07:45    

Pour info on dit un script  
 
regarde du coté des GPOs
 
gpedit.msc

Reply

Marsh Posté le 19-06-2006 à 14:28:26    

merci, mais je n'ais pas trouvé grand chose ( mais je continu à chercher)

Reply

Marsh Posté le 19-06-2006 à 14:42:05    

non, je trouve vraiment rien, désolé
ci quelqu'un pouvais me donner d'otres indications, merci d'avence

Reply

Marsh Posté le 19-06-2006 à 14:47:54    

hello
voila il suffit d'associer à chaque profil utilisateur un script de connexion .bat
ou dedans tu mets par exemple :
net use p: /delete
net use p: \\monserveur\%username%
 
ici on monte sur le lecteur p un partage qui a comme nom le login de l'utilisateur
donc tu enregistres par exemple ce fichier : LOGIN.BAT
et sous active directory dans les proprétés de l'utilisateur onglet profil, case script de connection :
 tu mets dans le chemin mondossierdescript\lelogin.BAT
 
pour tout savoir sur le batch dos voici un lien : http://www.wikituto.org/index.php/ [...] :Batch_DOS

Reply

Marsh Posté le 19-06-2006 à 15:04:14    

Je trouve que c'est une mauvaise méthode d'associer le script à un utilisateur. C'est chiant déjà à la création de chaque utilisateur de lui associer son script. Mais c'est super-chiant ensuite à gérer, car soit tu as un script par utilisateur, soit tu vas te retrouver avec des excéption à gérer qui ne vont pas t'arranger (genre monter un lecteur supplémentaire pour untel, mais auxquel les autres utilisateurs n'auront pas accès) et au bout d'un moment tu ne sauras plus qui a accès à quoi.
 
Un script de login doit être de préférence placé dans des GPO. C'est à dire sur une Organisational Unit (OU) dans Active Directory.
 
De plus à l'heure actuelle il est préférable de le faire en VBScript plutôt qu'en batch : c'est beaucoup plus rapide à l'exécution et bien plus souple au niveau des possibilités de programmation.
 
Voici un script que j'ai fait en VBScript qui permet de connecter des lecteurs réseaux, des partages spécifiques au groupe en allant chercher le groupe primaire associé au compte dans active directory, des imprimantes et définir quelle est l'imprimante par défaut, copier des raccourcis sur le bureau, ...
 
Evidemment il faudra l'adapter...
 

'
' Customer  : ---
' Filename  : logon.vbs
' Author    : Cédric Rathgeb
' Date      : 2006-03-23
' Update    : 2006-03-23
' Version   : 2.2.5
' Copyright : Public Domain
' Warranty  : None
'  
 
On Error Resume Next
 
bDebug = False
dTime1 = now()
 
Const E_ADS_PROPERTY_NOT_FOUND  = &h8000500D
BS = Chr(92) ' Backslash
DBS = BS & BS ' Double Backslash
 
Set wshNetwork = WScript.CreateObject("WScript.Network" )
Set wshShell = WScript.CreateObject("WScript.Shell" )
Set wshSysEnv = wshShell.Environment("SYSTEM" )
sUser = LCase(wshShell.ExpandEnvironmentStrings("%USERNAME%" ))
sComputer =  LCase(wshShell.ExpandEnvironmentStrings("%COMPUTERNAME%" ))
sServerFile = "FILESRV"
sServerPrint = "PRINTSRV"
sServerDatabase = "DBSRV"
sRunOnceFile = "U:\runoncefile.txt"
sLDAPPath = "LDAP://dc=domain,dc=com"
sGroup = GetPrimaryGroup(sUser, sLDAPPath)
sGroupUser = Right(sGroup, Len(sGroup) - 5) ' Removes cn=DA from group name
 
dTime2 = Now()
 
' The pairs are "drive" and "share"
aryShares   = Array(Array("F:", DBS & sServerDatabase & BS & "f_prg$" ), _
                    Array("G:", DBS & sServerDatabase & BS & "g_dat$" ), _
                    Array("U:", DBS & sServerFile & BS & sGroupUser & "$" & BS & sUser), _
                    Array("V:", DBS & sServerFile & BS & sGroupUser & "$" ), _
                    Array("W:", DBS & sServerFile & BS & "group$" ), _
                    Array("T:", DBS & sServerFile & BS & "commun$" ))
' The pairs are "printers" and "default printer for computers"
aryPrinters = Array(Array(DBS & sServerPrint   & BS & "DmaxDaler", "" ), _
                    Array(DBS & sServerPrint   & BS & "print0001", "da0002;da0003" ), _
                    Array(DBS & sServerPrint   & BS & "print0002", "da0011" ), _
                    Array(DBS & sServerPrint   & BS & "print0004", "da0005" ), _
                    Array(DBS & sServerPrint   & BS & "print0007B", "da0001" ), _
                    Array(DBS & sServerPrint   & BS & "print0008A", "da0004" ), _
                    Array(DBS & sServerPrint   & BS & "print0017", "da0006;da0008" ), _
                    Array(DBS & sServerPrint   & BS & "print0019", "" ))
 
' Search account in Active Directory
'   Return AD distinguished name or an empty string if not found
Function GetADDistinguishedName(sAccount, sADPath)
  Set oConnection = CreateObject("ADODB.Connection" )
  oConnection.Open "Provider=ADsDSOObject;"
  Set oCommand = CreateObject("ADODB.Command" )
  oCommand.ActiveConnection = oConnection
  oCommand.CommandText = "<" & sADPath & ">;(&(objectCategory=User)(samAccountName=" & sAccount & " ));samAccountName,distinguishedName;subtree"
  Set oRecordSet = oCommand.Execute
  If oRecordset.RecordCount = 0 Then
    ' Not found !
    GetADDistinguishedName = ""
  Else
    GetADDistinguishedName = oRecordset.Fields("distinguishedName" )
  End If
  oConnection.Close
End Function
 
' Get groups a user belongs to
'   Return an array or empty
Function GetADGroupsUserBelongsTo(sAccount, sADPath)
  Set oUser = GetObject("LDAP://" & GetADDistinguishedName(sAccount, sADPath))
  aryMemberOf = oUser.GetEx("memberOf" )
  If Err.Number = E_ADS_PROPERTY_NOT_FOUND Then
    ' Not Fount !
    GetADGroupsUserBelongsTo = Array()
  Else
    GetADGroupsUserBelongsTo = aryMemberOf
  End If
End Function
 
' Get primary group for this user
'    Return a string with groupname (note : removes "Groupe " from groupname)
'    an empty string if not found
Function GetPrimaryGroup(sAccount, sADPath)
  Set oUser = GetObject("LDAP://" & GetADDistinguishedName(sAccount, sADPath))
  iPrimaryGroupID = oUser.Get("primaryGroupID" )
  If Not(Err.Number = E_ADS_PROPERTY_NOT_FOUND) Then
    Set oConnection = CreateObject("ADODB.Connection" )
    oConnection.Open "Provider=ADsDSOObject;"
   
    Set oCommand = CreateObject("ADODB.Command" )
    oCommand.ActiveConnection = oConnection
    oCommand.CommandText = "<" & sADPath & ">;(objectCategory=Group);distinguishedName,primaryGroupToken;subtree"  
    Set oRecordSet = oCommand.Execute
    Do Until oRecordset.EOF
      If oRecordset.Fields("primaryGroupToken" ) = iPrimaryGroupID Then
        sGroup = oRecordset.Fields("distinguishedName" )
      End If
      oRecordset.MoveNext
    Loop
    sGroup = Left(sGroup, InStr(sGroup, "," ) - 1)
    GetPrimaryGroup = sGroup
    oConnection.Close
  Else
    GetPrimaryGroup = ""
  End If
End Function
 
' Disconnects all drives
Sub DisconnectDrives()
  ' Connect drives
  Set colDrives = wshNetwork.EnumNetworkDrives
  For i = 0 To colDrives.Count - 1 Step 2
    wshNetwork.RemoveNetworkDrive colDrives(i)
  Next
End Sub
 
' Map drive
Sub MapDrive(sDrive, sShare)
  wshNetwork.MapNetworkDrive sDrive, sShare
End Sub
 
' Disconnect all printers
Sub DisconnectPrinters()
  Set colPrinters = wshNetwork.EnumPrinterConnections
  For i = 0 To colPrinters.Count - 1 Step 2
    wshNetwork.RemovePrinterConnection colPrinters(i)
  Next
End Sub
 
' Map printer
Sub MapPrinter(sPrinter)
  wshNetwork.AddWindowsPrinterConnection sPrinter
End Sub
 
' Set Default Printer
Sub SetDefaultPrinter(sPrinter)
  wshNetwork.SetDefaultPrinter sPrinter
End Sub
 
 
dTime3 = Now()
' Remove previous connections
DisconnectDrives
 
dTime4 = Now()
' Connect shares to local drives
For i = LBound(aryShares) to UBound(aryShares)
  aryAux = aryShares(i)
  MapDrive aryAux(0), aryAux(1)
Next
 
dTime5= Now()
' Check if printers are allready installed
Set oFSO = CreateObject("Scripting.FileSystemObject" )
' Get file in user's share and read it
bPrintersInstalled = False
 If oFSO.FileExists(sRunOnceFile) Then
  Set oTextFile = oFSO.OpenTextFile(sRunOnceFile , 1, 0)
  sPrintersText = oTextFile.ReadAll
  oTextFile.Close
  Set oTextFile = Nothing
  ' Search if computer is already installed
  If InStr(sPrintersText, sComputer) > 0 Then
    bPrintersInstalled = True
  End If
End If
 
' Don't redo this part
' of code if printers are allready installed on the computer
If Not(bPrintersInstalled) Then
   
  DisconnectPrinters
 
  ' Connect printers
  For i = LBound(aryPrinters) to UBound(aryPrinters)
    aryAux = aryPrinters(i)
    MapPrinter aryAux(0)
    aryComputers = Split(aryAux(1), ";" )
    For j = LBound(aryComputers) to UBound(aryComputers)
      If sComputer = aryComputers(j) Then
        SetDefaultPrinter(aryAux(0))
      End If
    Next
  Next
 
  ' Add to printer's file the current computer name
  Set oTextFile = oFSO.CreateTextFile(sRunOnceFile , True, False)
  sPrintersText = sPrintersText & sComputer & vbCrLf
  oTextFile.Write sPrintersText
  oTextFile.Close
  Set oTextFile = Nothing
   
  ' Copy shortcuts on User's Desktop
  sSource = DBS & sServerDatabase & BS & "F_Prg$" & BS & "SHORTCUT" & BS & "*.*"
  sDestinationF = "C:" & BS & "documents and settings" & BS & sUser & BS & "bureau"
  sDestinationE = "C:" & BS & "documents and settings" & BS & sUser & BS & "desktop"
  oFSO.CopyFile sSource, sDestinationF, True
  oFSO.CopyFile sSource, sDestinationE, True
 
End If
 
If bDebug Then
  msgbox "Ordinateur : " & sComputer & ". " &_
         "Temps AD : " & datediff("s", dTime1, dTime2) & ". " &_
         "Temps définition : " & datediff("s", dTime2, dTime3) & ". " &_
         "Temps disques déconnexion : " & datediff("s", dTime3, dTime4) & ". " &_
         "Temps disques connexion : " & datediff("s", dTime4, dTime5)  & ". " &_
         "Temps imprimantes : " & datediff("s", dTime5, Now()) & ". " &_
         "Temps total : " & datediff("s", dTime1, Now()) & "."
End If
 
' Delete objects
Set oFSO = Nothing
Set wshNetwork = Nothing
Set wshShell   = Nothing
Set wshSysEnv  = Nothing


 
Pour la documentation sur VBScript : http://msdn.microsoft.com/scripting/

Message cité 1 fois
Message édité par Requin le 19-06-2006 à 15:08:35
Reply

Marsh Posté le 19-06-2006 à 15:07:16    

oki, merci, mais juste deux trucks que j'ais pas tres bien compis:
le fichier .bat, c'est pas sur le serveur?
et sur AD, je vois bien "scriptd'ouverture de session", mais apres avoir taper le nom du fichier, mon utilisateur de log pas automatiquement les lecteurs.  
y a quelque chose que j'ais pas bien fais? (j'ais taper le nom du fichier)

Reply

Marsh Posté le 19-06-2006 à 15:17:10    

Tu dois aller sur Utilisateurs et Ordinateurs Active Directory -> Tu choisis ton Unité d'Organisation (OU) qui contient les comptes utilisateurs (ou une OU parent) -> Click droit -> Propriétés ->  Onglet Stratégie de groupe -> Bouton Nouveau -> Choisi un nom clair (genre : GPO pour script de login) -> Bouton Modifier -> Dans l'éditeur de stratégie sous Configuration Utilisateur -> Paramètres Windows -> Scripts (ouverture/fermeture de session) -> Ouverture de session... tu ajoutes le fichier de script.
 
Tous les utilisateurs contenu dans l'OU et les OU filles (tant que tu ne bloques par l'héritage) auront ce script appliqué.


Message édité par Requin le 19-06-2006 à 15:24:45
Reply

Marsh Posté le 19-06-2006 à 15:17:19    

a chaque situation sa mesure, si tu n'as que très peu d'utilisateur un script batch suffit largement
si tu en as plus d'une dizaine là la solution de requin est plus juste..  
 
il faut créer ton fichier batch avec le montage des lecteurs si tu optes pour cette solution

Reply

Marsh Posté le 19-06-2006 à 15:18:14    

Requin a écrit :

Je trouve que c'est une mauvaise méthode d'associer le script à un utilisateur. C'est chiant déjà à la création de chaque utilisateur de lui associer son script. Mais c'est super-chiant ensuite à gérer, car soit tu as un script par utilisateur, soit tu vas te retrouver avec des excéption à gérer qui ne vont pas t'arranger (genre monter un lecteur supplémentaire pour untel, mais auxquel les autres utilisateurs n'auront pas accès) et au bout d'un moment tu ne sauras plus qui a accès à quoi.
 
Un script de login doit être de préférence placé dans des GPO. C'est à dire sur une Organisational Unit (OU) dans Active Directory.
 
De plus à l'heure actuelle il est préférable de le faire en VBScript plutôt qu'en batch : c'est beaucoup plus rapide à l'exécution et bien plus souple au niveau des possibilités de programmation.
 
Voici un script que j'ai fait en VBScript qui permet de connecter des lecteurs réseaux, des partages spécifiques au groupe en allant chercher le groupe primaire associé au compte dans active directory, des imprimantes et définir quelle est l'imprimante par défaut, copier des raccourcis sur le bureau, ...
 
Evidemment il faudra l'adapter...
 

'
' Customer  : ---
' Filename  : logon.vbs
' Author    : Cédric Rathgeb
' Date      : 2006-03-23
' Update    : 2006-03-23
' Version   : 2.2.5
' Copyright : Public Domain
' Warranty  : None
'  
 
On Error Resume Next
 
bDebug = False
dTime1 = now()
 
Const E_ADS_PROPERTY_NOT_FOUND  = &h8000500D
BS = Chr(92) ' Backslash
DBS = BS & BS ' Double Backslash
 
Set wshNetwork = WScript.CreateObject("WScript.Network" )
Set wshShell = WScript.CreateObject("WScript.Shell" )
Set wshSysEnv = wshShell.Environment("SYSTEM" )
sUser = LCase(wshShell.ExpandEnvironmentStrings("%USERNAME%" ))
sComputer =  LCase(wshShell.ExpandEnvironmentStrings("%COMPUTERNAME%" ))
sServerFile = "FILESRV"
sServerPrint = "PRINTSRV"
sServerDatabase = "DBSRV"
sRunOnceFile = "U:\runoncefile.txt"
sLDAPPath = "LDAP://dc=domain,dc=com"
sGroup = GetPrimaryGroup(sUser, sLDAPPath)
sGroupUser = Right(sGroup, Len(sGroup) - 5) ' Removes cn=DA from group name
 
dTime2 = Now()
 
' The pairs are "drive" and "share"
aryShares   = Array(Array("F:", DBS & sServerDatabase & BS & "f_prg$" ), _
                    Array("G:", DBS & sServerDatabase & BS & "g_dat$" ), _
                    Array("U:", DBS & sServerFile & BS & sGroupUser & "$" & BS & sUser), _
                    Array("V:", DBS & sServerFile & BS & sGroupUser & "$" ), _
                    Array("W:", DBS & sServerFile & BS & "group$" ), _
                    Array("T:", DBS & sServerFile & BS & "commun$" ))
' The pairs are "printers" and "default printer for computers"
aryPrinters = Array(Array(DBS & sServerPrint   & BS & "DmaxDaler", "" ), _
                    Array(DBS & sServerPrint   & BS & "print0001", "da0002;da0003" ), _
                    Array(DBS & sServerPrint   & BS & "print0002", "da0011" ), _
                    Array(DBS & sServerPrint   & BS & "print0004", "da0005" ), _
                    Array(DBS & sServerPrint   & BS & "print0007B", "da0001" ), _
                    Array(DBS & sServerPrint   & BS & "print0008A", "da0004" ), _
                    Array(DBS & sServerPrint   & BS & "print0017", "da0006;da0008" ), _
                    Array(DBS & sServerPrint   & BS & "print0019", "" ))
 
' Search account in Active Directory
'   Return AD distinguished name or an empty string if not found
Function GetADDistinguishedName(sAccount, sADPath)
  Set oConnection = CreateObject("ADODB.Connection" )
  oConnection.Open "Provider=ADsDSOObject;"
  Set oCommand = CreateObject("ADODB.Command" )
  oCommand.ActiveConnection = oConnection
  oCommand.CommandText = "<" & sADPath & ">;(&(objectCategory=User)(samAccountName=" & sAccount & " ));samAccountName,distinguishedName;subtree"
  Set oRecordSet = oCommand.Execute
  If oRecordset.RecordCount = 0 Then
    ' Not found !
    GetADDistinguishedName = ""
  Else
    GetADDistinguishedName = oRecordset.Fields("distinguishedName" )
  End If
  oConnection.Close
End Function
 
' Get groups a user belongs to
'   Return an array or empty
Function GetADGroupsUserBelongsTo(sAccount, sADPath)
  Set oUser = GetObject("LDAP://" & GetADDistinguishedName(sAccount, sADPath))
  aryMemberOf = oUser.GetEx("memberOf" )
  If Err.Number = E_ADS_PROPERTY_NOT_FOUND Then
    ' Not Fount !
    GetADGroupsUserBelongsTo = Array()
  Else
    GetADGroupsUserBelongsTo = aryMemberOf
  End If
End Function
 
' Get primary group for this user
'    Return a string with groupname (note : removes "Groupe " from groupname)
'    an empty string if not found
Function GetPrimaryGroup(sAccount, sADPath)
  Set oUser = GetObject("LDAP://" & GetADDistinguishedName(sAccount, sADPath))
  iPrimaryGroupID = oUser.Get("primaryGroupID" )
  If Not(Err.Number = E_ADS_PROPERTY_NOT_FOUND) Then
    Set oConnection = CreateObject("ADODB.Connection" )
    oConnection.Open "Provider=ADsDSOObject;"
   
    Set oCommand = CreateObject("ADODB.Command" )
    oCommand.ActiveConnection = oConnection
    oCommand.CommandText = "<" & sADPath & ">;(objectCategory=Group);distinguishedName,primaryGroupToken;subtree"  
    Set oRecordSet = oCommand.Execute
    Do Until oRecordset.EOF
      If oRecordset.Fields("primaryGroupToken" ) = iPrimaryGroupID Then
        sGroup = oRecordset.Fields("distinguishedName" )
      End If
      oRecordset.MoveNext
    Loop
    sGroup = Left(sGroup, InStr(sGroup, "," ) - 1)
    GetPrimaryGroup = sGroup
    oConnection.Close
  Else
    GetPrimaryGroup = ""
  End If
End Function
 
' Disconnects all drives
Sub DisconnectDrives()
  ' Connect drives
  Set colDrives = wshNetwork.EnumNetworkDrives
  For i = 0 To colDrives.Count - 1 Step 2
    wshNetwork.RemoveNetworkDrive colDrives(i)
  Next
End Sub
 
' Map drive
Sub MapDrive(sDrive, sShare)
  wshNetwork.MapNetworkDrive sDrive, sShare
End Sub
 
' Disconnect all printers
Sub DisconnectPrinters()
  Set colPrinters = wshNetwork.EnumPrinterConnections
  For i = 0 To colPrinters.Count - 1 Step 2
    wshNetwork.RemovePrinterConnection colPrinters(i)
  Next
End Sub
 
' Map printer
Sub MapPrinter(sPrinter)
  wshNetwork.AddWindowsPrinterConnection sPrinter
End Sub
 
' Set Default Printer
Sub SetDefaultPrinter(sPrinter)
  wshNetwork.SetDefaultPrinter sPrinter
End Sub
 
 
dTime3 = Now()
' Remove previous connections
DisconnectDrives
 
dTime4 = Now()
' Connect shares to local drives
For i = LBound(aryShares) to UBound(aryShares)
  aryAux = aryShares(i)
  MapDrive aryAux(0), aryAux(1)
Next
 
dTime5= Now()
' Check if printers are allready installed
Set oFSO = CreateObject("Scripting.FileSystemObject" )
' Get file in user's share and read it
bPrintersInstalled = False
 If oFSO.FileExists(sRunOnceFile) Then
  Set oTextFile = oFSO.OpenTextFile(sRunOnceFile , 1, 0)
  sPrintersText = oTextFile.ReadAll
  oTextFile.Close
  Set oTextFile = Nothing
  ' Search if computer is already installed
  If InStr(sPrintersText, sComputer) > 0 Then
    bPrintersInstalled = True
  End If
End If
 
' Don't redo this part
' of code if printers are allready installed on the computer
If Not(bPrintersInstalled) Then
   
  DisconnectPrinters
 
  ' Connect printers
  For i = LBound(aryPrinters) to UBound(aryPrinters)
    aryAux = aryPrinters(i)
    MapPrinter aryAux(0)
    aryComputers = Split(aryAux(1), ";" )
    For j = LBound(aryComputers) to UBound(aryComputers)
      If sComputer = aryComputers(j) Then
        SetDefaultPrinter(aryAux(0))
      End If
    Next
  Next
 
  ' Add to printer's file the current computer name
  Set oTextFile = oFSO.CreateTextFile(sRunOnceFile , True, False)
  sPrintersText = sPrintersText & sComputer & vbCrLf
  oTextFile.Write sPrintersText
  oTextFile.Close
  Set oTextFile = Nothing
   
  ' Copy shortcuts on User's Desktop
  sSource = DBS & sServerDatabase & BS & "F_Prg$" & BS & "SHORTCUT" & BS & "*.*"
  sDestinationF = "C:" & BS & "documents and settings" & BS & sUser & BS & "bureau"
  sDestinationE = "C:" & BS & "documents and settings" & BS & sUser & BS & "desktop"
  oFSO.CopyFile sSource, sDestinationF, True
  oFSO.CopyFile sSource, sDestinationE, True
 
End If
 
If bDebug Then
  msgbox "Ordinateur : " & sComputer & ". " &_
         "Temps AD : " & datediff("s", dTime1, dTime2) & ". " &_
         "Temps définition : " & datediff("s", dTime2, dTime3) & ". " &_
         "Temps disques déconnexion : " & datediff("s", dTime3, dTime4) & ". " &_
         "Temps disques connexion : " & datediff("s", dTime4, dTime5)  & ". " &_
         "Temps imprimantes : " & datediff("s", dTime5, Now()) & ". " &_
         "Temps total : " & datediff("s", dTime1, Now()) & "."
End If
 
' Delete objects
Set oFSO = Nothing
Set wshNetwork = Nothing
Set wshShell   = Nothing
Set wshSysEnv  = Nothing


 
Pour la documentation sur VBScript : http://msdn.microsoft.com/scripting/


euh n'applique pas ce script tel quel sinon tu risques d'avoir de gros soucis  !!!!

Reply

Marsh Posté le 19-06-2006 à 15:18:14   

Reply

Marsh Posté le 19-06-2006 à 15:22:01    

croli a écrit :

euh n'applique pas ce script tel quel sinon tu risques d'avoir de gros soucis  !!!!


 
Je déteste m'auto-quoter :
Evidemment il faudra l'adapter...
 
Premièrement il était inutile de quoter l'ensemble du post, deuxièmement le seul souci qu'il aura c'est de n'avoir aucun lecteur mappé, aucune imprimante connectée, ... du moins tant qu'il n'aura pas adapté le script à son environnement.


Message édité par Requin le 19-06-2006 à 15:22:43
Reply

Marsh Posté le 19-06-2006 à 15:24:43    

oui désole pour le quote, oui le soucis comme tu dis tout dépend de la taille de son réseau, mais s'il est en stage et qu'il y a 50 users derrière et qu'il coupe les montages ;)

Reply

Marsh Posté le 19-06-2006 à 15:33:59    

Bah perso ce script, certes dans une version simplifiée, je l'ai utilisé sur des réseaux respectivement avec 3 utilisateurs et 5 utilisateurs (mes plus petits clients quoi !)...
 
Disons que à l'époque de NT4 les batchs ou fichiers de commandes NT étaient la seule solution gratuite, il existait certes des produits commerciaux pour faire des scripts souples, alors voilà souvent c'était un script par utilisateur, des script de groupes appelés par le script de l'utilisateur et pour finir des scripts communs à tout le monde. Tu te retrouvais avec des dizaines de scripts qui s'appelaient les uns les autres. Dès que le réseau commencait à avoir quelques utilisateurs et resources réseau ca devenait un calvaire à gérer.
 
A l'heure actuelle avec VBS un seul script pour tout le monde et des variables / branchements conditionnels pour connecter les bonnes resources aux bonnes personnes.
 
Sans compter qu'un batch ouvre systématiquement une fenêtre d'interpréteur de commande (que l'utilisateur va fermer si elle met un peu trop de temps à s'exécuter ;) ) et qu'un batch s'exécute bien 10X plus lentement que l'équivalent en VBS (chrono en main).


Message édité par Requin le 19-06-2006 à 15:34:58
Reply

Marsh Posté le 19-06-2006 à 15:36:12    

nostalgie quand tu nous tiens
enfin j'ai encore quelques batch qui trainent sur mon réseau ;)
mais bon rien que déjà comprendre le système de batch je pense que c'est de la bonne école .. surtout pour un débutant...  :D

Reply

Marsh Posté le 19-06-2006 à 15:39:59    

non non, j'ais 6 utilisateurs, c'est tres peut ^_^
pour "Requin": ton idée à l'aire tres bonne, mais apparement elle ne marche pas, il fau bien metre la nouvelle gpo dans le repertoire "computers"?

Reply

Marsh Posté le 19-06-2006 à 15:42:00    

Ca reste pratique pour automatiser certaines tâches en particulier lorsque l'on saisi une séquence de commandes à l'interprêteur.
 
J'en utilise encore pour les tâches de pré- / post-traitement des sauvegardes où certains services sont arrêtés, des données sont dumpées des DBs, quelques tâches de maintenance sont exécutées, ...
 
Mais pour les scripts de login c'est fini ;)

Reply

Marsh Posté le 19-06-2006 à 15:43:02    

non non, j'ais 6 utilisateurs, c'est tres peut ^_^
pour "Requin": ton idée à l'aire tres bonne, mais apparement elle ne marche pas, il fau bien metre la nouvelle gpo dans le repertoire "computers"?

Reply

Marsh Posté le 19-06-2006 à 15:46:12    

fan2000 a écrit :

non non, j'ais 6 utilisateurs, c'est tres peut ^_^
pour "Requin": ton idée à l'aire tres bonne, mais apparement elle ne marche pas, il fau bien metre la nouvelle gpo dans le repertoire "computers"?


 
La GPO est faite de deux parties :
 
- une partie ordinateurs, qui s'applique aux comptes des ordinateurs
- une partie utilisateurs, qui s'applique aux comptes des utilsiateurs
 
Un script d'ouverture de session est dans la partie utilisateurs. Si tu n'as pas d'OU, le conteneurs par défaut est "Users".
 
Toutefois, même pour 6 utilisateurs je te conseille vivement de créer une Organisational Unit et d'y déplacer tes comptes utilisateurs à l'intérieur (à l'exception du compte admin). Ensuite tu appliques ta GPO uniquement sur l'OU que tu as crées. De sorte que si tu te trompes avec les paramètres de sécurité (bon le script de login c'est pas celà qui va trop poser de problèmes) tu auras toujours un compte admin capable de gérer la GPO en question.

Message cité 1 fois
Message édité par Requin le 19-06-2006 à 15:47:27
Reply

Marsh Posté le 19-06-2006 à 15:49:58    

Requin a écrit :

La GPO est faite de deux parties :
 
- une partie ordinateurs, qui s'applique aux comptes des ordinateurs
- une partie utilisateurs, qui s'applique aux comptes des utilsiateurs
 
Un script d'ouverture de session est dans la partie utilisateurs. Si tu n'as pas d'OU, le conteneurs par défaut est "Users".
 
Toutefois, même pour 6 utilisateurs je te conseille vivement de créer une Organisational Unit et d'y déplacer tes comptes utilisateurs à l'intérieur (à l'exception du compte admin). Ensuite tu appliques ta GPO uniquement sur l'OU que tu as crées. De sorte que si tu te trompes avec les paramètres de sécurité (bon le script de login c'est pas celà qui va trop poser de problèmes) tu auras toujours un compte admin capable de gérer la GPO en question.


 
oui, mais le fait est qu'on m'a demender de faire le fichier avec la comande net use, et le fichier devra se rouver sur le serveur.
je ne doute pas de vos bon conseilles, mais j'ais quend même des consignes à respecter

Reply

Marsh Posté le 19-06-2006 à 15:50:10    

OU = MaSociété (tu nommes avec le nom de la société)
|
|-- OU = Ordinateurs (tu y mets tes comptes oridinateurs qui sont actuellement dans Computers)
|
|-- OU = Utilisateurs ( tu y mets tes comptes utilisateurs qui sont actuellement dans Users et tu créés un GPO ici)

Reply

Marsh Posté le 19-06-2006 à 15:53:45    

fan2000 a écrit :

oui, mais le fait est qu'on m'a demender de faire le fichier avec la comande net use, et le fichier devra se rouver sur le serveur.
je ne doute pas de vos bon conseilles, mais j'ais quend même des consignes à respecter


 
Tu peux utiliser un batch dans les GPO, ca fonctionne aussi. Le fichier résidera sur le serveur dans \\domain.com\SYSVOL (remplace par le nom de ton domaine).
 
Toutefois je te conseille de ne pas utiliser un batch pour principalement des raisons de lenteurs et de manque de souplesse. C'est comme je l'ai dis la méthode "historique" de faire, qui à l'heure actuelle n'a plus vraiment de raison d'être.

Reply

Marsh Posté le 19-06-2006 à 16:02:16    

si tu utilises la méthode batch avec le script dans le profil il faut de mémoire mettre dans le repertoire partagé netlogon de ton serveur ;)

Reply

Marsh Posté le 19-06-2006 à 16:06:48    

croli a écrit :

si tu utilises la méthode batch avec le script dans le profil il faut de mémoire mettre dans le repertoire partagé netlogon de ton serveur ;)


 
Yep si tu l'associe au proffil et depuis Windows 2000 tu peux y accéder en écriture via \\domain.com\netlogon (remplace domain.com par le nom de ton domaine. Note il est aussi possible d'utiliser le nom d'un DC spécifique à la place)

Reply

Marsh Posté le 19-06-2006 à 16:07:59    

c gentil, (vraiment, c pas de l'humoure) mais je doi fair un fichier.bat, c'est dans la demende, mais (même avec tout vos bon conseils) je n'arive toujour pas à l'apliquer à l'ouverture de la session T_T  
il y a forcément quelque chose que je ne fait pas bien.
dand "modifier" la gpo, je met bien mon fichier, mais il faut metre quoi dans "parametre de scipte" (en dessous du nom).
j'ais placer la gpo dans "users"

Reply

Marsh Posté le 19-06-2006 à 16:09:12    

si tu fais un rsop.msc ( ou un gpresult) sur ton poste client, est-ce que tu vois bien la GPO ?

Reply

Marsh Posté le 19-06-2006 à 16:10:16    

et aprés tu n'as plus qu'à créer malheureusement pour toi un script par utilisateur  
exemple si tu as un utilisateur toto
tu crées un script toto.bat
sous AD dans les propriétés de l'utilisateur, onglet profil, tu mets toto.bat
 
dans ton fichier toto.bat tu démontes les lecteurs présents et tu montes les lecteurs à monter :comme ceci :
net use p: /delete
net use p: \\monserveur\%username%
tu peux rajouter:
net user w: /delete
net use w: \\monserveur\lepartageamonter
et ainsi de suite

Reply

Marsh Posté le 19-06-2006 à 16:14:27    

croli a écrit :

et aprés tu n'as plus qu'à créer malheureusement pour toi un script par utilisateur  
exemple si tu as un utilisateur toto
tu crées un script toto.bat
sous AD dans les propriétés de l'utilisateur, onglet profil, tu mets toto.bat
 
dans ton fichier toto.bat tu démontes les lecteurs présents et tu montes les lecteurs à monter :comme ceci :
net use p: /delete
net use p: \\monserveur\%username%
tu peux rajouter:
net user w: /delete
net use w: \\monserveur\lepartageamonter
et ainsi de suite


 
ça on vas dir que c'est fait (à ma sauce, mais c'est déja une chose de faite ^_^)

Reply

Marsh Posté le 19-06-2006 à 16:15:07    

bah alors ca doit marche à la prochaine ouverture de session de ton user ;)

Reply

Marsh Posté le 19-06-2006 à 16:17:58    

chailloug a écrit :

si tu fais un rsop.msc ( ou un gpresult) sur ton poste client, est-ce que tu vois bien la GPO ?


 
le rsop.msc ne marche pas (c'est peut etre parceque c'est un 98) et quand je fait gpresult la conssole windowse s'afiche tres brievement et s'éteind; je n'ais pas le temps de voir ce qui s'afiche

Reply

Marsh Posté le 19-06-2006 à 16:20:00    

sur win98 fais démarrer éxécuter-->Command --> gpresult (par contre j'ai un doute sur le fonctionnement du gpresult sous 98...).
 
sinon fais tes test d'un 2000/xp

Reply

Marsh Posté le 19-06-2006 à 16:21:40    

euh le montage ne marche pas avec 98:/

Reply

Marsh Posté le 19-06-2006 à 16:22:33    

croli a écrit :

bah alors ca doit marche à la prochaine ouverture de session de ton user ;)


 
naonnn!!! même paaaaasss!! ouinnnn :cry:  
désolé de demender ça, mais tu pourais me dir encor plus precisement comment fair avec les gpo stp?  
il y a forcémznt 1 truk que j'ai smal fait, c'est pas possible autrement

Reply

Marsh Posté le 19-06-2006 à 16:24:09    

chailloug a écrit :

sur win98 fais démarrer éxécuter-->Command --> gpresult (par contre j'ai un doute sur le fonctionnement du gpresult sous 98...).
 
sinon fais tes test d'un 2000/xp


 
j'ais pas compris "fais tes test d'un 2000/xp[/quotemsg]"

Reply

Marsh Posté le 19-06-2006 à 16:24:57    

croli a écrit :

euh le montage ne marche pas avec 98:/


 
tu veu dir que je pe pas le fair avc les 98?
ça m'étone..

Reply

Marsh Posté le 19-06-2006 à 16:26:32    

si ton client est en 98 la variable username ne fonctionnera pas

Reply

Marsh Posté le 19-06-2006 à 16:29:00    

là je vais avoir l'aire idiot, mais t pe me rapeler de ce qu'est la variable utilisateur svp? (c'ext dans la ligne d ecommande?

Reply

Marsh Posté le 19-06-2006 à 16:30:05    

%username% c'est à dire le login de l'utilisateur si tu l'utilises pour monter un repertoire du login de l'utilisateur ca ne marche pas sous windows 98
déjà donne ton script qu'on vérifie qu'il n'y pas de soucis dedans


Message édité par croli le 19-06-2006 à 16:30:25
Reply

Marsh Posté le 19-06-2006 à 16:31:31    

Win98 Ce n'est pas fait pour un réseau d'entreprise... sous 98, une astuce consiste à créer un raccourci dans le menu démarrage vers  \\serveur\netlogon\tonscript.bat
 
Windows NT 4.0 Workstation, Windows 2000 Pro et Windows XP Pro sont OK et suportent les GPOs.

Message cité 1 fois
Message édité par Requin le 19-06-2006 à 16:32:26
Reply

Marsh Posté le 20-06-2006 à 09:33:18    

Requin a écrit :

Win98 Ce n'est pas fait pour un réseau d'entreprise... sous 98, une astuce consiste à créer un raccourci dans le menu démarrage vers  \\serveur\netlogon\tonscript.bat
 
Windows NT 4.0 Workstation, Windows 2000 Pro et Windows XP Pro sont OK et suportent les GPOs.


 
bonjour.
 
pour faire ton racorcit, tu fait comment svp?
tu dit que c'est dans le menus démarer, mais encor?

Reply

Marsh Posté le 20-06-2006 à 09:56:58    

pour lancer un script depuis un pc W98 tu crées ton fichier .Bat tu le mets sur le pc en question et tu crées un raccourcis de ce fichier .bat que tu mettras dans le ménu démmarer>démarrage
comme cela ca le lance  à l'ouverture de session de 98

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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