Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Expiration du compte AD semi-inopérante

8 réponses
Avatar
Mathieu G.
Bonsoir,

Petite question dont je n'ai pu trouver la réponse via mon ami Google,
ainsi que la méthode RTFM :)

Sur notre Active Directory (sous un 2K3 Server), nous sommes amenés à
définir pour certains utilisateurs une date d'expiration du compte.

Une fois le compte arrivé à expiration, l'utilisateur ne rencontre le
message "votre compte à expiré" lors de sa connexion que si, et
seulement si, il dispose des privilèges d'administrateur local de sa
machine. Il lui est alors impossible de démarrer une session en
utilisant ses identifiants.

Sur une machine où l'utilisateur ne dispose que des droits "utilisateur"
normaux, il n'est nullement informé de l'arrivée à expiration de son
compte, et peut tranquillement ouvrir une session avec ses identifiants
habituels. Il lui est juste impossible de parcourir les partages réseau
nécessisants d'être préalablement authentifié.

Auriez-vous une quelquonque explication rationelle à cette bizarrerie,
qui fait perdre un certain intêret à la fonction d'expiration des comptes ?

Merci bien, et bonne fin de soirée ;)

--
Mathieu G.
RC Europe IT Dpt

8 réponses

Avatar
Mathieu CHATEAU
Bonjour,

l'appartenance au groupe "administrateurs" n'a rien à voir avec votre
soucis...
Il s'agit de la mise en cache des credentials, qui fait qu'il y faut
redémarrer ensuite pour que cela soit pris en compte.

Afin d'éviter ceci, il faut activer la GPO "toujours attendre le réseau".
Par défaut, il est possible de se logguer alors que la couche réseau n'est
pas encore prête.

Vérifiez qu'il n'y a pas un compte utilisateur local à la machine qui porte
le même login/pass. Sinon la personne pourra toujours s'y logguer en
sélectionner la machine à la place du domaine


--
Cordialement,
Mathieu CHATEAU
http://lordoftheping.blogspot.com


"Mathieu G." wrote in message
news:46fac06d$0$26380$
Bonsoir,

Petite question dont je n'ai pu trouver la réponse via mon ami Google,
ainsi que la méthode RTFM :)

Sur notre Active Directory (sous un 2K3 Server), nous sommes amenés à
définir pour certains utilisateurs une date d'expiration du compte.

Une fois le compte arrivé à expiration, l'utilisateur ne rencontre le
message "votre compte à expiré" lors de sa connexion que si, et seulement
si, il dispose des privilèges d'administrateur local de sa machine. Il lui
est alors impossible de démarrer une session en utilisant ses
identifiants.

Sur une machine où l'utilisateur ne dispose que des droits "utilisateur"
normaux, il n'est nullement informé de l'arrivée à expiration de son
compte, et peut tranquillement ouvrir une session avec ses identifiants
habituels. Il lui est juste impossible de parcourir les partages réseau
nécessisants d'être préalablement authentifié.

Auriez-vous une quelquonque explication rationelle à cette bizarrerie, qui
fait perdre un certain intêret à la fonction d'expiration des comptes ?

Merci bien, et bonne fin de soirée ;)

--
Mathieu G.
RC Europe IT Dpt


Avatar
Mathieu G.
Bonsoir,

l'appartenance au groupe "administrateurs" n'a rien à voir avec votre
soucis...
Il s'agit de la mise en cache des credentials, qui fait qu'il y faut
redémarrer ensuite pour que cela soit pris en compte.


Certes, mais même après reboots, c'est la même chose (constaté sur
plusieurs machines).

Afin d'éviter ceci, il faut activer la GPO "toujours attendre le
réseau". Par défaut, il est possible de se logguer alors que la couche
réseau n'est pas encore prête.


Dans le cas présent, la couche réseau est prête avant le login (exemple
avec une authentification WPA *avant* l'ouverture de session). Je
connais bien les symptomes lorsque le login est fait alors que la couche
réseau n'est pas prête, et ce n'est nullement le cas ici.

Vérifiez qu'il n'y a pas un compte utilisateur local à la machine qui
porte le même login/pass. Sinon la personne pourra toujours s'y logguer
en sélectionner la machine à la place du domaine


Il n'y en a pas.

J'insiste réélement que ce cas de figure n'arrive *que* lorsque
l'utilisateur ne fait *pas* partie du groupe local "Administrateur" de
la machine, c'est vraiment la seule différence.

Merci pour vos pistes :)

--
Mathieu G.
RC Europe IT Dpt

Avatar
thomas
Bonjour a tous je viens de lire ce post et j'aimerais savoir comment faire
pour activer la GPO "toujours attendre le réseau" s'il vous plaît car j'ai
le même problème que Mathieu. merci pour votre aide.
Avatar
Mathieu CHATEAU
Bonjour,

ouvrer gpmc.msc
créez une nouvelle GPO
Allez dans la partie ordinateur
Modèles d'administration
Système
Ouverture de session
double cliquer sur "toujours attendre le réseau lors du démarrage"
Activer

Attendre / forcer la réplication + gpupdate /force sur la station + reboot
pour valider


--
Cordialement,
Mathieu CHATEAU
English blog: http://lordoftheping.blogspot.com
French blog: http://www.lotp.fr


"thomas" wrote in message
news:
Bonjour a tous je viens de lire ce post et j'aimerais savoir comment faire
pour activer la GPO "toujours attendre le réseau" s'il vous plaît car j'ai
le même problème que Mathieu. merci pour votre aide.





