テレメトリーについて

簡単な説明

PowerShell で収集されるテレメトリと、オプトアウトする方法について説明します。

長い説明

PowerShell は、Application Insights を使用して基本的なテレメトリ データを Microsoft に送信します。 このデータにより、PowerShell を使用している環境を詳しく把握し、新しい機能や修正の優先順位を決定できるようになります。 PowerShell は、テレメトリ情報を送信前に匿名化します。

PowerShell は起動時に以下の情報を送信します。

  • オペレーティング システムの製造元、名前、バージョン
  • PowerShell のバージョン
  • POWERSHELL_DISTRIBUTION_CHANNEL 環境変数の値
  • PowerShell が使用する Application Insights SDK のバージョン
  • IP アドレスに基づくホストの地理的位置
  • パラメーター値なしで pwsh に渡されるパラメーター
  • 現在のセッションの実行ポリシー設定
  • インスタンスを実行しているユーザーを表す、ランダムに生成された GUID
  • セッション インスタンスを表す、ランダムに生成された GUID

起動テレメトリ データは、pwsh 実行可能ファイルの起動時にのみ収集されます。 PowerShell エンジンが他のホスト アプリケーションに埋め込まれている場合、この情報は送信されません。

メモ

Application Insights は、ホストの IP アドレスを使用して地理的位置を特定します。 IIP アドレスはテレメトリ データに含まれず、データベースにも保存されません。 詳細については、「位置情報と IP アドレスの処理」を参照してください。

PowerShell は、セッション中に次の情報を送信します。

  • PowerShell.Create() API の呼び出し回数
  • インポートされた Microsoft 所有モジュールの名前とバージョン
  • CrescendoBuilt タグを持つ、インポートされたモジュールの数
  • 有効になっている実験的機能の名前
  • 無効になっている実験的機能の名前
  • $PSNativeCommandUseErrorActionPreference プリファレンス変数の値 (truefalseunset)
  • リモート セッションでの開く操作の数
  • 登録済みサブシステムの名前: Completion および general。 サブシステムの名前がこれらに該当しない場合は、名前として anonymous が送信されます。
  • 提供された CommandNotFound フィードバック候補の数。
  • PowerShellUnsafeAssemblyLoad の使用回数と読み込みが成功したかどうか。

$Env:POWERSHELL_DISTRIBUTION_CHANNEL 環境変数は、PowerShell のインストールの方法とソースを記録するためにインストーラー パッケージによって設定されます。 この情報は Microsoft に送信されるテレメトリ データに含まれるため、ユーザーはこの値を変更しないでください。

PowerShell は、セッションの有効期間中に、すべてのプラットフォーム上のすべてのホスト アプリケーションに対してこの情報を定期的に送信します。

遠隔測定を無効にする

テレメトリの送信を無効にする方法は 2 つあります。

  • すべてのプラットフォームで、環境変数 $Env:POWERSHELL_TELEMETRY_OPTOUTtrueyes、または 1に設定します。 この環境変数を有効にするには、PowerShell プロセスを開始する前に設定する必要があります。 詳細については、「about_Environment_Variables」を参照してください。

  • Windowsの PowerShell 7.6.2 以降、PowerShell では、Windowsの Diagnostics & feedback 設定が考慮されます。 Windowsでテレメトリを無効にするには、次の手順に従います。

    1. 設定アプリを開き、プライバシーとセキュリティ>Diagnostics > フィードバックに移動します。
    2. [ 診断データ ] セクションを展開します。
    3. [ オプションの診断データを送信する] で、トグルを [オフ] に設定します。

詳細については、次を参照してください。