Supression des comptes dans outlook 2003

Le
Eric MIKOLAJCZYK
Bonjour,

Avez-vous un script pour supprimer tous les comptes enregistrés dans Outlook
2003 ?

Merci et Bonne journée.

Eric Mikolajczyk
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Gilles LAURENT [MVP]
Le #685187
"Eric MIKOLAJCZYK" dans le message de
news:
| Bonjour,

Bonjour,

| Avez-vous un script pour supprimer tous les comptes enregistrés dans
| Outlook 2003 ?

Ci-dessous le script VBScript "RemoveOutlook2KAccounts.vbs" permettant
de supprimer tous les comptes de messagerie définis dans Outlook 2K pour
le profil de l'utilisateur courant :

Note: Testé avec Outlook 2002 sur plateforme XP SP2

+++ Usage
> cscript //nologo RemoveOutlook2KAccounts.vbs

--- Coupez ici : RemoveOutlook2KAccounts.vbs ---
Option Explicit

' déclaration des variables
Dim oReg
Dim arrValues, arrBytes
Dim strValue, strId
Dim strSubKey: strSubKey = _
"SoftwareMicrosoftWindows NTCurrentVersion" & _
"Windows Messaging SubsystemProfilesOutlook" & _
"9375CFF0413111d3B88A00104B2A6676"

' définition des constantes
Const HKCU = &H80000001

' initialisation des objets
Set oReg = GetObject ("winmgmts:/root/default:stdregprov")

' lecture des valeurs
oReg.EnumValues HKCU, strSubKey, arrValues
For Each strValue In arrValues
' traitement des clsid
If Left (strValue, 1) = "{" Then
' lecture des id (Big-endian)
oReg.GetBinaryValue HKCU, strSubKey, strValue, arrBytes
If UBound (arrBytes) = 3 Then
' formatage de l'id (Little-endian)
strId = _
Left ("00",2-Len(Hex(arrBytes(3)))) & Hex(arrBytes(3)) & _
Left ("00",2-Len(Hex(arrBytes(2)))) & Hex(arrBytes(2)) & _
Left ("00",2-Len(Hex(arrBytes(1)))) & Hex(arrBytes(1)) & _
Left ("00",2-Len(Hex(arrBytes(0)))) & Hex(arrBytes(0))

' les comptes par défaut sont épargnés
If CInt ("&H" & strId) > 2 Then
' suppression des comptes
oReg.DeleteValue HKCU, strSubKey, strValue
oReg.DeleteKey HKCU, strSubKey & "" & strId
End If
End If
End If
Next
--- Coupez ici : RemoveOutlook2KAccounts.vbs ---

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
Eric MIKOLAJCZYK
Le #685186
"Gilles LAURENT [MVP]" wrote:

Ci-dessous le script VBScript "RemoveOutlook2KAccounts.vbs" permettant
de supprimer tous les comptes de messagerie définis dans Outlook 2K pour
le profil de l'utilisateur courant :

Note: Testé avec Outlook 2002 sur plateforme XP SP2

+++ Usage
> cscript //nologo RemoveOutlook2KAccounts.vbs


Merci de votre réponse si rapide, mais malheureusement cela ne fonctionne
pas pour moi...

Je suis sous une plateforme Windows XP Pro SP2 avec un Outlook 2003 SP2 lui
aussi et j'ai bien exécuté le script en administrateur.

Pour le test, j'avais un Outlook configuré avec 2 comptes en pop3, j'ai
aussi fait le test avec 1 compte en pop3 et 1 en Exchange.

Aucun des comptes n'a été supprimer, ni le compte par défaut (ce qui est
normale dans le script) ni le compte secondaire.

Je n'ai pas d'erreur dans l'exécution du script.

Avez-vous une idée ? Ou une autre solution ?

Gilles LAURENT [MVP]
Le #685185
"Eric MIKOLAJCZYK" dans le message de
news:
| Merci de votre réponse si rapide, mais malheureusement cela ne
| fonctionne pas pour moi...
|
| Je suis sous une plateforme Windows XP Pro SP2 avec un Outlook 2003
| SP2 lui aussi et j'ai bien exécuté le script en administrateur.

Le script doit être exécuté sous l'autorité de l'utilisateur pour lequel
les comptes Outlook doivent être supprimés. Les comptes Outlook sont
définis dans la ruche HKCU

