PowerShell.Telemetry.ApplicationInsightsTelemetry 是什么,我可以将其关闭吗?

What is PowerShell.Telemetry.ApplicationInsightsTelemetry and can I turn it off?

我有一个使用 Microsoft.PowerShell.SDK NuGet 包的 C# 测试项目。我将它用于 运行 我似乎无法使用 HttpClient 的 cURL 命令(如果您有兴趣,请详细了解 )。

效果很好,除非我 运行 作为弱用户使用 RunImpersonated。然后我得到以下异常:

System.TypeInitializationException : The type initializer for 'Microsoft.PowerShell.Telemetry.ApplicationInsightsTelemetry' threw an exception.

有内部异常:

System.UnauthorizedAccessException : Access to the path 'CreateUniqueUserId' is denied.

我不确定为什么我的 cURL powershell 命令需要使用 Application Insights,如果可能我想将其关闭。

是否可以使用 Powershell NuGet 关闭 Application Insights?

来自about_Telemetry help file

To opt-out of this telemetry, set the environment variable POWERSHELL_TELEMETRY_OPTOUT to true, yes, or 1.

所以 运行 当您的应用程序启动时应该这样做:

Environment.SetEnvironmentVariable("POWERSHELL_TELEMETRY_OPTOUT", "1");