Why does the Microsoft Ecosystem Metadata Exchange require Administrator elevation on Windows 10?

2

Using the "Microsoft Ecosystem Metadata Exchange (EMX)" tool (which is the tool you use to register your application for Windows Error Reporting), attempting to scan any file logs the following message to the "Application Log" system log:

Message            : [Microsoft.Telemetry.MetadataExchange.SystemFileMetadataProvider: 56593614]: Unable to scan the given file due to the following exception:


                     System.Runtime.InteropServices.COMException (0x80070522): A required privilege is not held by the client. (Exception from HRESULT:
                     0x80070522)
                            at System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32 errorCode, IntPtr errorInfo)
                            at Microsoft.Telemetry.MetadataExchange.CrossProcessFileScanner.ScanFile(String path)
                            at Microsoft.Telemetry.MetadataExchange.SystemFileMetadataProvider.GetMetadata(String filePath)


                     __________________________________________________________________________________________________________________________________________
                     __________________
                     Logged   at Microsoft.Telemetry.MetadataExchange.FileMetadataScanner.Scan()
                            at Microsoft.Telemetry.MetadataExchange.Presentation.ScanProgressDialogModel.worker_DoWork(Object sender, DoWorkEventArgs e)
                            at System.ComponentModel.BackgroundWorker.OnDoWork(DoWorkEventArgs e)
                            at System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)
                            at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Object[]& outArgs)
                            at System.Runtime.Remoting.Messaging.StackBuilderSink.AsyncProcessMessage(IMessage msg, IMessageSink replySink)
                            at System.Runtime.Remoting.Proxies.AgileAsyncWorkerItem.ThreadPoolCallBack(Object o)
                            at System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(Object state)
                            at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
                            at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
                            at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
                            at System.Threading.ThreadPoolWorkQueue.Dispatch()
                            at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()

I get the same result using the powershell bindings for EMX.

If I run either the tool itself of the powershell bindings from an Elevated command prompt, it does work.

I assume that this is a recent issue (Windows 10?), as the documentation does not mention this problem, and the tool itself doesn't give any error when launching.

Is the limitation of requiring elevation something that has changed in Windows 10, and is it something that I can somehow work around? (i.e., can I make it work somehow without elevation?)

windows-error-reporting
asked on Stack Overflow Aug 11, 2016 by Boinst

1 Answer

4

I did get an answer from Microsoft Support:

We are aware of this. It was not expected but, depending the outcome of my investigation, running elevated may become the official method.

I take this to mean that, at this time, there is no real workaround for the issue, you just have to run EMX as Administrator.

answered on Stack Overflow Aug 12, 2016 by Boinst

User contributions licensed under CC BY-SA 3.0