| Pour le test, j'avais un Outlook configuré avec 2 comptes en pop3,
| j'ai aussi fait le test avec 1 compte en pop3 et 1 en Exchange.
|
| Aucun des comptes n'a été supprimer, ni le compte par défaut (ce qui
| est normale dans le script) ni le compte secondaire.
|
| Je n'ai pas d'erreur dans l'exécution du script.
|
| Avez-vous une idée ? Ou une autre solution ?

La clé strSubKey (voir script) est-elle identique ?

Pouvez-vous remplacer :
If UBound (arrBytes) = 3 Then
par
If UBound (arrBytes) >= 3 Then

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
Eric MIKOLAJCZYK
Le #684950
"Gilles LAURENT [MVP]" wrote:

Le script doit être exécuté sous l'autorité de l'utilisateur pour lequel
les comptes Outlook doivent être supprimés. Les comptes Outlook sont
définis dans la ruche HKCU


Oui, pardon je voulais dire avec les droits administrateurs.

La clé strSubKey (voir script) est-elle identique ?

Pouvez-vous remplacer :
If UBound (arrBytes) = 3 Then
par
If UBound (arrBytes) >= 3 Then


La clé était identique, votre modification fonction, merci beaucoup.

Par contre après test, le script aurait encore 2 problèmes :
Il ne supprimer que 1 compte celui par défaut ! Si vous avez une idée...

Enfin, c’était pour information, car pour moi cela résout mon problème, qui
était de supprimer un compte afin d'en rajouter un autre par la suite grâce à
l’Office 2003 Resource Kit.

Merci beaucoup.

Gilles LAURENT [MVP]
Le #684948
"Eric MIKOLAJCZYK" dans le message de
news:
| La clé était identique, votre modification fonction, merci beaucoup.

:-) Super !

| Par contre après test, le script aurait encore 2 problèmes :
| Il ne supprimer que 1 compte celui par défaut ! Si vous avez une
| idée...

:-( Pouvez-vous me transmettre l'export de la clé par voie de messagerie
? Bien entendu, lorsque plusieurs comptes de messagerie sont créés dans
Outlook ? Ceci facilitera l'analyse ...

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
Gilles LAURENT [MVP]
Le #684947
"Gilles LAURENT [MVP]" news:eCwhPj6%
| :-( Pouvez-vous me transmettre l'export de la clé par voie de
| messagerie ? Bien entendu, lorsque plusieurs comptes de messagerie
| sont créés dans Outlook ? Ceci facilitera l'analyse ...

J'ai reproduit le problème. Une adaptation est nécessaire.

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
Eric MIKOLAJCZYK
Le #684946
"Gilles LAURENT [MVP]" wrote:

"Gilles LAURENT [MVP]" news:eCwhPj6%
| :-( Pouvez-vous me transmettre l'export de la clé par voie de
| messagerie ? Bien entendu, lorsque plusieurs comptes de messagerie
| sont créés dans Outlook ? Ceci facilitera l'analyse ...

J'ai reproduit le problème. Une adaptation est nécessaire.


Bien. Si vous trouvez comment faire, c'est toujours intéressant d'avoir la
solution :-)

Gilles LAURENT [MVP]
Le #688096
"Eric MIKOLAJCZYK" dans le message de
news:
| Bien. Si vous trouvez comment faire, c'est toujours intéressant
| d'avoir la solution :-)

La meilleur approche consiste à utiliser le composant COM Outlook
Redemption. Ce composant expose les méthodes nécessaires à la
suppression des comptes de messagerie.

--- Coupez ici : RemoveOutlook2KAccounts.vbs ---
Set oOutlook=CreateObject ("Outlook.Application")
Set oSession=CreateObject ("Redemption.RDOSession")
oSession.MAPIObject=oOutlook.Session.MAPIObject
Set colAccounts=oSession.Accounts
For i=1 To colAccounts.Count
If TypeName (colAccounts.Item (i)) <> "RDOMAPIAccount" Then
colAccounts.Remove (i)
End If
Next

Set oSession=Nothing
Set oOutlook=Nothing
--- Coupez ici : RemoveOutlook2KAccounts.vbs ---

Outlook Redemption :
http://www.dimastr.com/redemption/

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
Publicité
Poster une réponse
Anonyme