crunchattak59
Messages postés5Date d'inscriptionvendredi 9 février 2007StatutMembreDernière intervention21 mars 2007
-
9 févr. 2007 à 15:40
phil_iiep
Messages postés1Date d'inscriptionsamedi 23 juillet 2005StatutMembreDernière intervention13 décembre 2008
-
13 déc. 2008 à 13:56
Bonjour à toute et à tous,
Voila mon probleme:
J'ai vu sur internet que l'on pouvait autoconfigurer outlook avec le fichier richprofile...
Ils disent sur leur site de faire un script... Etant plus dans le réseau je dois vous avouez que je ne connais pas une seul commande en vbs...
Donc, après quelques recherches sur internet, je trouve cela:
option explicit
on error resume next
' Declare the variables
dim wshNet, wshShell, userName,UserObj, DomainName,ProfileOutlook,ObjFs,testcle,ServeurExchange
dim strcomputer,Arrvalues,CleReg,ObjRegistry
' Create a WshNet object
set wshNet = createObject("wscript.Network")
' Create a wshShell object
set wshShell = createObject("wscript.shell")
' Create an Object File System object
SET objFS=CreateObject ("Scripting.FileSystemObject")
Const HKEY_CURRENT_USER = &H80000001
strComputer = "."
Set objRegistry = GetObject("winmgmts:\" & strComputer & "\root\default:StdRegProv")
UserName=WshNet.username
ServeurExchange="srv_exchange"
' Config Outlook
If objfs.fileexists(WshShell.ExpandEnvironmentStrings("%systemroot%")+"\fonts\outlook.ttf") Then
TestCle=WshShell.RegRead("HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles"+username+"\0a0d020000000000c000000000000046\000b0340")
If Err.number<>0 Then
Err.clear
ProfileOutlook=WshShell.ExpandEnvironmentStrings("%logonserver%")+"\NETLOGON\richProfile "+ServeurExchange+" "+ username+" "+ username
' msgbox(ProfileOutlook)
wshShell.run ProfileOutlook,,true
'Affectation du cache local
arrValues = Array(132,5,0,0)
CleReg="Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles"+username+"\13dbb0c8aa05101a9bb000aa002fc45a"
objRegistry.SetBinaryValue HKEY_CURRENT_USER, CleReg, "00036601", arrValues
Else
wscript.echo "Le profile outlook existe!"
End If
else
wscript.echo "Pas de outlook"
End IF
Voila le seul probleme c'est qu'il ne marche pas...
Et je ne sais pas pourquoi... On m'a dit que c'était un problème avec "+" qu'il fallait remplacé par les "&" et mettre des espaces...
Mais j'ai essayé plusieurs choses mais ca ne marche pas...
Pour résumer voila ce que je souhaiterais:
Si il existe le fichier extend.dat dans C:\Documents and Settings\%username%\Local Settings\Application Data\Microsoft\Outlook\
Alors arrete le vbs sans message...
Si il n'existe pas: lancer la commande %logonserver%\netlogon\richprofile.exe srv_echange %username% %username%
Il faut savoir que pour la commande DOS pour richprofile c'est : richprofile.exe srv_exchange %username% %username%...
Est ce qu'il y aurait une âme charitable pour me faire ce petit fichier vbs?
A si vous pourriez faire quelque chose pour moi, car sans exagéré cela fais plus de dix jour que je planche dessus et je sèche...
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 10 févr. 2007 à 13:01
Je ne saurais t'aider pour le Script, mais une question qui me vient à l'esprit...
Est-ce que Server Exchange est installé sur ta machine et fonctionnel ?
Et as-tu une idée où ça "plante" ?
Gojir4
Messages postés7Date d'inscriptionmercredi 17 mai 2006StatutMembreDernière intervention 7 juillet 2009 3 nov. 2008 à 08:19
Hello,
Voici une solution possible avec RichProfile. Je l'utilise pour configurer les comptes dans mon entreprise.
Par contre l'utilisateur doit encore choisir son nom dans une liste avant de lancer Outlook car RichProfile utilise le username et non pas le nom complet. (même en lui donnant le nom complet)
Voici mon code, Il contient3 fonctions.
GetFullUserName qui renvoi le nom complet (ex: "Pignon, Jean-Marc") de l'utilisateur loggué en cours
OutlookProfilIsSet qui vérifie si un profil outlook existe déjà
SetOutlook qui Lance Richprofile au cas ou il n'y a pas encore de profil installé (à toi de modifier selon tes besoins)
Il n'y a pas de gestion d'erreur je ne maitrise encore pas bien cela.
'Récupération du nom complet de l'utilisateur
Function GetFullUserName
Dim WshShell, WshEnv, objFSO, WshNetwork, DomainString, UserString, strUser
Dim objSysInfo, objDomain, objCurrentUser, UserObj, objUser
Const OverwriteExisting = True
'Configures Variables
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set WshShell = WScript.CreateObject("WScript.Shell")
Set WshEnv = WshShell.Environment("Process")
Set WshNetwork = CreateObject("WScript.Network")
Set objSysInfo = CreateObject("ADSystemInfo")
Set objDomain = getObject("LDAP://rootDse")
DomainString = objDomain.Get("dnsHostName")
'Grab the user name
UserString = WshNetwork.UserName
Set objCurrentUser = GetObject("LDAP://" & objSysInfo.UserName)
Set UserObj = GetObject("WinNT://" & DomainString & "/" & UserString)
strUser = objSysInfo.UserName
Set objUser = GetObject("LDAP://" & strUser)
'renvoi du full username au format "Nom, Prénom" (utiliser pour la configuration Outlook
GetFullUserName = objUser.FullName
End Function
'-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
'Test existance profil Outlook
'Renvoi 0 si le profil est déjà existant, 1 si il n'y a pas de profil et 2 si Outlook n'est pas installé. En cas d'existance du profil, ProfileName en contient le nom.
Function OutlookProfilIsSet(byRef ProfileName)
on error resume next
' Declare the variables
Dim wshShell, ObjFs
' Create an Object File System object
Set objFS = CreateObject ("Scripting.FileSystemObject")
' Create a wshShell object
Set wshShell = createObject("wscript.shell")
'test si Outlook est installé.
If objFS.FileExists(WshShell.ExpandEnvironmentStrings("%systemroot%")+"\fonts\outlook.ttf") Then
'Lecture du nome du profil existant dans la base de registre
ProfileName = wshShell.RegRead(strRegOutlookProfilePath)
If Err.number <> 0 Then
Err.Clear
OutlookProfilIsSet = OutlookNoProfil
ProfileName = ""
Else
OutlookProfilIsSet = OutlookProfilExist
End If
Else
OutlookProfilIsSet = OutlookNotInstalled
ProfileName = ""
End IF
'Libération de la mémoire
Set wshShell = nothing
Set objFS = nothing
End Function
'**************************************************************************************************
' CONFIGURATION OUTLOOK
'/!\ Requiert RichProfile.exe dans le même dossier
'**************************************************************************************************
Function SetOutlook
' Declare the variables
dim wshNet, wshShell, FullUserName, ProfileOutlook, ProfileName
' Create a wshShell object
set wshShell = createObject("wscript.shell")
FullUserName = GetFullUserName
SetOutlook = " Configuration du profil Outlook pour """ & FullUserName &""" réussie"
If OutlookProfilIsSet(ProfileName) = OutlookNoProfil Then
'Lancement de RichProfile.exe
ProfileOutlook = "richProfile " & strServeurExchange & " " & FullUserName & " Outlook N D"
wshShell.run ProfileOutlook,,true
ElseIf OutlookProfilIsSet(ProfileName) = OutlookProfilExist then
SetOutlook = " Un profil outlook existe déjà!"
ElseIf OutlookProfilIsSet(ProfileName) = OutlookNotInstalled then
SetOutlook = " Outlook n'est pas installé"
End IF
'Libération de la mémoire
Set wshNet = nothing
Set wshShell = nothing
phil_iiep
Messages postés1Date d'inscriptionsamedi 23 juillet 2005StatutMembreDernière intervention13 décembre 2008 13 déc. 2008 à 13:56
c'est me
j'ai essayé votre script, cela ne semble pas fonctionner ne connaissant rien a VBS pourriez vous m'indiquer comment debugue mon probleme?
je travaille avec Exchange 2003 et outlook2003
ca fonctionne avec uniquement mais il n'ya pas de controle sur le profile!!
Dim WshShell
Dim domcont
Dim exchsvr
Dim mbox
Dim exepath
Dim outlkset
'**************************************
'Environment Variables to Configure
'**************************************
exchsvr = "london" 'Exchange Server
domcont = "london" 'Domain Controller with proprofile.exe in the netlogon share
Set WshShell = WScript.CreateObject("WScript.Shell")