[Active Directory][GPO] Projet

Bonjour à tous amis G33k, ça fait un bon bout de temps que je ne vous avait pas demandé conseil mais la je pense que vos connaissances/expériences pourront m’aider, du moins je l’espère :stuck_out_tongue:

Pour situer, mes objectifs sont tombés ce matin, j’ai donc du boulot. Grosso modo, on me demande de refaire à neuf les GPO. Je suis donc de corvée de test pendant les mois à venir \o/
Mon entreprise aimerai voir des GPO mieux configurées qu’elles ne le sont actuellement et surtout plus efficaces que celles par défaut… Les gros points abordés sont :

  • Sécurité des postes de travail (Installation de logiciels, modification des paramètres systèmes, customisation, etc…)
  • Utilisation de logiciels dits « spécifiques » comme ERP, CRM, suite Office 2003, etc
  • Gestion des installation de logiciels (Pôle SAV, Hotline)

Pour ce qui est des GPO en elles même, je suis en cours de récolte d’information, la n’est pas le problème, je vais me les faire unes par unes (oui j’ai du temps devant moi ^^)
Le gros soucis reste le cahier des charges. Je voudrais faire ça proprement, et documenter l’ensemble du projet.
Malgré cette initiative, je ne sais pas du tout par ou commencer et mes recherches sur Google ne m’aident pas beaucoup.

Pour info ma boîte possède :

  • Un domaine unique
  • Environ 80 postes de travail (XP Pro SP2/3)
  • Environ 6 Serveurs virtuels hébergés dans une architecture VMWare ESX (2k3 Standard et Entreprise)
  • Environ 3 Serveurs « Physiques »

Des idées ? des conseils sur comment construire ce projet et partir sur de bonnes bases ? je vous demande pas de le faire a ma place bien entendu mais de me filer un petit coup de pouce pour bien démarrer sachant que je ne me suis encore jamais lancé dans un projet aussi long.
Si vous avez des bouquins particuliers à me proposer je suis prenneur, c’est freeloot sur les notes de frais donc y’a moyen de moyenner :cry:

Si il y a besoin de plus d’infos, j’éditerai :crying:

Par avance, merci de votre aide :slight_smile:

Deja il faut que tu récoltes toutes les gpo actuelles, si une OU l’heritage est bloqué.
Il existe un outil chez microsoft largement mieux que celui de base :
c’est GPMC : Ici , et un tuto

Car le plus dur c’est de faire l’état des lieux. Car avec le logiciel de base, aie ouille.

Je reediterais.

Apres , veux tu vraiment verrouiller le poste de travail ? Redirection de Mes doc sur le serveur.
De plus il faut verrouiller les logiciels utilisables ? C’est valable pour une machine en Libre service style borne internet, pas pour un poste de travail.

  • Qu’appelles tu gestion des installation logiciel ?

Merci pour le lien je le charge desuite :slight_smile:
L’état des GPO existante risque d’être rapide, elles sont quasiment toutes en non configurées, seules certaines sont actives et configurées a ma connaissance, a creuser de mon côté…

« Verrouiller le poste de travail » est peut être un peu fort, c’est surtout proposer un environnement de travail sécurisé, parceque a l’heure actuelle les utilisateurs sont administrateur de leur machine, donc a partir de la tout est possible. C’est ce qui a été rapporté suite a un audit de sécurité réalisé par des prestataires. Ils ont aussi dit que les GPO était a refaire plus « sérieusement », ça veux dire ce que ça veux dire…

Pour les logiciels, il ne faut pas les verrouiller, juste vérifier que leur utilisation est possible et sans soucis de droits une fois les nouvelles GPO déployées.
Pour la gestion des install logiciels, l’idéal serai pour l’ensemble de la société d’interdire les installation mais comme dans certains services les techniciens doivent installer des logiciels pour exploiter des machines j’aimerai pouvoir gérer ca sans avoir a me déplacer systématiquement pour une install…

Alors :

1°) La tu vas galerer pour les users en admin. On l’a fait. On a fait chier les editeurs.

