如何查询DOTNET_CLI_TELEMETRY_OPTOUT是否永久设置为TRUE?

问题描述 投票:0回答:1

如果我输入:

set DOTNET_CLI_TELEMETRY_OPTOUT=1

setx DOTNET_CLI_TELEMETRY_OPTOUT 1

要永久保存此设置,则设置 DOTNET_CLI_TELEMETRY_OPTOUT 应设置为 True,但我如何查询它?

没有

get DOTNET_CLI_TELEMETRY_OUTPUT

命令。 还有

echo $DOTNET_CLI_TELEMETRY_OPTOUT

只给出 1,如果

set DOTNET_CLI_TELEMETRY_OPTOUT 1

被输入而不是

set DOTNET_CLI_TELEMETRY_OPTOUT=1

应该使用。

.net windows powershell settings
1个回答
1
投票

tl;博士

  • 使用

    $env:DOTNET_CLI_TELEMETRY_OPTOUT
    get 当前进程的环境变量值
    DOTNET_CLI_TELEMETRY_OPTOUT
    (您无法从该值判断它是否反映了 persistently 定义的环境变量或为 current process 设置的环境变量仅).

  • 使用,例如

    $env:DOTNET_CLI_TELEMETRY_OPTOUT = 1
    set 它的值,但是它会生效 只对当前进程.

  • To persistently set a value (which is only supported on Windows), use

    setx.exe
    (as you tried) or use .NET APIs (see below).

    • 此类持续更新仅对 future 会话可见(作为进程级环境变量)。
    • 但是,您可以通过 .NET API 查询当前持久化的值(见下文)。

set DOTNET_CLI_TELEMETRY_OPTOUT=1

您正尝试在 PowerShell 中使用

cmd.exe
语法,但这是行不通的。 在 PowerShell 中,以上内容转换为以下内容,假设
set
Set-Variable
的内置别名,其第一个位置参数是
-Name

Set-Variable -Name DOTNET_CLI_TELEMETRY_OPTOUT=1

这创建了一个shell-only变量literally名为

DOTNET_CLI_TELEMETRY_OPTOUT=1
没有值
$null
)。

通过 shell-only 变量我的意思是一个 常规 PowerShell 变量 只有当前的 PowerShell 会话知道,并且 - 不像 environment 变量 - not 被其他进程看到。


为当前进程定义环境变量,使用

$env:
命名空间:

$env:DOTNET_CLI_TELEMETRY_OPTOUT = 1

您可以使用相同的语法查询值,这同样适用于 persistent 环境变量和那些仅为当前进程定义的变量:

$env:DOTNET_CLI_TELEMETRY_OPTOUT

PowerShell 提供no 直接支持定义persistent 环境变量。

使用

setx.exe
实用程序(在 Windows 上)-正如您所尝试的那样- 是一个选项。

您还可以使用 .NET APIs

# 'User' creates / updates a persistent definition for the *current user*.
# Use 'Machine' to create / update a machine-level definition, but 
# note that doing so requires *elevation* (running as admin).
[Environment]::SetEnvironmentVariable('DOTNET_CLI_TELEMETRY_OPTOUT', '1', 'User')

但是请注意,在这两种情况下,新的/更新的值只会在 future 会话中看到,即只会自动显示为 process-level 那里的环境变量。

但是,您可以再次使用 .NET API 直接从注册表中检索当前持久化的值,前提是您知道其范围(

User
Machine
- 您可能需要同时尝试两者);例如:

[Environment]::GetEnvironmentVariable('DOTNET_CLI_TELEMETRY_OPTOUT', 'User')
© www.soinside.com 2019 - 2024. All rights reserved.