File access is denied. You do not have the permission required to access the file .pst
Had the above error when trying to add a PST data file to Outlook. Brand new machine, joined to the domain. I had copied the file across the network to the new machine. I tried moving the file into different locations, I tried taking ownership of the file, I tried setting the domain user as a local administrator, check that the ‘Read Only’ flag was not set, I tried moving, instead of copying the file (this has bitten me in the past, believe it or not) etc. After some searching, Google came up with the answer:
I ran the icacls command from a command window, however I needed to open that command windows as an administrator, otherwise I got a similar ‘Access Denied’ message. One thing I did not check, which probably should be the first thing to check, was running Outlook as an administrator. However, as I usually add PST’s from the Mail option in control panel, this did not immediately occur to me.
I needed a way to create a TreeView in VB.NET that contained a node for each month of the year, and each month node had to contain a node for each Monday within that month. A ‘Week Commencing’ type of view. This type of problem always seems better solved with LINQ, so here’s how I did it:
Private Function GenNode() As TreeNode
Dim rootNode As New TreeNode("Week Commencing")
' Create a list containing every date of the year
Dim dateList As New List(Of Date)
Dim dateIterator As New Date(Year(Now), 1, 1)
Do Until dateIterator.Year <> Year(Now)
dateList.Add(dateIterator)
dateIterator = dateIterator.AddDays(1)
Loop
' Now, using LINQ, create the TreeNodes
Dim t = From d In dateList Group d By m = d.Month Into Group Select
New TreeNode(MonthName(m),
(From d1 In dateList Where d1.Month = m And d1.DayOfWeek = DayOfWeek.Monday Select New TreeNode(d1.ToString("dd-MM-yyyy"))).ToArray) Distinct
rootNode.Nodes.AddRange(t.ToArray)
Return rootNode
End Function
For more information on LINQ, see the following link 🙂