Donc il te faut une machine de test. Avec tous les logiciels de la boite.
a°) tu vas te heurter aux licences logiciels :slight_smile: car généralement il n’y en a pas en rabe. Donc le faire en live sur une machine le soir.

Aide pour enlever les droits d’admin : j’espère que tu as une maintenance pour les softs métiers style GPAO/DAO/ERP.
Sinon comme dis plus haut à la main.

Les droits : Perso j’ai fait un peu à la rootz, mais c’est pas trop crade non plus. Il faut savoir aussi gérer les emmerdemenet et être tranquille:

  • Accès modification dans le répertoire de travail (installation) du logiciel, pour le groupe tout le monde. Si il y a besoin.
  • Accès en modification dans la clef de registre Local machine du logiciel, pour le groupe tout le monde. Si il y a besoin
  • Parfois il y a des petits DLL qui se trimbales dans system32 ou systemroot. La uniquement sur le fichier.

Avec ça 95% des logiciels fonctionnent sans être admin. après il faut fouiller un peu plus et c’est long. (enfoirer AUTOCAD LITE) Car parfois il y a juste des options dans le soft qui ne sont pas accessibles. Pkoi aucune idée. Et l’éditeur : prerequis d’utilisation : utilisateur administrateur c’est une honte.

Pour sécuriser poste de travail sans trop craindre tu as la GPO « Groupe restreints »:

Configuration\Parametres windows\Parametre de securité\Strategie local/attribution des droits utilisateurs: Groupes restreints.

La tu fou en administrateur que ceux qui ont besoin d’être admin local : La tu peuxrajouter le groupe des techniciens qui installent les softs. Mais n’oublie pas te rajouter :crying: .

Avec ca. Meme si par copinage: un tech fou l’utilisateur admin, des que la machine redémarre, la GPO s’exécute et jarte tous ceux qui ne sont pas dans la liste ^^
Par contre l’effet négatif, il faut vraiment qu’aucun soft n’exigent qu’un utilisateur soit admin. Ou alors tu fou les ordi dans une OU spécifique et tu fait une GPO spécifique.

@edit: par contre tu n’empecheras pas l’installation de FF ou de googleearth. Car ils ne touchent pas à la base de registre ni au dll windows, si ils installent cela dans Mes documents.

Oui tu as la liste d’interdiction des logiciels. Mais ca fonctionne par hashage. Donc chaque MAJ, il faut refoutre le Hash un boulot interminable. Testé, vite arrêté .

Licences logicielles, pas un soucis, mis a part peut être la suite Office le reste c’est peanuts.

[quote]Les droits : Perso j’ai fait un peu à la rootz, mais c’est pas trop crade non plus. Il faut savoir aussi gérer les emmerdemenet et être tranquille:

  • Accès modification dans le répertoire de travail (installation) du logiciel, pour le groupe tout le monde. Si il y a besoin.
  • Accès en modification dans la clef de registre Local machine du logiciel, pour le groupe tout le monde. Si il y a besoin
  • Parfois il y a des petits DLL qui se trimbales dans system32 ou systemroot. La uniquement sur le fichier.[/quote]
    Ca touche une GPO Ordinateur ça ou une GPO Utilisateur ?

[quote]Pour sécuriser poste de travail sans trop craindre tu as la GPO “Groupe restreints”:

Configuration\Parametres windows\Parametre de securité\Strategie local/attribution des droits utilisateurs: Groupes restreints.

La tu fou en administrateur que ceux qui ont besoin d’être admin local : La tu peuxrajouter le groupe des techniciens qui installent les softs. Mais n’oublie pas te rajouter wink.gif .

Avec ca. Meme si par copinage: un tech fou l’utilisateur admin, des que la machine redémarre, la GPO s’exécute et jarte tous ceux qui ne sont pas dans la liste ^^[/quote]
C’est un mode admin sans être réellement admin en fait ? Ca te donne des droits pour des install mais pas les droits pour d’autres paramètres ? je vais me renseigner la dessus…

Je pense plus a des installs de clients bitorents and co donc GoogleEarth a la limite ca me dérange pas plus que ca…

  • Office, aucun besoin d’etre admin :slight_smile:

