New
#11
Hi,
This issue should be related to System Restore failure.
Actually, System Restore cannot work on 1803.
In addition, it keeps several GBs (cannot delete restoring files) even if you turn it off.
This issue may be related to System Restore failure, then again it may not. System restore has always been a bit unreliable. This 'RPC server' failure when making a system image is specific to x86 1803, so if you have x64 it's less likely to be related. FWIW, I have tested system restore on the x86 system that has this 'system image' problem and system restore fails for me too.
Yes, 2.3GB on my x86 1803 system after the failed system restore test.In addition, it keeps several GBs (cannot delete restoring files) even if you turn it off.
That can happen in any version when a system restore fails, not just 1803. I had (and cured) a similar problem in 1709. These are orphaned restore files that are stored in the hidden 'System Volume Information' folder. See this thread, and in particular post #24, for ways to check for and deal with this. In general, you may need to boot from something else in order to delete these files.
Inaccurate C: drive capacity reading/Unable delete winold folders
Some (small) progress...
https://social.technet.microsoft.com...=windowsbackupThe issue you submitted though the feedback hub has been received. Would it be possible for you to attach the System and Application event log data to your issue in the feedback hub, as well? You could just reproduce the error and then export the last 30 minutes, or so, worth of events in .csv format from each log. This would be helpful in determining the root case of this issue.Thanks,
Wes
Microsoft Corporation
Thursday, May 17, 2018 6:02 PM
I don't have an MS account, so can't follow it in the feedback hub. Others who can ( @rlatting ?) might like to contribute their experiences.
This appears to be related to a problem with permissions for MSLLDP encountered several years ago, at least when I looked for solutions to the "Windows 10 Backup failing with 0x800706BA" issue, I stumbled upon a familiar old posting relating to CAPI2 errors that preceded the backup failure.
I applied the same fix on my 32 bit machines as I did before (back in 2014), and this fixed the 0x800706BA error, the backup running to completion on one machine (and only failing on the other because of a hardware problem).
The fix was not necessary on either 64 bit machine as the permission was already in place.
Essentially, MSLLDP lacks the Read NT AUTHORITY/SERVICE permission allowing it access to services, as found for MUP.
The following .bat file will fix the problem... (my first post on this (or any) site, so apologies if this isn't the accepted way to do things) - needs to run in elevated CMD session, i.e. run as administrator.
It uses accesschk.exe to show the current permissions for MSLLDP and MUP, and then uses SC to get values for them both and, if appropriate, 'copy' the necessary permission to MSLLDP from MUP.
[CODE @Rem Fix_CAPI2_MSLLDP.bat
@Rem copies 'SU' "NT Authority/System" access permission from MUP to MSLLDP
@SETLOCAL EnableDelayedExpansion
@IF DEFINED DEBUG (@Set "_Echo=ON") ELSE (@Set "_Echo=OFF")
@Set "LP=("& @Set "RP=)"
@Echo\Access check for MSLLDP: expect...
@Echo\
@Echo\ RW NT AUTHORITY\SYSTEM
@Echo\ RW BUILTIN\Administrators
@Echo\ RW S-1-5-32-549 ^<- these are server operators
@Echo\ R NT SERVICE\NlaSvc
@Echo\
@ECHO ON
accesschk.exe -c mslldp
@ECHO %_Echo%
@Echo\
@Echo\...and compare with Access check for MUP...
@Echo\
@ECHO ON
accesschk.exe -c mup
@ECHO %_Echo%
@Echo\ where
@Echo\ R NT AUTHORITY\SERVICE ^<- this gives access to services
@Echo\
@Rem parse output from sdshow...
FOR /F "usebackq tokens=*" %%i IN (`SC sdshow MUP`) DO Set "MUP=%%i"
FOR /F "usebackq tokens=*" %%i IN (`SC sdshow MSLLDP`) DO Set "MSLLDP=%%i"
@Rem using ":" delimiter in FOR loop, so need to add ":" between ")" and immediately following uppercase character
@FOR %%i IN (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) DO @(
Set "MUP=!MUP:%RP%%%i:=%RP%:%%i:!"
Set "MSLLDP=!MSLLDP:%RP%%%i:=%RP%:%%i:!"
)
FOR /F "tokens=1-8 delims=:" %%i IN ("%MUP%") DO (
Set "MUP_1=%%i"
Set "MUP_1_VAL=%%j"
Set "MUP_2=%%k"
Set "MUP_2_VAL=%%l"
Set "MUP_3=%%m"
Set "MUP_3_VAL=%%n"
)
FOR /F "tokens=1-8 delims=:" %%i IN ("%MSLLDP%") DO (
Set "MSLLDP_1=%%i"
Set "MSLLDP_1_VAL=%%j"
Set "MSLLDP_2=%%k"
Set "MSLLDP_2_VAL=%%l"
Set "MSLLDP_3=%%m"
Set "MSLLDP_3_VAL=%%n"
)
@Rem Validate to ensure we have sensible values...
IF /I NOT "%MUP_1%" == "D" @ECHO MUP_1 not D& GOTO :SKIP
IF /I NOT "%MUP_2%" == "S" @ECHO MUP_2 not S& GOTO :SKIP
IF /I NOT "%MSLLDP_1%" == "D" @ECHO MSLLDP_1 not D& GOTO :SKIP
IF /I NOT "%MSLLDP_2%" == "S" IF /I NOT "%MSLLDP_2%" == "" @ECHO MSLLDP_2 not S / empty& GOTO :SKIP
@Rem Now parse the "D:" values further...
@Rem initialise
Set "MUP_SU="
Set "MSLLDP_SU="
@Rem remove leading and trailing parentheses
Set "MUP_1_SPL=%MUP_1_VAL:~1,-1%"
Set "MSLLDP_1_SPL=%MSLLDP_1_VAL:~1,-1%"
@Rem 'split' xxx_1_VAL by changing Closing/Opening parenthese to "¬"...
Set "MUP_1_SPL=%MUP_1_SPL:)(=¬%"
Set "MSLLDP_1_SPL=%MSLLDP_1_SPL:)(=¬%"
@Rem ...allowing separation into blank delimited double-quoted strings, in which we want the one ending SU...
FOR %%i IN ("%MUP_1_SPL:¬=" "%") DO (
Set "X=%%~i"
Set "MUP_!X:~-2!=%LP%!X!%RP%"
@IF /I "%_Echo%" == "ON" @ECHO "MUP_!X:~-2!" is "%LP%!X!%RP%"
)
FOR %%i IN ("%MSLLDP_1_SPL:¬=" "%") DO (
Set "X=%%~i"
Set "MSLLDP_!X:~-2!=%LP%!X!%RP%"
@IF /I "%_Echo%" == "ON" @ECHO "MSLLDP_!X:~-2!" is "%LP%!X!%RP%"
)
IF NOT DEFINED MSLLDP_SU GOTO :NOT_SU_Already
@Echo\ 'SU' permissions already exists in MSLLDP
GOTO :SKIP
:NOT_SU_Already
@Echo\
@Echo\ So to fix, take the NT AUTHORITY\SERVICE entry, i.e. "%MUP_SU%" from...
@Echo\
@ECHO ON
SC sdshow MUP
@ECHO %_Echo%
@Echo\
@Echo\ ...and add it to the MSLLDP entry, after the last 'D:' entry
@Echo\
@ECHO ON
SC sdshow MSLLDP
@ECHO %_Echo%
@Echo\
@Echo\ via the SC sdset MSLLDP ... command
@Echo\
@Rem 'Reconstitute' MSLLDP to include MUP_SU...
Set "MSLLDP_VAL="
Set "MSLLDP_1_VAL=%MSLLDP_1_VAL%%MUP_SU%"
FOR /L %%i IN (1,1,3) DO (
IF DEFINED MSLLDP_%%i Set "MSLLDP_VAL=!MSLLDP_VAL!!MSLLDP_%%i!:!MSLLDP_%%i_VAL!"
)
@ECHO\
@ECHO\ about to execute command
@ECHO\
@ECHO\SC sdset MSLLDP %MSLLDP_VAL%
@ECHO\
@ECHO\Press Ctrl-C to abort, or
@PAUSE
@ECHO ON
SC sdset MSLLDP %MSLLDP_VAL%
@ECHO %_Echo%
@ECHO\
:SKIP
@PAUSE
@Echo\
[/CODE]
NOTE: because it uses delayed expansion, this code must be saved to a .bat file and then executed. It won't run as 'inline' copy and paste code.
Welcome to TenForums @roger1n - actually, welcome to forums in general :)
No apologies needed, your contribution is welcome.
Unfortunately the code tags got misplaced and the site's posting code translated two bits of it into smileys but I could undo that and try your code. The safest way to post a .bat file on this forum is to put it in a .zip file then attach that to your post.
I had mixed results, but your .bat did make a significant improvement.
I tested on an x86 1803 17134.48 system with a legacy MBR layout and two partitions that would be imaged - System and C:
Previously "The RPC server is unavailable. (0x800706BA)" would occur immediately after the 'preparing to create backup...' notification changed to say 'Backing up System...'. No .vhxd images would be created in the WindowsImageBackup folder.
After applying your .bat file the System partition is backed up to a .vhxd successfully. But then the 0x800706BA error occurs when starting the backup of C:.
There's probably a minor mod to the .bat that may well permit a full backup of my system. But that's just half the problem fixed. How would you restore the system image? Booting from an x86 1803 recovery drive or an install usb also has this RPC error. One workaround could be to use a recovery drive made by 1709 or earlier.
EDIT: I have attached a .zip of my (smileys corrected) version of roger1n's .bat for others to try...
Last edited by Bree; 21 May 2018 at 05:22. Reason: Attached Zip file