Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Sur Outlook 2000, fichier .pst n'existant plus mais toujours affiché

3 réponses
Avatar
Fadi
Bonjour,
Tout d'abord merci pour votre FAQ très utile et pertinente.
J'utilise Outlook 2000 (sur Windows XP). Sous Outlook, j'avais ouvert un
fichier .pst avec mot de passe. Ce fichier s'est apparemment corrompu. Quand
j'essaie de le fermer sous Outlook, je reçois le message suivant:
"Impossible d'exécuter l'opération. Impossible de trouver un objet."
J'ai essayé de détruire le fichier sous Windows, Outlook fermé, mais à la
relance d'Outlook je reçois un message de fichier .pst inexistant SANS
possibilité de le déconnecter.
La question est: comment retirer ce fichier .pst de ma configuration (de mon
affichage de dossiers) Outlook?
Mille mercis. Bonne journée.

3 réponses

Avatar
JièL
Bonjoir(c) Fadi

Bonjour,
Tout d'abord merci pour votre FAQ très utile et pertinente.
J'utilise Outlook 2000 (sur Windows XP)

La question est: comment retirer ce fichier .pst de ma configuration (de mon
affichage de dossiers) Outlook?


Essayez de le réparer déjà :
http://faq.outlook.free.fr/?r_problemes.htm#R0713 solution 1
sinon il reste la solution 3.

Mille mercis. Bonne journée.


--
JièL / Jean-Louis GOUBERT
Là bas mieux qu'en face ;-) http://forums.offices.free.fr/
La FAQ Outlook est là : http://faq.outlook.free.fr/
Les stats CDO : http://faq.outlook.free.fr/cdo/

Avatar
Oliv'
*JièL que je salut a écrit *:
Bonjoir(c) Fadi

Bonjour,
Tout d'abord merci pour votre FAQ très utile et pertinente.
J'utilise Outlook 2000 (sur Windows XP)

La question est: comment retirer ce fichier .pst de ma configuration
(de mon affichage de dossiers) Outlook?


Essayez de le réparer déjà :
http://faq.outlook.free.fr/?r_problemes.htm#R0713 solution 1
sinon il reste la solution 3.


Je viens de corriger le même problème, la solution 1 n'est pas efficace.
la 3 doit marcher mais il faut tout reconfigurer.

La solution c'est de supprimer une clef du registre !! c'est un peu
compliqué car c'est en hexadécimal.

utiliser la macro ci-dessous (dans excel par exemple) qui va rechercher les
différents pst

et les inscrire dans un fichier (c:nomuser-pstpath.csv) (2 lignes par
fichier )

Après avoir lancé "pst_where" Ouvrir le fichier créé

Trouver le pst qui pose problème.

Dans le panneau de config / courrier / afficher les profils
copier le profil en question en l'appelant "sauvegarde"

fermer OUTLOOK.

Lancer REGEDIT et se rendre à l'adresse indiquée en bout de ligne
HKCUSoftwareMicrosoftWindows NTCurrentVersionWindows Messaging
SubsystemProfilesold_Outlook825f106a3f42234eaccb614163fc539a01f6700

Supprimer la clef avant le dernier
soit ici 825f106a3f42234eaccb614163fc539a

Réouvrir outlook ca doit être bon.

débutant s'abstenir !!
--
--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Have a nice day
Oliv'
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

la macro doit également se trouver là pendant 15 jours
http://cjoint.com/?juo323AUfE


Attribute VB_Name = "where_pst"
'Option Explicit