-Aie j’ai oublie de le rajouter : GPO ordinateur.

  • Non, en gros tu dis à ton domaine, quels sont les groupes ou utilisateurs qui sont dans le groupe administrateur ou power user ou gestionnaire d’impression etc. Lorsque l’ordinateur démarre, il rajoute il verifie son groupe local , si il ne correspond pas, il change.

Ce sont de vrai admin . Fait un test tu vas voir.

En gros ce que j’ai fais chez nous:

Groupe administrateur local :
-Groupe administrateur local de la machine :crying:

  • Groupe administrateur du domaine
  • Groupe administrateur de ma boite.

toi tu pourrais rajouter ton groupe de technicien.

Comme cela chaque Ordinateur qui sera dans ton OU , ils auront les droits admin sous leur profil, ou avec un profil particulier.

  • Pour bitto et le reste, la c’est sur ton firewall et qu’il faut le faire, pas sur le poste local. Et le proxy pour éviter le tunneling.

en gros j’ai articuler mes GPO :

Une gpo globale lite :

  • Adresse du proxy.
    -Verrouillage de certaines options du panneau de configuration.
  • Desactivation de MSN
  • activation Groupe restreint
  • Gestion automatique de windows update

Apres tu cible plus.

@edit: un utilitaire indispensable pour savoir ce que fait un soft : http://www.microsoft.com/france/technet/sy…ads/Regmon.mspx

rah il faut que je te recherche l’outil pour comparer la Base de registre avant et apres une installation d’un soft. Pour savoir ce que triffouille le soft

@edit 2 Hum winmerge mais c’etait pas que j’avais utilisé.

C’est mieux de faire des GPO utilisateur ou des GPO Ordinateur ? Sachant que pour ma boîte chaque utilisateur a bien son propre poste et que le voisin n’est pas censé aller sur un autre poste, mais des fois ça peux arriver…

J’ai lu que aparament ça importe peu vu qu’elles seront héritées de l’ordinateur vers l’utilisateur, mais je doute encore…

Attention, j’espere que tu parles bien des OU où tu ranges ton AD dont tu parles.
Peux tu approfondir ton raisonnement pour bien voir si je comprends bien de quoi tu parles. Car j’ai un doute : tu ne parles pas des strategies Ordinateurs =! strategies utilisateurs.
Tout depend de ton organisation.

Moi je prefere faire par rapport aux utilisateurs. Sauf pour des postes particuliers: borne internet.

On est bien d’accord il s’agit bien des OU ou seront placé les utilisateurs/ordinateurs.
Je ne pense pas utiliser les GPO sur les ordinateurs mais bien sur les utilisateurs en question (et les groupes d’utilisateurs par la suite).

Tout ça reste un peu flou et mes connaissances scolaires ce sont arrêtées a la création d’une OU avec des utilisateurs dedans, on modifie les GPO Users et on se co avec pour voir ce que ca fait, pas plus. C’est pour ça que je demande si le choix d’appliquer des GPO au niveau des Users est le bon choix plutôt que sur des Ordinateurs. Je n’arrive pas voir la différence entre User et Ordinateur…
Je pense que sur les Users est plus adapté pour mon cas, en tout cas c’est ce qui est mis en place actuellement.

GPO sur User → Peu importe le poste ou il se connecte, il aura les GPO qui s’appliqueront
GPO sur Ordinateur → S’applique uniquement sur l’ordinateur, si l’User change de poste, pas de GPO.
J’ai bon ? ou faut que je retourne en cours :slight_smile: ?

En gros ou,i mais une sécurité sur l’ordinateur s’applique avant même qu’un user se connecte dessus. C’est surtout ça la différence, et bien sur sur ce que tu dis.

Pour les GPO, lorsque tu fais une modif. Elle ne s’applique jamais automatiquement, il faut attendre 90 minutes par defaut.

Tu as une commande qui force la mise à jour d’une GPO :

cmd

Gpupdate /force.

Bien sur cela marche uniquement pour les GPO Utilisateurs :slight_smile: Non ordinateur, car il est déjà démarré.

