Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Registry Location of Data Files

148 views
Skip to first unread message

Oren

unread,
Jan 1, 2008, 10:03:34 AM1/1/08
to
Hello,
I help in managing a pretty large network. As we are sadly using
pretty old computers people tend to crash\change computers pretty
often. To prevent large data loss they save important mail either on
the exchange server or in a personal folder the .pst file of which
usually should sit on their private network folder. I have a small
scripting applet running on each computer capturing a snapshot of the
computer status and saving it to a database on the network. I would
like it to also add a column for the location of the outlook data
files, so that I can see which users save their .pst files locally
instead of on the network.
In order to do that I need to know how the locations of the data files
in outlook are saved. I would suspect that it involves the registry
somehow, which is not a problem, but what I have found seemed to be a
bit too user personalized. I would appreciate any help in this, even
if it would mean that the script would have to jump from one key to
another in order to find the required information...

Thanks a lot,

Oren

Shay Levi

unread,
Jan 1, 2008, 12:11:17 PM1/1/08
to
Hi Oren,


The registry location of the files are under:
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging
Subsystem\Profiles\ProfileName

But they are not readable and stored in Binary values.
This VBScript code can tell you the path to any personal storage file (PST,OST).
You should run it
when Outlook is open.

set outlook = createobject("outlook.application")
set ns = outlook.GetNamespace("MAPI")

For Each item In ns.stores
If item.FilePath <> "" Then MsgBox item.FilePath
Next

HTH


-----
Shay Levi
$cript Fanatic
http://scriptolog.blogspot.com
Hebrew weblog: http://blogs.microsoft.co.il/blogs/scriptfanatic

Diane Poremsky

unread,
Jan 1, 2008, 9:45:29 PM1/1/08
to
Storing pst on network drives is not supported and can lead to data loss.

--
Diane Poremsky [MVP - Outlook]
Author, Teach Yourself Outlook 2003 in 24 Hours
Need Help with Common Tasks? http://www.outlook-tips.net/beginner/
Outlook 2007: http://www.slipstick.com/outlook/ol2007/

Outlook Tips by email:
dailytips-sub...@lists.outlooktips.net

Outlook Tips: http://www.outlook-tips.net/
Outlook & Exchange Solutions Center: http://www.slipstick.com
Subscribe to Exchange Messaging Outlook newsletter:
EMO-NEWSLETTER-S...@PEACH.EASE.LSOFT.COM


"Oren" <Oren....@gmail.com> wrote in message
news:87cc01c5-d9a1-4bb6...@d21g2000prf.googlegroups.com...

Oren

unread,
Jan 2, 2008, 12:17:19 PM1/2/08
to
that's very weird because as far as I can see it has worked this way
wonderfully for years... the data loss can occure if you dont backup
the network once in a while or if you have to have all data including
current day always up to date if you have a power surge or whatever -
both of which can lead to data loss anyhow on any system. :-\

Oren


On Jan 2, 4:45 am, "Diane Poremsky" wrote:
> Storing pst on network drives is not supported and can lead to data loss.
>
> --
> Diane Poremsky [MVP - Outlook]
> Author, Teach Yourself Outlook 2003 in 24 Hours

> Need Help with Common Tasks?http://www.outlook-tips.net/beginner/


> Outlook 2007:http://www.slipstick.com/outlook/ol2007/
>
> Outlook Tips by email:
> dailytips-sub...@lists.outlooktips.net
>
> Outlook Tips:http://www.outlook-tips.net/
> Outlook & Exchange Solutions Center:http://www.slipstick.com
> Subscribe to Exchange Messaging Outlook newsletter:
> EMO-NEWSLETTER-S...@PEACH.EASE.LSOFT.COM
>

> "Oren" wrote in message

Oren

unread,
Jan 2, 2008, 12:18:55 PM1/2/08
to
Thanks a lot!

I'll run some tests with that (have some pretty old configurations out
there) but it seems like you've given me pretty much all I need to
start from.

Thanks again!

Oren


