Fix VSS Writers

Something that we run into with VSS Writers fairly often is them being errored out and this script seems to fix them almost every time. I can’t remember where I found the bulk of this but I think this is a mashup of a few scripts I’ve found over time. I’ve also labelled this as bash but it is a batch file for Windows.

The basics of this script is stopping some services, re-registering some DLLs, resetting some permissions and then restarting the services that were stopped.

REM net stop "System Event Notification Service" net stop "Background Intelligent Transfer Service" REM Enable the 2 below if you need them REM net stop "DHCP Server" REM net stop "DFS Replication" net stop "COM+ Event System" net stop "Microsoft Software Shadow Copy Provider" net stop "Volume Shadow Copy" cd /d %windir%\system32 net stop vss net stop swprv regsvr32 /s ATL.DLL regsvr32 /s comsvcs.DLL regsvr32 /s credui.DLL regsvr32 /s CRYPTNET.DLL regsvr32 /s CRYPTUI.DLL regsvr32 /s dhcpqec.DLL regsvr32 /s dssenh.DLL regsvr32 /s eapqec.DLL regsvr32 /s esscli.DLL regsvr32 /s FastProx.DLL regsvr32 /s FirewallAPI.DLL regsvr32 /s kmsvc.DLL regsvr32 /s lsmproxy.DLL regsvr32 /s MSCTF.DLL regsvr32 /s msi.DLL regsvr32 /s msxml3.DLL regsvr32 /s ncprov.DLL regsvr32 /s ole32.DLL regsvr32 /s OLEACC.DLL regsvr32 /s OLEAUT32.DLL regsvr32 /s PROPSYS.DLL regsvr32 /s QAgent.DLL regsvr32 /s qagentrt.DLL regsvr32 /s QUtil.DLL regsvr32 /s raschap.DLL regsvr32 /s RASQEC.DLL regsvr32 /s rastls.DLL regsvr32 /s repdrvfs.DLL regsvr32 /s RPCRT4.DLL regsvr32 /s rsaenh.DLL regsvr32 /s SHELL32.DLL regsvr32 /s shsvcs.DLL regsvr32 /s /i swprv.DLL regsvr32 /s tschannel.DLL regsvr32 /s USERENV.DLL regsvr32 /s vss_ps.DLL regsvr32 /s wbemcons.DLL regsvr32 /s wbemcore.DLL regsvr32 /s wbemess.DLL regsvr32 /s wbemsvc.DLL regsvr32 /s WINHTTP.DLL regsvr32 /s WINTRUST.DLL regsvr32 /s wmiprvsd.DLL regsvr32 /s wmisvc.DLL regsvr32 /s wmiutils.DLL regsvr32 /s wuaueng.DLL sfc /SCANFILE=%windir%\system32\catsrv.DLL sfc /SCANFILE=%windir%\system32\catsrvut.DLL sfc /SCANFILE=%windir%\system32\CLBCatQ.DLL net start "COM+ Event System" REM fix permissions Takeown /f %windir%\winsxs\temp\PendingRenames /a icacls %windir%\winsxs\temp\PendingRenames /grant "NT AUTHORITY\SYSTEM:(RX)" icacls %windir%\winsxs\temp\PendingRenames /grant "NT Service\trustedinstaller:(F)" icacls %windir%\winsxs\temp\PendingRenames /grant BUILTIN\Users:(RX) Takeown /f %windir%\winsxs\filemaps\* /a icacls %windir%\winsxs\filemaps\*.* /grant "NT AUTHORITY\SYSTEM:(RX)" icacls %windir%\winsxs\filemaps\*.* /grant "NT Service\trustedinstaller:(F)" icacls %windir%\winsxs\filemaps\*.* /grant BUILTIN\Users:(RX) REM Enable the 2 below if you need them REM net start "DHCP Server" REM net start "DFS Replication" net stop cryptsvc net start cryptsvc