Apres une autre commande sympa :

gpresult.

Comme son nom l’indique, cela te permet de voir les GPO qui sont appliquées. Et tu peux le faire sur une machine distante ou pour un user.

Lors des GPO, tu vas voir si ton DNS est bon :crying: Car si il y a une mauvaise configuration pif paf pouf tes gpo ne fonctionnent pas.

@edit pour le user / ordinateur j’ai une borne internet. Et je veux quelque soit le user que rien ne se lance sauf IE.
GPO sur ordinateur.
Je veux une securité specifique sur telle ordinateur ou serveur. GPO sur ordinateur.

Il faut que la mise à jour de ce package MSI se fasse uniquement sur un XP SP2 et non sur un 2000.

Bonjour,

Eh ben le monde est petit, j’ai le meme projet que toi. Je dois remettre à plat les gpo de mon entreprise. Pour le moment ces GPO s’appliquent sur des groupes de sécurité-global. Certainement fonctionnent super bien mais celles qui concernent le mappage réseau elles fonctionnent de manières aléatoire.

le mappage réseau ? Cela doit se faire dans des scripts VBS ou CMD au choix.

J’ai trouvé un script vbs polyvalent qui s’applique à toutes les UO il me suffit juste de renseigner les lecteurs que je veux partager. Mais il me faut mettre ce script en script de connexion pour tous les utilisateurs de mon AD mais je ne sais pas comment le faire. Déjà j’ai copié le script dans un note pad et je ne sais comment le modifier pour qu il s éxécute au démarrage. Voici le code:

