OVH Cloud OVH Cloud

chemin profile, nom du profile sous .... NT !

3 réponses
Avatar
Denis
Bonsoir à tous !

Pour diverses raisons, il me faudrait récupérer le chemin du profile
itinérant pour un utilisateur NT, le nom de ce profile, et enfin pouvoir le
renommer (le profile ...) ...

J'ai trouvé plein de script VB pour AD, mais j'avoue que pour NT, les
résultats sont plus maigres .... donc, si vous auriez une quelconque
solution (Batch, VB ....) je suis plus que preneur !

Merci d'avance !

Denis.

3 réponses

Avatar
Stéphane [MS]
Bonjour,

Il me semble que sous Windows NT 4, il existait une variable d'environnement
comme "profilepath".

Dans ce cas, il est possible de la récupérer avec :
======================== strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!" & strComputer & "rootcimv2")

Set colItems = objWMIService.ExecQuery("Select * from Win32_Environment")

For Each objItem in colItems
Wscript.Echo "Chemin du profil : " & objItem.ProfilePath
Next
============================
A tester...

Cdlt
Stéphane

"Denis" a écrit dans le message de news:

Bonsoir à tous !

Pour diverses raisons, il me faudrait récupérer le chemin du profile
itinérant pour un utilisateur NT, le nom de ce profile, et enfin pouvoir
le renommer (le profile ...) ...

J'ai trouvé plein de script VB pour AD, mais j'avoue que pour NT, les
résultats sont plus maigres .... donc, si vous auriez une quelconque
solution (Batch, VB ....) je suis plus que preneur !

Merci d'avance !

Denis.



Avatar
Lord Mathius
Par hazard tu veut savoir quoi, le chemin de profil de l'utilisateur courant
ou le chemin de profil dans le domain NT4 ?

voici mon script qui lit dans un fichier la liste des compte utilisateur et
qui va te generer un log avec tous les profils utilisateur
je l'ai modifier a la va vite, il est possible qu'il reste 1 ou 2 erreur de
script dedans car je peut plus le tester, j'ai plus de domaine NT4 dispo en
ce moment

Oublie pas de changer le nom du domain et de remplir le fichier
"liste_usr.txt" qui doit etre dans le meme repertoire que le script.
voila
--------


'*************************************************************
'* Declaration des variable et Constante de fonctionement
'*
'*************************************************************
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Const TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0


'*************************************************************
'* Definition des Valeur par default
'*
'*************************************************************
Domain = "NOMDUDOMAIN" ' Nom Du Domaine de travail

Domain = "//" & Domain


'*************************************************************
'* Fonction de Cargement du fichier de list de login
'* Input : Nothing
'* Output : Tableau a 1 dimension de liste des utilisateur de taille varaible
'*************************************************************
Function GetTextFileLines()
Dim FileText ,items , i
' read the file's contents, exit if any error
FileText = ts_usr.ReadAll
' this is necessary, because Split() only accepts 1-char delimiters
FileText = Replace(FileText, vbCrLf, vbCr)
' split the file in individual lines of text
items = Split(FileText, vbCr)
' drop empty lines, if requested
' Defini les lignes Vides dans le tableau est les remplaces par un vbcrlf
'
For i = 0 To UBound(items)
If Len(items(i)) = 0 Then items(i) = vbCrLf
Next
' Utilise la fonction Filter() pour suprimer les lignes vides via un filtre
sur VBCRLF
items = Filter(items, vbCrLf, False)
GetTextFileLines = items
End Function

'**************************************************************
'* Fonction qui recupere le path d'un utilisateur et qui le set
'* Avec les informations renvoyer par Check_Path
'* Input : sUserName = le Login Utilisateur
'* Output : Dans Fichier defini par : ts_rep_log et ts_rep
'**************************************************************
Function Detail_prof(ByVal sUsername)
Dim Ousr, sPath , sProfilepath
On Error Resume Next
Err.clear
Set Ousr= GetObject("WinNT:" & domain & "/" & sUsername)
If err.number <> 0 Then
ts_rep.writeline "ERROR: Login Incorect: " & sUsername

Else
sProfilepath=Ousr.Get("Profile")
If Len(sProfilepath) >0 Then
sPath =check_path(sProfilepath)
ts_rep.writeline sProfilepath & " " &sUsername
Else
ts_rep.writeline "ERROR : Pas de Path :" & " " &sUsername
End If
End If
End Function


'*************************************************************
'* Partie Principal du script.
'*
'*************************************************************

Set fso = CreateObject("Scripting.FileSystemObject")
if not fso.FileExists("liste_rep_nt4.txt") then fso.CreateTextFile
"liste_rep_nt4.txt" ' Create a file if not exist.