'====================================================================================== 'This vbscript is used to read all the outlook profiles for that user from
the registry
'to check for all types of PSTs (Archive, Personal Folders). It writes to
'a CSV file the path of the PST, the computer name its on, the username of
the
'person logged on and the size of the PST. It then overwrites the path to
the
'registry depending on the path required. Specially usefull when doing a
migration.
'I am sure there is a much better way to write this code because there is a
lot
'of repetition and i have no more time to do this so i will let you guys do
that ;)
'It should work for outlook versions from 2000 and 2003.
'
'By: Carlos Bueno modif by oliv'
'=======================================================================================
Const HKEY_CURRENT_USER = &H80000001
Const BASE_KEY = "SoftwareMicrosoftWindows NTCurrentVersionWindows
Messaging SubsystemProfiles"
Public fso, oNetwork, ws, ws2, objFileSystem
Public strComputer, tinyKeyPath, strOutputFile, objOutputFile, strInfo,
strInfo2, BinOrStr, objreg, arrSubKeys


Sub pst_where()


'the network object used to connect to the network
Set oNetwork = CreateObject("WScript.Network")

'two objects to shell script.
Set ws = CreateObject("WScript.Shell")
Set ws2 = CreateObject("WScript.Shell")

'object used for later on getting the size of the PSTs
Set fso = CreateObject("Scripting.FileSystemObject")
strComputer = "."

'gets username of the person logged on
strInfo = oNetwork.UserName

'gets the computer name
strInfo2 = oNetwork.ComputerName

'A list of object required to write to the csv file and a variable that
'contains the name of the file (partial logged username). This is going
'to be used to write the data from the registry to the file along with
'logged on username and computer name.
strOutputFile = "c:" & strInfo & "-pstpath.csv"
Set objFileSystem = CreateObject("Scripting.fileSystemObject")
Set objOutputFile = objFileSystem.CreateTextFile(strOutputFile, True)

'object used to connect to the registry
Set objreg = GetObject("winmgmts:{impersonationLevel=impersonate}!" &
strComputer & "rootdefault:StdRegProv")

'This enumarates all the different profiles for the user
objreg.EnumKey HKEY_CURRENT_USER, BASE_KEY, arrSubKeys

'selects each profile
For Each subkey In arrSubKeys
subKeyPath = BASE_KEY & "" & subkey

'This enumerate the subkeys of each profile and exposing
'the items that contain the data
objreg.EnumKey HKEY_CURRENT_USER, subKeyPath, arrTinyKeys

'selects each subkey within the profile
For Each tinyKey In arrTinyKeys
tinyKeyPath = subKeyPath & "" & tinyKey

'resets the string to empty. Includes flags
PSTPath = ""
PSTPath5 = ""
PSTPath4 = ""
PSTPath6 = ""
myFlag = 0
BinOrStr = 0
'--------------------------------------------------------------------------------------
'Outlook 2000 reading and writting
'--------------------------------------------------------------------------------------
' On Error Resume Next
' PSTKeyName4 = "HKCU" & tinyKeyPath & "01e6700"
' strValue4 = ws.RegRead(PSTKeyName4)
' If Err Then
' Else
' If strValue4 <> 0 Then
' PSTPath4 = PSTPath4 & strValue4
' End If
'
'
' w = WriteToFilecsv(PSTPath4, PSTKeyName4)
'
'
' PSTKeyName5 = "HKCU" & tinyKeyPath & "1020fff"
' strValue5 = ws.RegRead(PSTKeyName5)
' For L = LBound(strValue5) To UBound(strValue5)
' If strValue5(L) <> 0 Then
' PSTPath5 = PSTPath5 & Chr(strValue5(L))
' End If
' Next
'
' PSTPath5 = Replace(PSTPath5,
"8¡»å¡»+*VÂmspst.dllNITAù¿¸ª7Ùn", "")
' w = WriteToFilecsv(PSTPath5, PSTKeyName5)
' End If
' Err.Clear
'----------------------------------------------------------------------------------------
'Outlook 2003 reading and writting
'----------------------------------------------------------------------------------------
On Error Resume Next
PSTKeyName = "HKCU" & tinyKeyPath & "01f6700"
strValue = ws.RegRead(PSTKeyName)
If Err Then
Else
For L = LBound(strValue) To UBound(strValue)
If strValue(L) <> 0 Then
PSTPath = PSTPath & Chr(strValue(L))
End If
Next

