Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 31/10/2006, à 14:12

bris

[.ShellClassInfo] quand le client se connecte au domaine samba

Bonjour à tous,
Je viens d'installer pour la première fois un Active directory sous samba avec des utilisateurs aux profiles errants... Tout fonctionne bien, je peux me connecter à partir de n'importe quelle machine, je retrouve mon desktop, etc...

Il y a juste un problème qui apparait sur toutes les machines, exeptées celle sur laquelle j'ai fait ma première connection avec l'utilisateur : au démarrage, j'ai le bloc-note de windowsqui apparait avec l'écriture :

[.ShellClassInfo]
LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,21787

Après un peu de recherche sur internet, j'ai pu constaté que cela venait d'un fichier desktop.ini qui se trouve dans le dossier "profile" de l'utilisateur sur le server....
Si je l'élimine, il revient... j'ai essayé d'inclure les lignes suivantes dans smb.conf mais rien n'y fait :

map system = yes
map hidden = yes

A part çà, tout fonctionne parfaitement mais j'aimerai bien solutionner le truc...
Comment dois-je faire? qui peut m'aider?

Merci d'avance pour votre aide ;-)
A+


un vaut mieu que deux ! CQFD

Hors ligne

#2 Le 31/10/2006, à 14:25

luc Milland

Re : [.ShellClassInfo] quand le client se connecte au domaine samba

Salut,
j'ai eu ce truc aussi. Va savoir pourquoi, mais au premier login, une copie de desktop.ini  va se loger dans "programmes">"Démarrage" (ou un truc du genre, mais tu dois voir de quoi je parle, non ?).
Ce qui fait que OuinOuin le lance à l'ouverture de session - dans un bloc-note, puisque c'est du texte.

Le remède : supprimer le fichier du dossier "démarrage" (et non pas dans le profile où il est recréé et a son utilité).

Voilà,
espérant t'aider,
Luc


http://www.praksys.org

Hors ligne

#3 Le 31/10/2006, à 14:51

bris

Re : [.ShellClassInfo] quand le client se connecte au domaine samba

