Editing a Document in SharePoint Opens as Read-Only

I have worked with a few customers that have run across an issue when they want to edit documents from a SharePoint site, they will only open as read-only. Some machines will only open documents from a SharePoint document library as Read-Only while other machines, logged on as the same user, allow the user to open the documents for editing. The same procedure is used on both machines where you select the drop-down arrow and choose “Edit in Excel” (or Word or PowerPoint). All permissions have been verified as correct.

TROUBLESHOOTING

1) Download ProMon.exe from https://live.sysinternals.com. You have the choice to either run it from sysinternals or download it and run on your machine.

2) Make sure procmon.exe is running on a "good" and "bad" machine then reproduce the issue on the “good” machine and the “bad” machine

3) Once the issue is reproduced, save the files as CSV files using names such as good.csv and bad.csv.

4) Download Beyond Compare from https://www.download.com/Beyond-Compare/3000-2248_4-10577526.html to your local machine

5) Open the two CSV ProcMon files in Beyond Compare and look for any “ACCESS DENIED” messages similar to these that were on the “bad” machine

a) 1:03:00 PM EXCEL.EXE:7796 OPEN j:\apps_pub\msop2k40\msopkg\PROGRA~1\COMMON~1\System\OLEDB~1\MSDAURL.DLL ACCESS DENIED DOMAIN\username

b) 1:03:00 PM EXCEL.EXE:7796 OPEN J:\apps_pub\msop2k40\msopkg\PROGRA~1\COMMON~1\System\OLEDB~1\MSDAURL.DLL ACCESS DENIED DOMAIN\username

c) 1:03:00 PM EXCEL.EXE:7796 OPEN J:\apps_pub\msop2k40\msopkg\PROGRA~1\COMMON~1\System\OLEDB~1\MSDAURL.DLL ACCESS DENIED DOMAIN\username

d) 1:03:00 PM EXCEL.EXE:7796 OPEN J:\apps_pub\msop2k40\msopkg\PROGRA~1\COMMON~1\System\OLEDB~1\MSDAURL.DLL ACCESS DENIED DOMAIN\username

e) 1:03:00 PM procexp.exe:5564 QUERY INFORMATION I:\documents\Excel\ SUCCESS FileBasicInformation

f) 1:03:00 PM EXCEL.EXE:7796 OPEN J:\apps_pub\msop2k40\msopkg\PROGRA~1\COMMON~1\System\OLEDB~1\MSDAURL.DLL ACCESS DENIED DOMAIN\username

6) Open the RegMon files to see what’s missing on the “bad” machine as compared to the “good” machine

a) You’ll want to concentrate mostly on the following Registry entries

i) FF151822-B0BF-11D1-A80D-000000000000

ii) MSDAURL.Binder.1

iii)  MSDAURL.Binder

RESOLUTION
On the “bad” machine, if you have ACCESS DENIED on MSDAURL.DLL from ProcMon and the Registry entries are missing, then we need to add the Registry keys on the “bad” machine.

1) Copy and paste the text under CLSID_FIX to notepad and save the file as CLSID_FIX.reg

2) Double-click the CLSID_FIX.reg file to install the keys

3) From a command prompt, re-register these dll’s

a) Regsvr32.exe “c:\program files\common files\system\OLE DB\MSDAURL.DLL”

b) Regsvr32.exe “c:\program files\common files\system\OLE DB\MSDAIPP.DLL”

4) Reboot the machine

CLSID_FIX

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\CLSID\{FF151822-B0BF-11D1-A80D-000000000000}]
@="Microsoft OLE DB Root Binder for Internet Publishing"

[HKEY_CLASSES_ROOT\CLSID\{FF151822-B0BF-11D1-A80D-000000000000}\InprocServer32]
@="C:\\Program Files\\Common Files\\system\\ole db\\oledb32.dll"
"ThreadingModel"="Both"

[HKEY_CLASSES_ROOT\CLSID\{FF151822-B0BF-11D1-A80D-000000000000}\OLE DB Binder]
@="Microsoft OLE DB Root Binder"

[HKEY_CLASSES_ROOT\CLSID\{FF151822-B0BF-11D1-A80D-000000000000}\ProgID]
@="MSDAURL.Binder.1"

[HKEY_CLASSES_ROOT\CLSID\{FF151822-B0BF-11D1-A80D-000000000000}\VersionIndependentProgID]
@="MSDAURL.Binder"

[HKEY_CLASSES_ROOT\MSDAURL.Binder.1]
@="Microsoft OLE DB Root Binder for Internet Publishing"

[HKEY_CLASSES_ROOT\MSDAURL.Binder.1\CLSID]
@="{FF151822-B0BF-11D1-A80D-000000000000}"

[HKEY_CLASSES_ROOT\MSDAURL.Binder]
@="Microsoft OLE DB Root Binder for Internet Publishing"

[HKEY_CLASSES_ROOT\MSDAURL.Binder\CLSID]
@="{FF151822-B0BF-11D1-A80D-000000000000}"

[HKEY_CLASSES_ROOT\MSDAURL.Binder\CurVer]
@="MSDAURL.Binder.1"