Avatar
thomas
Oups désolé j'ai oublier de préciser que j'étais sur Windows Server 2000 SP4
"toujours attendre le réseau lors du démarrage n'est pas dans la liste"
comment puis-je faire pour que les sessions des utilisateurs de mon
entreprise se ferment automatiquement lorsque les horaires d'accès arrivent
a expiration? j'ai déjà activé la fermeture automatique des sessions
lorsqu'elle arrivent a expiration mais ca ne marche qu'après un redémarrage
je voudrais que ca marche même si ils sont déjà connecté a leurs session...
cordialement
Avatar
Mathieu CHATEAU
Quel est l'os sur vos postes clients ? 2000 ou XP ?

pour fermer les sessions, il faut utiliser un script VBS qui se connecte sur
chaque station pour fermer la session

--
Cordialement,
Mathieu CHATEAU
English blog: http://lordoftheping.blogspot.com
French blog: http://www.lotp.fr


"thomas" wrote in message
news:
Oups désolé j'ai oublier de préciser que j'étais sur Windows Server 2000
SP4 "toujours attendre le réseau lors du démarrage n'est pas dans la
liste" comment puis-je faire pour que les sessions des utilisateurs de mon
entreprise se ferment automatiquement lorsque les horaires d'accès
arrivent a expiration? j'ai déjà activé la fermeture automatique des
sessions lorsqu'elle arrivent a expiration mais ca ne marche qu'après un
redémarrage je voudrais que ca marche même si ils sont déjà connecté a
leurs session...
cordialement



Avatar
thomas
les postes clients tournent sur XP (une 60aine) et sur 98SE (2 ou 3)
Pour ce qui est des scripts VBS je n'y avait pas du tout penser j'ai juste
créer des batchs pour interdire l'accès (net user nom_d'utilisateur
/times: ) et un autre pour redémarrer l'ordinateur (shutdown.exe -l -t
900 -m ip_machine -c "la machine va s'éteindre" ) Mais ce n'était pas
vraiment le but recherché.
Je trouve ton idée exactement apropriée a mes besoin par contre je ne m'y
connais pas du tout en script VBS pourait tu me donner un exemple qui se
connecterait a une session puis pour la fermer stp.
Merci pour ton aide car j'ai chercher longement sur google des softs mais
impossible.
Avatar
Mathieu CHATEAU
Voici un script.

Remplacer:
"ou=MONOU,dc=MONDOMAINE,dc=COM" par les bonnes valeurs
C:ScriptsLogOffLogOff.log par un chemin valide



Const ForWriting = 2
strComputerContainer = "ou=MONOU,dc=MONDOMAINE,dc=COM"


Set objContainer = GetObject("LDAP://" & strComputerContainer)
objContainer.Filter = Array("Computer")

Set objFSO = CreateObject ("Scripting.FileSystemObject")
Set objFile = objFSO.CreateTextFile ("C:ScriptsLogOffLogOff.log",
ForWriting)
Set StdOut = WScript.StdOut
Set objShell = CreateObject("WScript.Shell")

On Error Resume Next

For Each objComputer In objContainer

strComputer = Split(objComputer.Name, "=")(1)


Set objScriptExec = objShell.Exec("ping " & strComputer)
strPingResults = LCase(objScriptExec.StdOut.ReadAll)
objFile.Write (Now & VbCrLf)

If InStr(strPingResults, "reply from") Then
objFile.Write ("Ping " & strComputer & " OK" & VbCrLf)
Err.Clear
Set objWMIService = GetObject("winmgmts:" & _
"{impersonationLevel=Impersonate}!" & strComputer & "rootcimv2")

If Err.Number Then
objFile.Write ("Acces WMI " & strComputer & " Error" & VbCrLf)
objFile.Write ("Type d'Erreur : " & Err.Number & ": " & Err.Description &
VbCrLf)
Err.Clear
Else

Const SHUTDOWN = 4
objFile.Write ("Acces WMI " & strComputer & " OK" & VbCrLf)
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate,(shutdown)}!" & strComputer &
"rootcimv2")
Set colOperatingSystems = objWMIService.ExecQuery _
("SELECT * FROM Win32_OperatingSystem")
For Each objOperatingSystem in colOperatingSystems
ObjOperatingSystem.Win32Shutdown(SHUTDOWN)
Next

End If
Else
objFile.Write ("Ping " & strComputer & " Error" & VbCrLf)
End If
Next
objFile.Close


--
Cordialement,
Mathieu CHATEAU
English blog: http://lordoftheping.blogspot.com
French blog: http://www.lotp.fr


"thomas" wrote in message
news:
les postes clients tournent sur XP (une 60aine) et sur 98SE (2 ou 3)
Pour ce qui est des scripts VBS je n'y avait pas du tout penser j'ai juste
créer des batchs pour interdire l'accès (net user nom_d'utilisateur
/times: ) et un autre pour redémarrer l'ordinateur (shutdown.exe -l -t
900 -m ip_machine -c "la machine va s'éteindre" ) Mais ce n'était pas
vraiment le but recherché.
Je trouve ton idée exactement apropriée a mes besoin par contre je ne m'y
connais pas du tout en script VBS pourait tu me donner un exemple qui se
connecterait a une session puis pour la fermer stp.
Merci pour ton aide car j'ai chercher longement sur google des softs mais
impossible.