Fix VSS EventID:8194 with PowerShell

You are here:
< All Topics

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 StartName

echo ” 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 StartName

echo ” 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 StartName

echo ” 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 StartName

echo ” 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”

We are offering free tech support by email, do not hesitate to Contact Us.

Table of Contents