Windows 10 Event ID 10010 and 10016 Errors With DistributedCOM

Page 5 of 40 FirstFirst ... 3456715 ... LastLast

  1. Posts : 2,832
    Windows 10 Pro X64
       #41

    Hi,

    All that needs to be done is replace the two registry keys with the ones from the event log error you experience like this:

    function enable-privilege
    { param(
    ## The privilege to adjust. This set is taken from http://msdn.microsoft.com/en-us/libr...16(VS.85).aspx
    [ValidateSet(
    "SeAssignPrimaryTokenPrivilege", "SeAuditPrivilege", "SeBackupPrivilege", "SeChangeNotifyPrivilege", "SeCreateGlobalPrivilege",
    "SeCreatePagefilePrivilege", "SeCreatePermanentPrivilege", "SeCreateSymbolicLinkPrivilege", "SeCreateTokenPrivilege",
    "SeDebugPrivilege", "SeEnableDelegationPrivilege", "SeImpersonatePrivilege", "SeIncreaseBasePriorityPrivilege",
    "SeIncreaseQuotaPrivilege", "SeIncreaseWorkingSetPrivilege", "SeLoadDriverPrivilege", "SeLockMemoryPrivilege",
    "SeMachineAccountPrivilege", "SeManageVolumePrivilege", "SeProfileSingleProcessPrivilege", "SeRelabelPrivilege",
    "SeRemoteShutdownPrivilege", "SeRestorePrivilege", "SeSecurityPrivilege", "SeShutdownPrivilege", "SeSyncAgentPrivilege",
    "SeSystemEnvironmentPrivilege", "SeSystemProfilePrivilege", "SeSystemtimePrivilege", "SeTakeOwnershipPrivilege", "SeTcbPrivilege",
    "SeTimeZonePrivilege", "SeTrustedCredManAccessPrivilege", "SeUndockPrivilege", "SeUnsolicitedInputPrivilege")]
    $Privilege,
    ## The process on which to adjust the privilege. Defaults to the current process.
    $ProcessId = $pid,
    ## Switch to disable the privilege, rather than enable it.
    [Switch] $Disable
    )
    ## Taken from P/Invoke.NET with minor adjustments.
    $definition = @'
    using System;
    using System.Runtime.InteropServices;

    public class AdjPriv
    {
    [DllImport("advapi32.dll", ExactSpelling = true, SetLastError = true)]
    internal static extern bool AdjustTokenPrivileges(IntPtr htok, bool disall,
    ref TokPriv1Luid newst, int len, IntPtr prev, IntPtr relen);

    [DllImport("advapi32.dll", ExactSpelling = true, SetLastError = true)]
    internal static extern bool OpenProcessToken(IntPtr h, int acc, ref IntPtr phtok);
    [DllImport("advapi32.dll", SetLastError = true)]
    internal static extern bool LookupPrivilegeValue(string host, string name, ref long pluid);
    [StructLayout(LayoutKind.Sequential, Pack = 1)]
    internal struct TokPriv1Luid
    {
    public int Count;
    public long Luid;
    public int Attr;
    }

    internal const int SE_PRIVILEGE_ENABLED = 0x00000002;
    internal const int SE_PRIVILEGE_DISABLED = 0x00000000;
    internal const int TOKEN_QUERY = 0x00000008;
    internal const int TOKEN_ADJUST_PRIVILEGES = 0x00000020;
    public static bool EnablePrivilege(long processHandle, string privilege, bool disable)
    {
    bool retVal;
    TokPriv1Luid tp;
    IntPtr hproc = new IntPtr(processHandle);
    IntPtr htok = IntPtr.Zero;
    retVal = OpenProcessToken(hproc, TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, ref htok);
    tp.Count = 1;
    tp.Luid = 0;
    if(disable)
    {
    tp.Attr = SE_PRIVILEGE_DISABLED;
    }
    else
    {
    tp.Attr = SE_PRIVILEGE_ENABLED;
    }
    retVal = LookupPrivilegeValue(null, privilege, ref tp.Luid);
    retVal = AdjustTokenPrivileges(htok, false, ref tp, 0, IntPtr.Zero, IntPtr.Zero);
    return retVal;
    }
    }
    '@
    $processHandle = (Get-Process -id $ProcessId).Handle
    $type = Add-Type $definition -PassThru
    $type[0]::EnablePrivilege($processHandle, $Privilege, $Disable)
    }
    #------------------------------------------------------------------------------------------------------------------------------------------------------
    function Takeown-Registry($key)
    { switch ($key.split('\')[0])
    { "HKEY_CLASSES_ROOT"
    { $reg = [Microsoft.Win32.Registry]::ClassesRoot
    $key = $key.substring(18)
    }
    "HKEY_CURRENT_USER"
    { $reg = [Microsoft.Win32.Registry]::CurrentUser
    $key = $key.substring(18)
    }
    "HKEY_LOCAL_MACHINE"
    { $reg = [Microsoft.Win32.Registry]::LocalMachine
    $key = $key.substring(19)
    }
    }
    # take ownership
    $key = $reg.OpenSubKey($key, "ReadWriteSubTree", "TakeOwnership")
    $owner = [Security.Principal.NTAccount]"Administrators"
    $acl = $key.GetAccessControl()
    $acl.SetOwner($owner)
    $key.SetAccessControl($acl)
    # set FullControl
    $acl = $key.GetAccessControl()
    $rule = New-Object System.Security.AccessControl.RegistryAccessRule("Administrators", "FullControl", "Allow")
    $acl.SetAccessRule($rule)
    $key.SetAccessControl($acl)

    # reset owner
    $owner = [Security.Principal.NTAccount]"NT SERVICE\TrustedInstaller"
    $acl = $key.GetAccessControl()
    $acl.SetOwner($owner)
    $key.SetAccessControl($acl)
    }
    #------------------------------------------------------------------------------------------------------------------------------------------------------
    # Grant authority to registry key
    Write-Host; Write-Host "Elevating privileges for this process" -f yellow; Write-Host
    do {$result = enable-privilege SeTakeOwnershipPrivilege }
    until ($result -eq $true)
    do {$result = enable-privilege SeRestorePrivilege }
    until ($result -eq $true)
    $key="HKEY_CLASSES_ROOT\AppID\{316CDED5-E4AE-4B15-9113-7055D84DCC97}"
    Write-Host "Granting authority to $key"
    Takeown-Registry($key)
    $key="HKEY_CLASSES_ROOT\CLSID\{C2F03A33-21F5-47FA-B4BB-156362A2F239}"
    Write-Host "Granting authority to $key"
    Takeown-Registry($key)
    Write-Host; Write-Host "Done"; Write-Host


    Copy the code into Powershell Admin and let it finish.
    You then run dcomcnfg and edit the security properties of "Immersive Shell"



    Cheers,
      My Computers


  2. Posts : 53
    windows 10
       #42

    fdegrove said:
    Hi,

    All that needs to be done is replace the two registry keys with the ones from the event log error you experience like this:





    Copy the code into Powershell Admin and let it finish.
    You then run dcomcnfg and edit the security properties of "Immersive Shell"



    Cheers,
    It's different for Immersive Shell

    I have System , Administrators , INTERACTIVE

    All have Allow to Local Launch ,Remote Launch, Local Activation , Remote Activation . What should I add ? Local Service only ?

    Windows 10 Event ID 10010 and 10016 Errors With DistributedCOM-screenshot-10_01_2016-15_22_11.jpg
    Last edited by x7007; 10 Jan 2016 at 08:23.
      My Computer


  3. Posts : 2,832
    Windows 10 Pro X64
       #43

    Hi,

    What should I add ? Local Service
    Yes, that's it.

    Cheers,
      My Computers


  4. Posts : 56,806
    Multi-boot Windows 10/11 - RTM, RP, Beta, and Insider
       #44

    fdegrove said:
    Hi,

    All that needs to be done is replace the two registry keys with the ones from the event log error you experience like this:





    Copy the code into Powershell Admin and let it finish.
    You then run dcomcnfg and edit the security properties of "Immersive Shell"



    Cheers,
    For an "older" forumer, whose eyeballs don't work like they used to, could you highlight (red) the lines to be changed? Much appreciated. TC
      My Computers


  5. Posts : 5,478
    2004
       #45

    f14tomcat said:
    For an "older" forumer, whose eyeballs don't work like they used to, could you highlight (red) the lines to be changed? Much appreciated. TC
    Right at the bottom...
    Code:
     $key="HKEY_CLASSES_ROOT\AppID\{316CDED5-E4AE-4B15-9113-7055D84DCC97}"
     Write-Host "Granting authority to $key"
     Takeown-Registry($key)
     $key="HKEY_CLASSES_ROOT\CLSID\{C2F03A33-21F5-47FA-B4BB-156362A2F239}"
     Write-Host "Granting authority to $key"
     Takeown-Registry($key)
      My Computer


  6. Posts : 56,806
    Multi-boot Windows 10/11 - RTM, RP, Beta, and Insider
       #46

    lx07 said:
    Right at the bottom...
    Code:
     $key="HKEY_CLASSES_ROOT\AppID\{316CDED5-E4AE-4B15-9113-7055D84DCC97}"
     Write-Host "Granting authority to $key"
     Takeown-Registry($key)
     $key="HKEY_CLASSES_ROOT\CLSID\{C2F03A33-21F5-47FA-B4BB-156362A2F239}"
     Write-Host "Granting authority to $key"
     Takeown-Registry($key)
    Thanks! I probably tripped over it without seeing!
      My Computers


  7. Posts : 53
    windows 10
       #47

    fdegrove said:
    Hi,



    Yes, that's it.

    Cheers,
    I forgot to ask , but should I select all Allow for it too ?
      My Computer


  8. Posts : 2,832
    Windows 10 Pro X64
       #48

    Hi,

    You can but checking local activation would suffice already.

    Cheers,
      My Computers


  9. Posts : 53
    windows 10
       #49

    fdegrove said:
    Hi,

    You can but checking local activation would suffice already.

    Cheers,
    Local Launch not needed ? I just to understand why this bug happen and why we need to do it . cause last time I did it I almost needed to reinstall windows.
      My Computer


  10. Posts : 2,832
    Windows 10 Pro X64
       #50

    Hi,

    Normally it's not needed but let me check on my pc. I'll be back in a sec.

    I have both Local Launch and Local Activation ticked.

    Cheers,
      My Computers


 

  Related Discussions
Our Sites
Site Links
About Us
Windows 10 Forums is an independent web site and has not been authorized, sponsored, or otherwise approved by Microsoft Corporation. "Windows 10" and related materials are trademarks of Microsoft Corp.

© Designer Media Ltd
All times are GMT -5. The time now is 01:18.
Find Us




Windows 10 Forums