On Jan 1, 7:11 pm, Shay Levi wrote:
> Hi Oren,
>
> The registry location of the files are under:
> HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging
> Subsystem\Profiles\ProfileName
>
> But they are not readable and stored in Binary values.
> This VBScript code can tell you the path to any personal storage file (PST,OST).
> You should run it
> when Outlook is open.
>
> set outlook = createobject("outlook.application")
> set ns = outlook.GetNamespace("MAPI")
>
> For Each item In ns.stores
> If item.FilePath <> "" Then MsgBox item.FilePath
> Next
>
> HTH
>
> -----
> Shay Levi

> $cript Fanatichttp://scriptolog.blogspot.com

Brian Tillman

unread,
Jan 2, 2008, 2:01:31 PM1/2/08
to
Oren <Oren....@gmail.com> wrote:

> that's very weird because as far as I can see it has worked this way
> wonderfully for years... the data loss can occure if you dont backup
> the network once in a while or if you have to have all data including
> current day always up to date if you have a power surge or whatever -
> both of which can lead to data loss anyhow on any system. :-\

It's more than that. The I/O protocols used for networking differ from the
I/O protocols used when accessing a local file and the former are not
well-suited to the type of I/O required to operate upon a PST.
--
Brian Tillman [MVP-Outlook]

Shay Levi

unread,
Jan 2, 2008, 4:53:07 PM1/2/08
to

You're welcome. I had a similar question on the microsoft.public.windows.powershell
NG. I tested the code I posted under
Outlook 2007, it might not work on outlook 2003. For 2003 try this:

Set outlook = WScript.CreateObject("Outlook.Application")
Set ns = outlook.GetNamespace("MAPI")

For Each store In ns.Folders
path = HextoAscii(store.storeid)
pos = InStr(path,":\")
If pos then WScript.Echo Mid (path,pos -1)
Next

Function HexToAscii(str)
Dim i, out

For i = 1 To Len(str) Step 2
char = Mid(str, i, 2)
If char <> "00" then out = out & Chr("&H" & char )
Next

HexToAscii = out
End Function


-----
Shay Levi
$cript Fanatic

Oren

unread,
Jan 3, 2008, 5:08:59 AM1/3/08
to
ah - I'll look it up then...

I guess I have a lot of experimenting to do - afaik I have ppl running
outlook 2k on some machines - I've got to find a neat way of scripting
how to look up the version and then execute the correct code...
shouldn't be *too* tough, but still. Ah well - it'll have to wait
'till after the weekend anyhow.


On Jan 2, 11:53 pm, Shay Levi wrote:
> You're welcome. I had a similar question on the microsoft.public.windows.powershell
> NG. I tested the code I posted under
> Outlook 2007, it might not work on outlook 2003. For 2003 try this:
>
> Set outlook = WScript.CreateObject("Outlook.Application")
> Set ns = outlook.GetNamespace("MAPI")
>
> For Each store In ns.Folders
> path = HextoAscii(store.storeid)
> pos = InStr(path,":\")
> If pos then WScript.Echo Mid (path,pos -1)
> Next
>
> Function HexToAscii(str)
> Dim i, out
>
> For i = 1 To Len(str) Step 2
> char = Mid(str, i, 2)
> If char <> "00" then out = out & Chr("&H" & char )
> Next
>
> HexToAscii = out
> End Function
>
> -----
> Shay Levi

Oren

unread,
Jan 3, 2008, 5:14:26 AM1/3/08
to
oh, I see... hmm - well, I still think its safer this way - when you
have hard disks as badly handled as I've seen here - though I *will*
take this up to my boss...
Most of the mail is saved on the exchange server anyhow and the access
to the PSTs is only for the personal folders... but I see the point.

Thanks for clearing this up for me. :-)

PS - excuse me, Diane, for not taking a deeper look into what you said
- it simply sounded like something I might read in some MS help page
and I dont trust most of them untill and if I understand and agree
with whats behind writing them.


On Jan 2, 9:01 pm, "Brian Tillman" wrote:

Shay Levi

unread,
Jan 3, 2008, 6:04:32 AM1/3/08
to

Set outlook = WScript.CreateObject("Outlook.Application")
Set ns = outlook.GetNamespace("MAPI")

MsgBox outlook.version
(...)

-----
Shay Levi
$cript Fanatic

0 new messages