w = WriteToFilecsv(PSTPath, PSTKeyName)
PSTKeyName6 = "HKCU" & tinyKeyPath & "1020fff"
strValue6 = ws.RegRead(PSTKeyName6)

For L = LBound(strValue6) To UBound(strValue6)
If strValue6(L) <> 0 Then
PSTPath6 = PSTPath6 & Chr(strValue6(L))
End If
Next

PSTPath6 = Replace(PSTPath6,
"8¡»å¡»+*VÂmspst.dllNITAù¿¸ª7Ùn", "")
w = WriteToFilecsv(PSTPath6, PSTKeyName6)

End If
Err.Clear
Next
Next

'close and assign to nothing the object used to write to file
objOutputFile.Close
Set objFileSystem = Nothing

MsgBox "Finished outlook PST check..."
End Sub
'------------------------------------------------------------------------------------------------------
'The following two functions builds the hex number from a string and creates
'a binary variable that contains the data in bytes since the data
'needs to be in byte format in order to be entered onto the the registry.
'Also it adds back on the start of the string the hex number of the data
that
'was "replaced" earlier just after reading from the registry.
Public Function StringToByteArray(Data, NeedNullTerminator)
Dim strAll
strAll = StringToHex4(Data)
If NeedNullTerminator Then
If BinOrStr = 2 Then
'2000
strAll =
"0000000038A1BB1005E5101AA1BB08002B2A56C200006D737073742E646C6C00000000004E495441F9BFB80100AA0037D96E000000"
& strAll
strAll = strAll & "00"
End If
If BinOrStr = 1 Then
'2003
strAll =
"0000000038A1BB1005E5101AA1BB08002B2A56C200006D737073742E646C6C00000000004E495441F9BFB80100AA0037D96E00000000"
& strAll
strAll = strAll & "0000"
End If
If BinOrStr = 3 Then
'2003
strAll = strAll & "0000"
End If
End If
intLen = Len(strAll) 2
ReDim arr(intLen - 1)
For i = 1 To Len(strAll) 2
arr(i - 1) = CByte("&H" & Mid(strAll, (2 * i) - 1, 2))
Next
BinOrStr = 0
StringToByteArray = arr
End Function

'returns the value as a hex number with the 00 added
Public Function StringToHex4(Data)
Dim strAll
For i = 1 To Len(Data)
strChar = Mid(Data, i, 1)
If myFlag = 0 Then
strTemp = Right("00" & Hex(AscW(strChar)), 4)
strAll = strAll & Right(strTemp, 2) & Left(strTemp, 2)
Else
strTemp = Hex(AscW(strChar))
strAll = strAll & Right(strTemp, 2)
End If
Next
myFlag = 0
StringToHex4 = strAll
End Function

'----------------------------------------------------------------------------------------------------------------
'function to write the data onto a csv file where the path in the registry
was changed for the psts
Public Function WriteToFilecsv(myPath, myPSTKeyName)
myFsize = FormatNumber(fso.GetFile(myPath).Size, 0, , -1)
v = Split(tinyKeyPath, "")
myProfName = Trim(v(6))
objOutputFile.WriteLine (strInfo & ";" & strInfo2 & ";" & myPath & ";" &
myProfName & ";" & myFsize & ";" & myPSTKeyName)
End Function


Avatar
JièL
Bonjoir(c) Oliv'

Je viens de corriger le même problème, la solution 1 n'est pas efficace.
la 3 doit marcher mais il faut tout reconfigurer.

La solution c'est de supprimer une clef du registre !! c'est un peu
compliqué car c'est en hexadécimal.


ppppfffffuuuiiiitttt joli... mais hard c'est sur.

--
JièL / Jean-Louis GOUBERT
Là bas mieux qu'en face ;-) http://forums.offices.free.fr/
La FAQ Outlook est là : http://faq.outlook.free.fr/
Les stats CDO : http://faq.outlook.free.fr/cdo/