Impossibilité d'écrire à la suite dans un fichier sous systeme Win 2000...
alexalex55
Messages postés4Date d'inscriptionvendredi 7 juillet 2006StatutMembreDernière intervention20 juillet 2006
-
20 juil. 2006 à 09:03
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 2018
-
20 juil. 2006 à 12:55
Bonjour,
J'ai un ENORME problème que je n'arrive pas à résoudre.
Voila, j'ai créé deux scripts sous VBS qui s'éxécutent au démarrage et à la fermeture d'une session Utilisateur. Le but est simple : Un dossier intitulé "session_utilisateur" est partagé. Si toto se connecte à partir du poste client001 le 17/08/2008 alors une arborescence se crééra ( d:\session_utilisateur\client001\zozo\17.8.2006\rapport.txt). Rapport.txt est en fait unfichier de trace qui se fera incrémenté de ligne de texte spécifiant une déconnexion ou connexion pour utilisateur sur un poste pour un jour donné.
Le problème est le suivant : quand je fais mes test sous windows 2003 => TOUT FONCTIONNE CORRECTEMENT !! Le problème vient de mes clients 2000. Ceux ci crééscorrectement l'arborescence de dossier puis le ficheir mais aucun incrémentation se fait lors d'une déconnexion ou d'une reconnexion.
A croire que Windows 2000 n'arrive pas à ouvrir et écrire à la suite dans un fichier texte mappé.
Quelqu'un à t-il déja rencontré ce problème et/ou pourrait solutionner ce problème qui me fait perdre les cheveux sur ma tête.
Je joins le code du script de connexion ( a savoir que le script de déconnexion est quasi similaire !!) :
On Error Resume Next
Set WSHShell = WScript.CreateObject("WScript.Network")
Set objNetwork = CreateObject("Wscript.Network")
strUser = objNetwork.UserName
Set objFSO = CreateObject("Scripting.FileSystemObject")
If objFSO.FileExists(strPath) Then
Wscript.Echo "Le fichier de log existait. Des info vont etre immédiatement inséré dedans"
dim fso
Set fso = Nothing
ecriture_a_la_suite
Else
Wscript.Echo "Le fichier de log pour aujourd'hui n'existait pas. Il vient d'être créé"
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.CreateFolder("
]
" & WSHShell.computerName & "" & WSHShell.userName &"" & Replace(Date, "/",".")
Set fso = CreateObject("Scripting.FileSystemObject")
If Not fso.FolderExists(Newdate) Then
Set f = fso.CreateFolder(NewDate)
End If
MsgBox Newdate
Set fso = Nothing
creation_et_remplissage
End If
function creation_et_remplissage ()
Dim NT
NT = Now
'CREATION DU FICHIER RAPPORT_DE_SESSION.TXT
Set fso = Nothing
Set fso = CreateObject("Scripting.FileSystemObject")
set rapor= fso.OpenTextFile("
rapor.WriteLine("-------------------------------------------------------------------------")
rapor.WriteLine("Information sur la connexion à une station blanche - Le "&Now)
rapor.WriteLine("-------------------------------------------------------------------------")
rapor.WriteBlankLines(1)
rapor.WriteLine("Heure de la connexion --> "&Now)
rapor.WriteBlankLines(1)
rapor.WriteLine("Nom de l'ordinateur: "+ WSHShell.ComputerName)
rapor.WriteBlankLines(1)
rapor.WriteLine("Nom de l'utilisateur de la station blanche: "+ WSHShell.userName)
rapor.WriteBlankLines(1)
Set colOperatingSystems = objWMIService.ExecQuery ("Select * from Win32_OperatingSystem")
For Each objOperatingSystem in colOperatingSystems
rapor.WriteLine("Nom du système d'exploitation: ")
rapor.WriteLine objOperatingSystem.Caption
Next
rapor.WriteBlankLines(1)
Set ObjTextStream = fso.OpenTextFile(Path & FicEntree, 8)
Dim NT
NT = Now
ObjTextStream.WriteLine("-------------------------------------------------------------------------")
ObjTextStream.WriteLine("Information sur la connexion à une station blanche - Le "&Now)
ObjTextStream.WriteLine("-------------------------------------------------------------------------")
ObjTextStream.WriteBlankLines(1)
ObjTextStream.WriteLine("Heure de la connexion --> "&Now)
ObjTextStream.WriteBlankLines(1)
ObjTextStream.WriteLine("Nom de la station blanche: "+ WSHShell.ComputerName)
ObjTextStream.WriteBlankLines(1)
ObjTextStream.WriteLine("Nom de l'utilisateur: "+ WSHShell.UserName)
ObjTextStream.WriteBlankLines(1)
ObjTextStream.WriteLine
ObjTextStream.Close
Set fso = Nothing
Set ObjTextStream = Nothing
next
Set fso = Nothing
end function
A voir également:
Impossibilité d'écrire à la suite dans un fichier sous systeme Win 2000...
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 201827 20 juil. 2006 à 12:55
Bonjour,
1) Essaie avec LogEvent
Set WshShell = WScript.CreateObject("WScript.Shell")
rc = runLoginScript() 'Renvoie true si la connexion a réussi.
if rc then
WshShell.
LogEvent
0, "Fin du script d'ouverture de session"
else
WshShell.
LogEvent
1, "Échec du script d'ouverture de session"
end if
Doc SCRIPT56
La méthode LogEvent renvoie une valeur booléenne (true si l'événement est consigné correctement, false dans le cas contraire). Dans Windows NT/2000, les événements sont consignés dans le journal d'événements de Windows NT. Dans Windows 9x/Me, les événements sont consignés dans WSH.log (situé dans le répertoire Windows). Il existe six types d'événements.
est une aberration => Création d'une variable + libération
3) Pour rappel, malgré l'envoi d'un mail, tu n'as pas validé tes 2 précédents topics,
alors que tu utilises, dans ce script, les réponses fournies dans