How Can We Help?
Fix VSS EventID:8194 with PowerShell
Event ID: 8194 Message: Volume Shadow Copy Service error: Unexpected error querying for the IVssWriterCallback interface. hr = 0x80070005, Access is denied
If you require assistance with the steps below, need Tech Support or any IT Services, please do not hesitate to Contact Us. We are offering free tech support by email
The error seems to be caused by the fact that the VSS service is running as LocalSystem and it does not have the right permissions on the DCOM
I created a small PowerShell script to address the issue
Please note that a reboot is required!
The code can be run as in PowerShell, saved in a ps1 file as run as ./filename.ps1 or used in a RMM script
echo “Getting VSS account logon info”;
$svcLogon = Get-WmiObject -Class Win32_Service -ComputerName $env:computername |
? { $_.StartName -match $LogonAccount } |
? { $_.DisplayName -eq “Volume Shadow Copy” } | select DisplayName, StartName, State, StartMode | Select-Object -ExpandProperty StartNameecho ” VSS is running as ” $svcLogon
echo “Get registry values”
$regValues = Get-Item -Path HKLM:SYSTEM\CurrentControlSet\Services\VSS\VssAccessControl | Select-Object -ExpandProperty Property;
echo “Registry contains” $regValues
echo “Checking to see if it is in the registry”
foreach ($rVal in $regValues ) {
if ($rVal -eq “NT Authority\SYSTEM”) { $regFound = $true; break} else {$regFound = $false }
} ; $regFound;echo “Is LocalSystem present? ” $regFound
echo “If not existent we will create it, otherwise exit”
echo “Getting VSS account logon info”;
$svcLogon = Get-WmiObject -Class Win32_Service -ComputerName $env:computername |
? { $_.StartName -match $LogonAccount } |
? { $_.DisplayName -eq “Volume Shadow Copy” } | select DisplayName, StartName, State, StartMode | Select-Object -ExpandProperty StartNameecho ” VSS is running as ” $svcLogon
echo “Get registry values”
$regValues = Get-Item -Path HKLM:SYSTEM\CurrentControlSet\Services\VSS\VssAccessControl | Select-Object -ExpandProperty Property;
echo “Registry contains” $regValues
echo “Checking to see if it is in the registry”
foreach ($rVal in $regValues ) {
if ($rVal -eq “NT Authority\SYSTEM”) { $regFound = $true; break} else {$regFound = $false }
} ; $regFound;echo “Is LocalSystem present? ” $regFound
echo “If not existent we will create it, otherwise exit”
echo “Getting VSS account logon info”;
$svcLogon = Get-WmiObject -Class Win32_Service -ComputerName $env:computername |
? { $_.StartName -match $LogonAccount } |
? { $_.DisplayName -eq “Volume Shadow Copy” } | select DisplayName, StartName, State, StartMode | Select-Object -ExpandProperty StartNameecho ” VSS is running as ” $svcLogon
echo “Get registry values”
$regValues = Get-Item -Path HKLM:SYSTEM\CurrentControlSet\Services\VSS\VssAccessControl | Select-Object -ExpandProperty Property;
echo “Registry contains” $regValues
echo “Checking to see if it is in the registry”
foreach ($rVal in $regValues ) {
if ($rVal -eq “NT Authority\SYSTEM”) { $regFound = $true; break} else {$regFound = $false }
} ; $regFound;echo “Is LocalSystem present? ” $regFound
echo “If not existent we will create it, otherwise exit”
echo “Getting VSS account logon info”;
$svcLogon = Get-WmiObject -Class Win32_Service -ComputerName $env:computername |
? { $_.StartName -match $LogonAccount } |
? { $_.DisplayName -eq “Volume Shadow Copy” } | select DisplayName, StartName, State, StartMode | Select-Object -ExpandProperty StartNameecho ” VSS is running as ” $svcLogon
echo “Get registry values”
$regValues = Get-Item -Path HKLM:SYSTEM\CurrentControlSet\Services\VSS\VssAccessControl | Select-Object -ExpandProperty Property;
echo “Registry contains” $regValues
echo “Checking to see if it is in the registry”
foreach ($rVal in $regValues ) {
if ($rVal -eq “NT Authority\SYSTEM”) { $regFound = $true; break} else {$regFound = $false }
} ; $regFound;echo “Is LocalSystem present? ” $regFound
echo “If not existent we will create it, otherwise exit”