Microsoft improperly patches for RSAT: File Services Tools (srmclient.dll, srmscan.dll, srmshell.dll, adrclient.dll, srmstormod.dll)

T

TenOf11

There is assembly reference problem when RSAT: File Services Tools is installed and then patched.


After patches are applied, System File Checker (SFC.EXE) will state 'Windows Resource Protection found integrity violations.' Opening the CBS.log file, the only files that are shown as 'Repairing' are srmclient.dll, srmscan.dll, srmshell.dll, adrclient.dll, srmstormod.dll with their corresponding hashes.


If the SCANNOW parameter is used, System File Checker will repair files but in actuality it just toggles between initial version and patched version. This means that every time the SCANNOW parameter is used the system will restore the "other" version of files. One time, initial, next time patched, next time initial, next time patched and so on. So it never stops repairing these files.

This appears to be a problem with how Microsoft is patching whereas the initial installation uses assembly locations (registry and file system) prefixed with 'wow64_microsoft-windows-fsrm-common_31bf3856ad364e35' but patches use assembly locations prefixed with 'x86_microsoft-windows-fsrm-common_31bf3856ad364e35'. Something is not correctly updating. (just a theory)


Use the following code at your own risk but it may be used as a workaround to stop this from happening. Additionally, this code may need to be executed every time a patch is applied for RSAT: File Services Tools, until Microsoft corrects the root cause.


$Path = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SideBySide\Winners"

$x86Reg = Get-ItemProperty -Path Registry::"$($Path)\x86_microsoft-windows-fsrm-common_31bf3856ad364e35_none_1a6139d49a508382\10.0"

$wow64Reg = Get-ItemProperty -Path Registry::"$($Path)\wow64_microsoft-windows-fsrm-common_31bf3856ad364e35_none_80d47faa870eb6b3\10.0"

$x86Version = $x86Reg."(default)"

$wow64Version = $wow64Reg."(default)"

if ($x86Version -eq $wow64Version) {

"Versions already match."

return

}

Set-ItemProperty Registry::"$($Path)\wow64_microsoft-windows-fsrm-common_31bf3856ad364e35_none_80d47faa870eb6b3\10.0" -Name "(Default)" -Value $x86Version

Rename-ItemProperty Registry::"$($Path)\wow64_microsoft-windows-fsrm-common_31bf3856ad364e35_none_80d47faa870eb6b3\10.0" -Name $wow64Version -NewName $x86Version

Continue reading...
 
Back
Top Bottom