effectivement, c'est bien çà :-)
C'est assez problématique quand meme... il suffit d'avoir une 10ène d'ordinateurs et une 20ène d'utilisateurs (une salle de cour par exemple) pour ne plus rien comprendre...
La solution pourrait etre sur chaque machine (mais c'est de toute façon lours!!!) d'executer un script DOS qui élimine ce fichier desktop.ini à chaque démarrage...

Non smile ou alors directement sur le serveur Samba? un script bash déguisé en DOS qui éliminerait pour tous les utilisateurs ce satané fichier desktop.ini qui se trouve dans démarrage...

Qui peut me donner un coup de main  : l'ajout d'une ligne dans smb.conf et l'écriture du script automatique?


un vaut mieu que deux ! CQFD

Hors ligne

#4 Le 31/10/2006, à 15:21

luc Milland

Re : [.ShellClassInfo] quand le client se connecte au domaine samba

Pour ça il y a un truc : le netlogon. Dans smb.conf, ça donne un truc du genre :

# Un-comment the following and create the netlogon directory for Domain Logons
# (you need to configure Samba to act as a domain controller too.)
;[netlogon]
;   comment = Network Logon Service
;   path = /home/samba/netlogon
;   guest ok = yes
;   writable = no
;   share modes = no

Là dedans (/home/samba/netlogon) tu mets un ou des .bat qui seront lancés au démarrage, selon ce que tu spécifies dans le champ 'SambaLogonScript' d'un user dans ton ldap (dans le cas d'un domaine avec openldap et les smbldaptools qui vont bien, sinon c'est une option générale dans smb.conf).

Perso, j'ai mis "username.bat" comme valeur, j'ai fait un script commun.bat dans le répertoire en question et j'ai fait une vieille boucle for des familles pour créer un lien symbolique pour chaque username.bat vers commun.bat . De cette façon, je pourrais personnaliser les script sans me prendre le choux si besoin est.

Si tu le fais comme ça, ton .bat m'intéresse wink


http://www.praksys.org

Hors ligne

#5 Le 31/10/2006, à 16:08

luc Milland

Re : [.ShellClassInfo] quand le client se connecte au domaine samba

Au fait, y'a peut-être mieux : comme tu es en profils itinérant, les profils sont stockés sur ton serveur samba, non ?
Si c'est bien le cas, alors oui tu peux échapper à l'horrible DOS tongue
La directive preexec dans smb.conf te permet de balancer une commande avec les substitutions habituels de smb.conf  (genre %u pour le user).
preexec se place au niveau d'un partage, et à sa façon, [netlogon] en est un, auquel chaque user accède à chaque login...
Donc, un truc dans cd goût là devrait fonctionner :

[netlogon]
path=/ton/chemin
...
preexec= rm /home/%u/.winprofile/chemin/vers/démarrage/mauvais-fichier  >/dev/null 2>&1 || true

ça se test, non ?


http://www.praksys.org

Hors ligne

#6 Le 31/10/2006, à 20:46

bris

Re : [.ShellClassInfo] quand le client se connecte au domaine samba

ce truc du preexec semble pas mal, mais je ne sais pas trop quelle commande mettre après ... :-(


un vaut mieu que deux ! CQFD

Hors ligne

#7 Le 02/11/2006, à 11:15

tijak

Re : [.ShellClassInfo] quand le client se connecte au domaine samba

j'ai le meme problème et je suis comme bris, je n'arrive pas à cerner le juste script... Je me demande aussi si c'est un problème que tout le monde rencontre ou pas??

Hors ligne

#8 Le 02/11/2006, à 12:22

luc Milland

Re : [.ShellClassInfo] quand le client se connecte au domaine samba

C'est quoi qui vous chiffonne exactement ?
L'idée, c'est :
1) localiser le fichier à effacer, à savoir "desktop.ini" dans le répertoire "démarrage" (je n'ai pas de windows ouvert sous la main, mais ça doit être un truc du genre : C:\documents and settings\user\startup)
2) le virer automatiquement au démarrage, si il est présent.
Pour, ça, deux possibilités :
- si vous utilisez des profiles itinérants, "C:\documents and settings\user" se trouve en fait sur le serveur. On peut donc travailler dessus avec une ligne de commande ou un script bash qu'on appelle via la directive preexec dans le share [netlogon].
- sinon, utiliser un "netlogon script" en dos qui sera lancé sur la machine au login.

Pour le bash, ma ligne d'exemple est un peu brutale :

m /home/%u/.winprofile/chemin/vers/démarrage/mauvais-fichier

vire le fichier à chaque démarrage

>/dev/null 2>&1

redirige tous les messages éventuellement généré vers "null", le néant, quoi (mais je ne sais pas si c'est utile). Et enfin :

|| true

permet de dire : "si ça n'a pas marché, continue, c'est pas grave" (si le fichier n'existe pas par exemple).

Sinon, vous pouvez faire un script plus propre :

#!/bin/bash
USER=$1
TARGET=/cemin/vers/le/profil/de/$USER/pui/vers/le/fichier/à/virer

if [ -e $TARGET ]; then
     rm $TARGET
fi
exit 0

comme on récupère le nom du user via un argument passé au script ($1), il faut le lancer comme ça dans smb.conf :

[netlogon]
preexec = /chemin/vers/mon/script %u

Voilà, c'est plus clair ?


http://www.praksys.org

Hors ligne

#9 Le 03/11/2006, à 09:00

chapi

Re : [.ShellClassInfo] quand le client se connecte au domaine samba

Bonjour,

je ne pense pas que ça empêche le fichier de se lancer au démarrage mais ça peut être quand même utile :

Place cette ligne (en l'adaptant si besoin) dans ton smb.conf, dans la section de partage des profiles par exemple. Elle permet de cacher certains fichiers, comme les desktop.ini qui ont du apparaitre un peut partout dans ton menun Démarrer.

hide files = /Desktop.ini/desktop.ini/RECYCLER/Thumbs.db/

(le smb.conf complet trouvé ici : http://www.mail-archive.com/samba@lists … 78972.html)

Hors ligne

#10 Le 06/11/2006, à 13:35

bris

Re : [.ShellClassInfo] quand le client se connecte au domaine samba

Bon, chez moi, j'ai essayé la ligne suivante dans [netlogon] :

preexec = rm /var/samba/profiles/%u/Menu Avvio/Programmi/Esecuzione automatica/desktop.ini  >/dev/null 2>&1 || true

Mais rien n'y fait, j'ai toujours le fichier desktop.ini qui s'affiche au démarrage... c'est chiant... sad


un vaut mieu que deux ! CQFD

Hors ligne

#11 Le 06/11/2006, à 13:51

luc Milland

Re : [.ShellClassInfo] quand le client se connecte au domaine samba

essaye de virer ">/dev/null 2>&1 || true" histoire d'avoir des éventuels messages d'erreur dans les log.
Et aussi, met des guillemets à ton chemin : il contient des espaces et je sais pas si ça passe bien, là.

Sinon teste que preexec fonctionne bien dans [netlogon], en faisant un truc simple, genre touch /var/samba/test.

c'est peut-être chiant, mais faut chercher un peu aussi...t'as essayé les scripts dos, sinon ?


http://www.praksys.org

Hors ligne

#12 Le 06/11/2006, à 16:17

bris

Re : [.ShellClassInfo] quand le client se connecte au domaine samba

J'ai essayé, avec  guillement, sans guillement, en changeant la syntaxe mais rien n'y fait...
Le script dos devrait etre :

erase C:\Documents and Settings\joe\Menu Avvio\Programmi\Esecuzione automatica\desktop.ini

Mais je ne sais pas ou le mettre : ou mieu, je ne sais comment l'inclure à [netlogon] de manière à ce qu'il soit executer à chaque démarrage....

J'y suis presque ;-)


un vaut mieu que deux ! CQFD

Hors ligne

#13 Le 06/11/2006, à 16:20

luc Milland

Re : [.ShellClassInfo] quand le client se connecte au domaine samba

Mais je ne sais pas ou le mettre

Je te l'explique dans le post #4, juste un peu plus haut wink


http://www.praksys.org

Hors ligne

#14 Le 08/11/2006, à 14:35

bris

Re : [.ShellClassInfo] quand le client se connecte au domaine samba

salut Luc, chapi et les autres
J'ai progessé dans les script mais je n'arrive pas encore à faire ce que je veux...
Je réussi à lancer un script dos sur la machine client pour synchroniser l'horloge et monter le dossier personnel... mais si je veux éliminer ce satané desktop.ini qui se trouve que les execution automatiques (start/programs/startup), il faut inclure quelque chose comme çà dans le script :

del C:\Documents and Settings\LE_USER\Menu Avvio\Programmi\Esecuzione automatica\desktop.ini

Or comment fait-on pour récupérer la variable LE_USER et réinclure là dans lescript dos? c'est bien là mon problème...

Sinon j'ai essayé à peu près toutes les syntaxes pour preexec mais rien ne fonctionne (et pas de message d'erreur dans le log...) je commence à désespérer big_smile


un vaut mieu que deux ! CQFD

Hors ligne

#15 Le 08/11/2006, à 16:32

bris

Re : [.ShellClassInfo] quand le client se connecte au domaine samba

Ouf! c'est résolu, je croyais que j'allais devenir fou, j'ai donc ajouter la ligne :

preexec = rm /var/samba/profiles/%u/Menu\ Avvio/Programmi/Esecuzione\ automatica/desktop.ini

... dans [profiles]

mais si s'ajoute /dev/false, j'ai "permission denied" dans mon log... c'est bizarre, je crée pourtant tous mes users avec "--shell /dev/false"... comment puis-je faire, çà risque de remplir mes log?!?

D'autre part et dites moi si je me trompe mais j'ai l'impression que le preexec se faire au moment de la déconnection (en regardant les fichiers de log)... ou alors c'est seulement l'écriture dans le fichier de log qui se fait à la déconnection...?


un vaut mieu que deux ! CQFD

Hors ligne

#16 Le 15/11/2006, à 14:18

bris

Re : [.ShellClassInfo] quand le client se connecte au domaine samba

hmmm. en fait çà rempli bien mes log à chaque connection, comment puis-je corriger le tir?


un vaut mieu que deux ! CQFD

Hors ligne

#17 Le 15/11/2006, à 15:30

luc Milland

Re : [.ShellClassInfo] quand le client se connecte au domaine samba

Salut,
désolé, j'ai pas encore eu le loisir de tester tout ça.
Quand tu dis /dev/false : c'est pas /bin/false plutôt ?


http://www.praksys.org

Hors ligne

#18 Le 17/11/2006, à 11:14

bris

Re : [.ShellClassInfo] quand le client se connecte au domaine samba

Salut luc,
Et bien quand je créé mes utilisateur linux, je les créé avec l'option : "--shell /dev/false ", c'est une erreur? je devrais les créer avec --shell /bin/false ???

sinon, pour la redirection, je vais essayé >bin/false pour voir si çà change quelque chose...


un vaut mieu que deux ! CQFD

Hors ligne

#19 Le 04/02/2007, à 04:06

mcbiatsi

Re : [.ShellClassInfo] quand le client se connecte au domaine samba

Bonsoir a tous !!

Ben moi aussi j'avais le meme probleme, mais je l'ai resolu juste en supprimant le fichier desktop.ini dans le dossier demarrage. Mais j'ai de petits soucis, le premier est que je ne parvient pas a avoir un profil itinerant. car sur chaque machines clientes avec lesquelles je me suis logue, j'ai un bureau different. Et deuxièment, mon fichier login.bat et regmodif.reg ne marche pas (poussin c'est le nom de mon serveur), en voici le contenu

(login.bat)
echo off
NET TIME \\POUSSIN /SET /YES
regedit /s \\POUSSIN\netlogon\regmodif.reg
NET USE Z: \\POUSSIN\home\%USERNAME%
DEL %SystemRoot%\CONFIG.POL
DELTREE /Y %SYSTEMDRIVE%\Documents and Settings\%USERNAME%\TEMP\*.* /Y

et
(regmodif.reg)
Windows Registry Editor Version 5.00

;redirectionne bureau du poste client sur le serveur
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders]
"Personal"="\\POUSSIN\home\"

;pour supprimer le profil du dernier utilisateur connecté sur la machine cliente
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\System]
"DeleteRoamingCache"=dword:00000001

Merci d'avance à tous de votre aide.
Stp bris, ca te dirait de m'envoyer si possible ou m'expliquer comment tu as fais pour monter ton domain qui marche aussi bien ? de l'aide sur smb.conf et les droits et organistations des repertoires, encore merci


le presque n'est pas satisfaisant

Hors ligne

#20 Le 20/10/2010, à 14:32

tophe59760

Re : [.ShellClassInfo] quand le client se connecte au domaine samba

Le post date mais j'ai été confronté au problème ce matin et la solution se trouve dans l'encodage des caractères apparemment.

Windows encore en ISO-8859 et LInux en UTF-8 si bien que lorsque samba rapatrie le profil itinérant de l'utilisateur sur le serveur, je me suis rendu compte que le dossier Menu démarrer ainsi que le sous-dossier démarrage était mal encodé et le e accent aigu apparaissant avec des symboles.

J'ai alors ajouté/modifié dans le smb.conf dans la section global les lignes suivantes :

dos charset = CP850
unix charset = UTF-8
display charset = UTF-8

j'ai re-démarré le démon samba puis je me suis connecté avec un utilisateur fraichement crée et lorsque je me loggue sur un poste client XP je n'obtiens plus la fenêtre du bloc note desktop.ini

De même, dans le profil utilisateur sur mon serveur linux, le dossier menu démarrer et démarrage apparaissent correctement.

A vous de tester et dites moi si çà marche chez vous.

Hors ligne