[code]Dim WshShell
Dim objNet
Dim objRootDSE
Dim Tab
Dim DN
Dim i
Dim strComputer
DN = «  »
Set WshShell = WScript.CreateObject(« WScript.Shell »)
Set objNet = WScript.CreateObject(« WScript.Network »)’ create network object for vars
Set objRootDSE = GetObject(« LDAP://rootDSE »)’ bind to the rootDSE for portability
strADsConfPath = « LDAP:// » & objRootDSE.Get(« configurationNamingContext »)’ bind to configuration to get Domain Controllers later
strRootDSE = objRootDSE.Get(« defaultNamingContext »)’ bind to the defaultContext for portability
strUserName = UCase(objNet.UserName)’ pull user name from environment variable
Tab = Split(GetDNUser(strUserName,« person »),« , »)

For i=1 to UBound(Tab)
If i = Ubound(Tab) Then

DN = DN + Tab(i)
Else
DN = DN + Tab(i) + « , »
End If
Next
‹ MsgBox DN
Const ADS_SCOPE_SUBTREE = 2
Set objConnection = CreateObject(« ADODB.Connection »)
Set objCommand = CreateObject(« ADODB.Command »)
objConnection.Provider = « ADsDSOObject »
objConnection.Open « Active Directory Provider »
Set objCommand.ActiveConnection = objConnection
objCommand.CommandText = « Select Name, unCName, ManagedBy from " _
& « 'LDAP:// »&DN& » › where objectClass=‹ volume ›"
objCommand.Properties(« Searchscope ») = ADS_SCOPE_SUBTREE
Set objRecordSet = objCommand.Execute
objRecordSet.MoveFirst
Do Until objRecordSet.EOF
'Wscript.Echo "Share Name: " & objRecordSet.Fields(« Name »).Value
msgbox objRecordSet.Fields(« Name »).Value
msgbox objRecordSet.Fields(« uNCName »).Value

Dim oNet
Set oNet = CreateObject(« Wscript.Network »)
oNet.MapNetworkDrive objRecordSet.Fields(« Name »).Value, objRecordSet.Fields(« uNCName »).Value
objRecordSet.MoveNext

Loop

Function GetDNUser(param1,param2)
Set objDSE = GetObject(« LDAP://rootDSE »)
ON ERROR RESUME NEXT
Set objConnection = CreateObject(« ADODB.Connection »)
objConnection.Open « Provider=ADsDSOObject; »
Set objCommand = CreateObject(« ADODB.Command »)
objCommand.ActiveConnection = objConnection
objCommand.CommandText = "SELECT distinguishedName, Sn " & « FROM 'LDAP:// » & objDSE.Get(« defaultNamingContext ») & "’ " & « WHERE objectCategory=' » & param2 & « ’ AND sAMAccountName=' » & param1 & "’ " & « ORDER BY sAMAccountName »
Set objRecordSet = objCommand.Execute
GetDNUser = objRecordSet.Fields(« distinguishedName »)
objConnection.Close
if err.number <> 0 then
msgbox « ERREUR: le nom renseigné n’existe pas dans l’AD. »,16,Wscript.ScriptName & " " & version
ERR.CLEAR
wscript.quit
end if
End Function
MsgBox « Mappage effectué »[/code]

Je rectifie les GPO sont appliqués directement sur le site.

Tu rajoutes le scripte dans l’onglet Profil\Script d’ouverture de session, de chaque user.
Et test.
Mais les scripts pour les users se mettent la.

Mais n’etant pas un pro du vbs, je ne le comprends pas entierement.

Moi j’ai fait un truc simple :

[code]Init Groups
Dim UserGroups
Dim GroupObj
UserGroups=""

For Each GroupObj In UserObj.Groups

Select case Groupobj.name
case “Adv Export”:

	WshNetwork.MapNetworkDrive "G:","\\srv2\Adv Export"
	WshNetwork.AddWindowsPrinterConnection "\\srv-prt-2\PRT-Export"
	
	Exit For

case "Adv France":

	WshNetwork.MapNetworkDrive "G:","\\srv2\Adv France"
	WshNetwork.AddWindowsPrinterConnection "\\srv-prt-2\PRT-France"

	Exit For
	
End Select

next

WshNetwork.MapNetworkDrive “m:”,"\srv2\partage$"[/code]

En gros un partage de service, et partage standard.
Pour le partage perso, utilisation du lecteur perso

[quote=“silka, post:14, topic: 48606”]Tu rajoutes le scripte dans l’onglet Profil\Script d’ouverture de session, de chaque user.
Et test.
Mais les scripts pour les users se mettent la.

Mais n’etant pas un pro du vbs, je ne le comprends pas entierement.

Moi j’ai fait un truc simple :

[code]Init Groups
Dim UserGroups
Dim GroupObj
UserGroups=""

For Each GroupObj In UserObj.Groups

Select case Groupobj.name
case “Adv Export”:

	 WshNetwork.MapNetworkDrive "G:","\\srv2\Adv Export"
	 WshNetwork.AddWindowsPrinterConnection "\\srv-prt-2\PRT-Export"
	 
	 Exit For

 case "Adv France":

	 WshNetwork.MapNetworkDrive "G:","\\srv2\Adv France"
	 WshNetwork.AddWindowsPrinterConnection "\\srv-prt-2\PRT-France"
 
	 Exit For
	 
 End Select

next

WshNetwork.MapNetworkDrive “m:”,"\srv2\partage$"[/code]

En gros un partage de service, et partage standard.
Pour le partage perso, utilisation du lecteur perso[/quote]

Pour tous les utilisateurs on est près d’une centaine ya pas un autre moyen?

Bonjour,

Donc ça y est avec mon script j’ai mes lecteurs qui sont bien mappé mais mon soucis c’est que j’ai ce message qui arrive quand je me reloge

( windows script host):
Script: \chemin de mon script
Line:36
Char:1
Error: Either BOF or EOF is true, or the current record has been deleted.request operation requires a current record.
Code: 800A0BCD
Source: ADODB.Recordest

il y a quoi à ta ligne 36 dans ton script ^^

@€dit Pour les users: on est plus 200, je n’ai que 4 scripts. Et pour la création utilisation de la copie.

[quote=“silka, post:17, topic: 48606”]il y a quoi à ta ligne 36 dans ton script ^^

@€dit Pour les users: on est plus 200, je n’ai que 4 scripts. Et pour la création utilisation de la copie.[/quote]

C’est pas moi qui ai créé ce script je l ai trouvé sur le net et il convient à ce que je dois faire, en ouverture de session j’ai droit à différent message d erreur:

( windows script host):
Script: \chemin de mon script
Line:36
Char:1
Error: Either BOF or EOF is true, or the current record has been deleted.request operation requires a current record.
Code: 800A0BCD
Source: ADODB.Recordest

( windows script host):
Script: \chemin de mon script
Line: 41
Char:1
Error: the local device name is already in use
Code: 80070055
Source: WSHNetwork.MapNetworkDrive

On m a dit de rajouter cette ligne :

"Il faut donc utiliser la méthode RemoveNetworkDrive de l’objet NetWork
pour déconnecter le lecteur après son utilisation.
object.RemoveNetworkDrive strName, [bForce], [bUpdateProfile]

On error resume next
oNet.RemoveNetworkDrive objRecordSet.Fields(“Name”).Value
On error goto 0
Set oNet = nothing "

maintenant j’ai ce message d’erreur en lançant mon vbscript

(vbsedit)
Line:51
Column:3
Error: (null)
code: 80004005
Source: (null)

[code] Dim WshShell
Dim objNet
Dim objRootDSE
Dim Tab
Dim DN
Dim i
Dim strComputer
DN = ““
Set WshShell = WScript.CreateObject(“WScript.Shell”)
Set objNet = WScript.CreateObject(“WScript.Network”)’ create network object for vars
Set objRootDSE = GetObject(“LDAP://rootDSE”)’ bind to the rootDSE for portability
strADsConfPath = “LDAP://” & objRootDSE.Get(“configurationNamingContext”)’ bind to configuration to get Domain Controllers later
strRootDSE = objRootDSE.Get(“defaultNamingContext”)’ bind to the defaultContext for portability
strUserName = UCase(objNet.UserName)’ pull user name from environment variable
Tab = Split(GetDNUser(strUserName,“person”),”,”)

For i=1 to UBound(Tab)
If i = Ubound(Tab) Then

DN = DN + Tab(i)
Else
DN = DN + Tab(i) + ","
End If
Next
’MsgBox DN
Const ADS_SCOPE_SUBTREE = 2
Set objConnection = CreateObject(“ADODB.Connection”)
Set objCommand = CreateObject(“ADODB.Command”)
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCommand.ActiveConnection = objConnection
objCommand.CommandText = “Select Name, unCName, ManagedBy from " _
& “'LDAP://”&DN&”’ where objectClass=‘volume’"
objCommand.Properties(“Searchscope”) = ADS_SCOPE_SUBTREE
Set objRecordSet = objCommand.Execute
objRecordSet.MoveFirst
Do Until objRecordSet.EOF
’Wscript.Echo "Share Name: " & objRecordSet.Fields(“Name”).Value
msgbox objRecordSet.Fields(“Name”).Value
msgbox objRecordSet.Fields(“uNCName”).Value

Dim oNet
Set oNet = CreateObject(“Wscript.Network”)
oNet.MapNetworkDrive objRecordSet.Fields(“Name”).Value, objRecordSet.Fields(“uNCName”).Value
objRecordSet.MoveNext

Loop

Function GetDNUser(param1,param2)

Set objDSE = GetObject(“ldap://rootDSE”)
ON ERROR RESUME NEXT
Set objConnection = CreateObject(“ADODB.Connection”)
objConnection.Open "Provider=ADsDSOObject;"
Set objCommand = CreateObject(“ADODB.Command”)
objCommand.ActiveConnection = objConnection
objCommand.CommandText = "SELECT distinguishedName, Sn " & “FROM 'LDAP://” & objDSE.Get(“defaultNamingContext”) & "’ " & “WHERE objectCategory=’” & param2 & “’ AND sAMAccountName=’” & param1 & "’ " & "ORDER BY sAMAccountName"
Set objRecordSet = objCommand.Execute
GetDNUser = objRecordSet.Fields(“distinguishedName”)
objConnection.Close
if err.number <> 0 then
msgbox “ERREUR: le nom renseigné n’existe pas dans l’AD.”,16,Wscript.ScriptName & " " & version
ERR.CLEAR
wscript.quit
end if
End Function
MsgBox “Mappage effectué”[/code]