Set f_rep = fso.GetFile("liste_rep_nt4.txt")
Set f_usr = fso.GetFile("liste_usr.txt")
Set ts_usr = f_usr.OpenAsTextStream(ForReading, TristateUseDefault)
Set ts_rep = f_rep.OpenAsTextStream(ForAppending, TristateUseDefault)

ts_rep.writeline
"*************************************************************"
ts_rep.writeline Now
ts_rep.writeline
"*************************************************************"


fichier=GetTextFileLines
For Each login In fichier

Detail_prof login

Next

ts_usr.Close
ts_rep.Close

Set f_rep = Nothing
Set f_usr = Nothing
Set ts_usr = Nothing
Set ts_rep =Nothing
Set Fso = Nothing

Wscript.echo "Script Fini"
Avatar
Denis
Merci pour les exemples, ça ne pouvais pas mieux tomber ;-)

Denis.

"Lord Mathius" a écrit dans le
message de news:
Par hazard tu veut savoir quoi, le chemin de profil de l'utilisateur
courant
ou le chemin de profil dans le domain NT4 ?

voici mon script qui lit dans un fichier la liste des compte utilisateur
et
qui va te generer un log avec tous les profils utilisateur
je l'ai modifier a la va vite, il est possible qu'il reste 1 ou 2 erreur
de
script dedans car je peut plus le tester, j'ai plus de domaine NT4 dispo
en
ce moment

Oublie pas de changer le nom du domain et de remplir le fichier
"liste_usr.txt" qui doit etre dans le meme repertoire que le script.
voila
--------


'*************************************************************
'* Declaration des variable et Constante de fonctionement
'*
'*************************************************************
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Const TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0


'*************************************************************
'* Definition des Valeur par default
'*
'*************************************************************
Domain = "NOMDUDOMAIN" ' Nom Du Domaine de travail

Domain = "//" & Domain


'*************************************************************
'* Fonction de Cargement du fichier de list de login
'* Input : Nothing
'* Output : Tableau a 1 dimension de liste des utilisateur de taille
varaible
'*************************************************************
Function GetTextFileLines()
Dim FileText ,items , i
' read the file's contents, exit if any error
FileText = ts_usr.ReadAll
' this is necessary, because Split() only accepts 1-char delimiters
FileText = Replace(FileText, vbCrLf, vbCr)
' split the file in individual lines of text
items = Split(FileText, vbCr)
' drop empty lines, if requested
' Defini les lignes Vides dans le tableau est les remplaces par un vbcrlf
'
For i = 0 To UBound(items)
If Len(items(i)) = 0 Then items(i) = vbCrLf
Next
' Utilise la fonction Filter() pour suprimer les lignes vides via un
filtre
sur VBCRLF
items = Filter(items, vbCrLf, False)
GetTextFileLines = items
End Function

'**************************************************************
'* Fonction qui recupere le path d'un utilisateur et qui le set
'* Avec les informations renvoyer par Check_Path
'* Input : sUserName = le Login Utilisateur
'* Output : Dans Fichier defini par : ts_rep_log et ts_rep
'**************************************************************
Function Detail_prof(ByVal sUsername)
Dim Ousr, sPath , sProfilepath
On Error Resume Next
Err.clear
Set Ousr= GetObject("WinNT:" & domain & "/" & sUsername)
If err.number <> 0 Then
ts_rep.writeline "ERROR: Login Incorect: " & sUsername

Else
sProfilepath=Ousr.Get("Profile")
If Len(sProfilepath) >0 Then
sPath =check_path(sProfilepath)
ts_rep.writeline sProfilepath & " " &sUsername
Else
ts_rep.writeline "ERROR : Pas de Path :" & " " &sUsername
End If
End If
End Function


'*************************************************************
'* Partie Principal du script.
'*
'*************************************************************

Set fso = CreateObject("Scripting.FileSystemObject")
if not fso.FileExists("liste_rep_nt4.txt") then fso.CreateTextFile
"liste_rep_nt4.txt" ' Create a file if not exist.

Set f_rep = fso.GetFile("liste_rep_nt4.txt")
Set f_usr = fso.GetFile("liste_usr.txt")
Set ts_usr = f_usr.OpenAsTextStream(ForReading, TristateUseDefault)
Set ts_rep = f_rep.OpenAsTextStream(ForAppending, TristateUseDefault)

ts_rep.writeline
"*************************************************************"
ts_rep.writeline Now
ts_rep.writeline
"*************************************************************"


fichier=GetTextFileLines
For Each login In fichier

Detail_prof login

Next

ts_usr.Close
ts_rep.Close

Set f_rep = Nothing
Set f_usr = Nothing
Set ts_usr = Nothing
Set ts_rep =Nothing
Set Fso = Nothing

Wscript.echo "Script Fini"