Visual Studio のエンタープライズ展開にポリシーを構成する

ポリシーを使って、Visual Studio の展開と更新の動作の特定の側面を構成できます。 これらの構成の一部は、インストールされている Visual Studio のインスタンスに対して固有であり、一部の構成はグローバルで、クライアント コンピューター上の Visual Studio のすべてのインスタンスに適用できます。 次のオプションを構成できます。

  • 管理者権限のないユーザーに Visual Studio の更新または変更を許可するかどうか
  • サポートされていないコンポーネントをマシンから削除するかどうか
  • 他のバージョンまたはインスタンスと共有されているパッケージがいくつかインストールされている場合
  • パッケージのキャッシュ場所とキャッシュされているかどうか
  • 管理者の更新プログラムを有効にする必要があるかどうか、およびその適用方法
  • 使用可能な更新プログラム チャネルと、クライアントに表示される方法
  • 通知の表示または非表示

Microsoft Intune 設定カタログを使用するか、Visual Studio 管理用テンプレート (ADMX) をグループ ポリシー エディターなどのレガシ ツールにインポートして、組織全体にコンピューター全体のグローバル ポリシーを構成して展開します。 また、クライアント コンピューターでレジストリの値を直接設定することもできます。 クライアント コンピューターでコマンドライン オプションを使用して、インスタンスごとの動作を構成します。

レジストリ キー

レジストリには、これらのポリシーを設定できる場所がいくつかあります。 Visual Studio は、エンタープライズ ポリシーが設定されているかどうかを確認するために、次の順序で順番に表示されます。 ポリシー値が検出されるとすぐに、再メインキーは無視されます。

  1. HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\VisualStudio\Setup
  2. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\Setup
  3. HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\VisualStudio\Setup (64 ビット オペレーティング システム)

いくつかのレジストリ値は、未設定の場合、最初に使われたときに自動的に設定されます。 これにより、以後のインストールでも同じ値が使われるようになります。 これらの値は、2 番目のレジストリ キーである HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\Setup に格納されます。

以下のレジストリ値を設定できます。

インストール、ダウンロード、更新の動作の制御

このセクションのレジストリ設定では、クライアント コンピューターに Visual Studio 製品をダウンロードしてインストールする方法と場所を制御します。

名前 Type [Default] 説明
AllowStandardUserControl REG_DWORD 0 管理者権限を持たないユーザーがインストーラー UI を使用して Visual Studio のインストールを手動で管理できるようにする: 1 に設定すると、管理者権限を持たないユーザーは、管理者パスワードを入力しなくても、更新プログラムを手動で更新またはロールバックできます。 2 に設定すると、管理者権限を持たないユーザーは、Visual Studio インストーラーのすべての機能を手動で使用できます。使用可能なタブの変更インストールを含みます。標準ユーザーは、このポリシーが設定されている内容に関係なく、Visual Studio インストーラー コマンドをプログラムで --passiveor--quiet パラメーターで実行することはできません。 このポリシーには、クライアント コンピューターに Visual Studio 2022 の最新バージョンのインストーラーがインストールされている必要があります。
CachePath REG_SZ または REG_EXPAND_SZ %ProgramData%
\Microsoft
\VisualStudio
\Packages
パッケージ マニフェストとペイロード キャッシュ パス: Visual Studio インストーラーを使用すると、このストレージ キャッシュ ディレクトリのパスに 50 文字の制限が適用されます。 詳細については、「パッケージ キャッシュの無効化または移動」ページを参照してください
KeepDownloadedPayloads REG_DWORD 1 インストール後にパッケージ ペイロードを保持する: このポリシーを無効にすると、修復または変更するインスタンスでキャッシュされたパッケージのペイロードがすべて削除されます。 この値はいつでも変更できます。 詳細については、「パッケージ キャッシュの無効化または移動」ページを参照してください。
SharedInstallationPath REG_SZ または REG_EXPAND_SZ %ProgramFiles(x86)%
\Microsoft Visual Studio
\Shared
共有インストール パス: Visual Studio のインスタンスのバージョン間で共有されているパッケージの一部がインストールされているディレクトリ。 値はいつでも変更できますが、変更が反映されるのは以後のインストールのみです。 元の場所に既にインストールされている製品は移動しないでください。移動すると、正しく機能しない場合があります。 Visual Studio インストーラーでは、パスに 150 文字の制限があります。
BackgroundDownloadDisabled REG_DWORD 0 更新プログラムの自動的なダウンロードを無効にする: 1 に設定すると、インストールされているすべての Visual Studio 製品の更新プログラムが自動的にダウンロードされなくなります。 この値はいつでも変更できます。
RemoveOos REG_DWORD 0 更新時にサポート対象外のコンポーネントを削除する: 1 に設定すると、以降のすべての更新時に、サポート対象外の状態に移行したインストール済みコンポーネントは Visual Studio Installer によってすべて削除されます。 0 に設定するか、何も設定しない場合、removeOos の動作では、コマンドライン パラメーターや [設定の更新] ダイアログなど、この設定を構成できる他の場所が尊重されます。 詳細については、サポート対象外のコンポーネントの削除に関するブログ記事を参照してください。 この機能を使うには、Visual Studio 2022 バージョン 17.4 インストーラーがクライアント コンピューターにインストールされている必要があります。
DisableRollback REG_DWORD 0 Visual Studio 更新プログラムをロールバックまたは元に戻す機能を無効にする: 1 に設定すると、ユーザーはロールバック機能にアクセスできなくなり、セキュリティ修正プログラムが含まれる可能性のある最新の更新プログラムを Visual Studio で元に戻すことができなくなります。 0 に設定するか、何も設定しない場合、ユーザーは Visual Studio でロールバック機能にアクセスできます。また、更新プログラムを元に戻し、Visual Studio インスタンスを以前にインストールしたバージョンにロールバックできます。 詳細については、ロールバックに関するブログ記事を参照してください。
HideAvailableTab REG_DWORD 0 インストーラーの [使用可能] タブを非表示にする: 1に設定すると、管理者はインストーラーの [使用可能] タブを非表示にできるため、組織内のユーザーが誤って間違った製品をインストールするのを防ぐことができます。
DisableSound REG_DWORD 0 インストーラーのサウンドを無効にする: 1 に設定すると、ユーザーは Visual Studio インストーラーでサウンドを無効にでき、インストーラー操作の完了時またはエラー時にオーディオ キューが防止されます。 インストーラー操作には、インストール、更新、変更、およびインストーラーによって実行される他の多くの操作、または要求された操作の試行中にエラー ダイアログが含まれます。 0に設定するか、何も設定しない場合、ユーザーはインストーラーでサウンドを再度有効にすることができます。 詳しくは、DisableSound に関するブログ記事をご覧ください。

重要

インストール後に CachePath のレジストリ ポリシーを変更する場合は、既存のパッケージ キャッシュを新しい場所に移動して、SYSTEM および Administratorsフル コントロールが、Everyone読み取りアクセスが可能になるようにセキュリティを保護する必要があります。 既存のキャッシュの移動やセキュリティの保護に失敗すると、今後のインストールで問題が発生する場合があります。

管理者の更新プログラムを制御する

このセクションのレジストリ設定は、管理者の更新プログラムをクライアント コンピューターに適用するかどうかとその方法を制御します。

名前 Type [Default] 説明
AdministratorUpdatesEnabled REG_DWORD 0 管理者向け更新プログラムを有効にする: 管理者向け更新プログラムをクライアント コンピューターに適用することを許可します。 この値が指定されていないか、0 に設定されている場合、管理者向け更新プログラムはブロックされます。 値 1 を指定すると、クライアント コンピューターは WSUS/SCCM チャネルを介して展開された更新プログラムを入手できるようになります。 推奨値 2 を指定すると、クライアント コンピューターは WSUS/SCCM チャネルまたは Windows Update for Business/Intune/Microsoft エンドポイント マネージャー チャネルのいずれかを介して展開される更新プログラムを受信できるようになります。 このレジストリ キーは管理者ユーザー用です。 詳細については、管理者向け更新プログラムを有効にする方法に関するページを参照してください。
AdministratorUpdatesNotifications REG_DWORD 0 管理者が Visual Studio を閉じて管理者向け更新プログラムのブロックを解除するようにユーザーに通知できるようにする: Visual Studio が開いているか使用中の場合、管理者向け更新プログラムは適用されません。 このレジストリ キーを設定すると、管理者は、保留中の更新プログラムを適用できるよう、Visual Studio を閉じて作業内容を保存することをユーザーに求める Windows トースト通知プロンプトを表示できます。 このレジストリ キーは管理者ユーザー用です。 詳しくは、ブログ記事のお知らせをご覧ください。
AdministratorUpdatesOptOut REG_DWORD 0 管理者向け更新プログラムをオプトアウトする: ユーザーが Visual Studio の管理者向け更新プログラムの受信を希望していないことを示します。 このレジストリ値がない、または値 0 が設定されている場合は、Visual Studio ユーザーが Visual Studio の管理者向け更新プログラムの受け取りを希望していることを意味します。 このポリシーは、クライアント コンピューター上に管理者権限がある場合に構成する開発者ユーザー向けです。

ユーザーの設定をエンコードするための AdministratorUpdatesOptOut キーの方は、IT 管理者の意図をエンコードする AdministratorUpdatesEnabled キーよりも優先されます。 AdministratorUpdatesOptOut が 1 に設定されている場合、AdministratorUpdatesEnabled キーが 1 に設定されていても、更新プログラムはクライアントでブロックされます。 このアクションは、IT 管理者が、どの開発者がオプトアウトを選択したかにアクセスして監視でき、だれのニーズがより重要かを双方で検討できることを前提としています。 IT 管理者は、どちらのキーも必要に応じていつでも変更できます。
UpdateConfigurationFile REG_SZ または REG_EXPAND_SZ %ProgramData%
\Microsoft
\VisualStudio
\updates.config
更新プログラムの構成ファイルへのカスタム パス: 管理者向け更新プログラムの構成に使用できるクライアント上のファイルへのパス。 既定では、このファイルは存在せず、ポリシーは設定されていません。 ポリシーをクライアント マシンに追加し、カスタム構成ファイルの場所を定義することを選択した場合、管理者更新プログラムはこのファイルを検索します。 ファイルが存在しない場合は、例外がスローされ、更新は失敗します。 詳細については、「管理者向け更新プログラムを構成する方法」を参照してください。

重要

Windows Update for Business Microsoft Update チャネルを介して Visual Studio の管理者更新プログラムを受け取るには、Intune によって管理されているクラウド接続クライアント コンピューターを Windows Update for Business に合わせて構成し、"他の Microsoft 製品の更新プログラムを有効にする" にオプトインする必要があります。

更新プログラムのソースの場所の構成

このセクションの設定を使用すると、管理者は、使用可能な更新チャネルをカスタマイズして、エンタープライズ組織内のクライアントに表示する方法を制御できます。 更新プログラムの設定とその動作の詳細については、更新プログラムのソースの場所の構成に関するドキュメントを参照してください。 この機能を使用するには、クライアントが Visual Studio 2022 インストーラーを使用し、2021 年 11 月 10 日以降に出荷された 2019 ブートストラップのバージョンを使用するようにレイアウトを使用する必要があります。 ガイダンスとして、Visual Studio 2019 のレイアウトに関するドキュメントを参照して、クライアント コンピューターで Visual Studio 2022 インストーラーを取得する方法を参照してください。

このセクションのキーは、Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\Setup レジストリ パスにのみ適用されます

名前 タイプ 説明
Channels Key カスタム レイアウトのチャネル情報を格納するためのサブキーのパス。 このキーの名前はチャネル名を考慮し、[更新チャネル] ドロップダウンに表示されます。 ChannelURI 値は、Channels サブキーの下に存在する必要があります。
DisabledChannels Key チャネルを非表示にして、それを [更新チャネル] ダイアログに表示しないようにするためのサブキーのパス。 チャネルが (ChannelURI 値と共に) ここで定義されている場合は、ダイアログから除外されます。
ChannelURI REG_SZ Channels Hive に追加して更新チャネル値の一覧に追加するか、DisabledChannels レジストリ Hive に追加することによって更新チャネルの一覧から除外します。 Microsoft がホストするチャネルの場合、channelURI は "https://aka.ms/vs/16/release/channel または "https://aka.ms/vs/16/pre/channel です。 レイアウトの場合、この値はレイアウトの ChannelManifest. json をポイントする必要があります。 例を参照してください。
Description REG_SZ チャネルの 2 行のカスタム説明。 レイアウトから既にインストールしている場合は、更新設定 UI の既定値は "プライベートチャネル" に設定され、説明を使用して変更できます。

レジストリ ファイルの例は、IT 管理者が更新プログラムの設定 UI をカスタマイズする方法を示しています。

最初のレジストリの例は、\\vslayoutserver3\vs\2019_Enterpriseにあるネットワーク レイアウトからクライアントが以前にインストールしている状況で使用できます。 前に説明したように、Visual Studio では、このレイアウトのチャネル名を既定で "プライベート チャネル" と設定しています。 このレイアウトのチャネル名と説明をカスタマイズする方法を次に示します。

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\Setup\Channels]

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\Setup\Channels\More meaningful name of my existing layout]
"channelUri"="\\\\vslayoutserver3\\vs\\2019_Enterprise\\ChannelManifest.json"
"Description"="Dev Tools based on VS 2019 16.9.Spring.2020 servicing baseline"

ここでは、更新プログラムのソースとして使用できる他のカスタム更新プログラム チャネルのレイアウト エントリをさらにいくつか追加する方法と、プレビュー チャネルを表示しないようにする方法を示します。

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\Setup\Channels]

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\Setup\Channels\Spring 2021 dev toolset]
"channelUri"="\\\\new2019layoutserver\\share\\new2019layout\\ChannelManifest.json"
"Description"="Dev Tools based on VS 2019 16.11.Spring.2021 servicing baseline"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\Setup\Channels\Next gen dev tools using VS 2022 toolset]
"channelUri"="\\\\vs2022Layoutserver\\share\\2022Enterprise\\ChannelManifest.json"
"Description"="Developer Tools based on the VS 2022 17.0.Winter.2021 LSTC servicing baseline"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\Setup\DisabledChannels\Preview]
"channelUri"="https://aka.ms/vs/16/pre/channel"

Visual Studio IDE の通知を制御する

上述のとおり、Visual Studio はそのインストール元である場所 (ネットワーク共有やインターネットなど) で更新プログラムが利用できないか確認します。 更新プログラムが利用可能になると、Visual Studio では、ユーザーへの通知としてウィンドウの右下隅に通知アイコンが表示されます。

Visual Studio IDE にある通知アイコン

エンド ユーザーに更新プログラムを通知したくない場合は、通知を無効にすることができます。 (たとえば、中央のソフトウェア配布メカニズムを使用して更新プログラムを提供する場合、通知を無効にしたい場合があります。)

Visual Studio 2019 はプライベート レジストリにレジストリ エントリを保存するので、そのレジストリを通常の方法で直接編集することはできません。 ただし、Visual Studio には vsregedit.exe ユーティリティが含まれます。これを利用し、Visual Studio 設定を変更できます。 次のコマンドで通知をオフにできます。

vsregedit.exe set "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise" HKCU ExtensionManager AutomaticallyCheckForUpdates2Override dword 0

次のコマンドで通知をオンに戻すことができます。

vsregedit.exe set "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise" HKCU ExtensionManager AutomaticallyCheckForUpdates2Override dword 1

既定の動作に戻すには、次のコマンドで値を削除することもできます。

vsregedit.exe remove "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise" HKCU ExtensionManager AutomaticallyCheckForUpdates2Override

コマンドを実行して Visual Studio の設定を変更したら、Visual Studio を起動します。 既に実行中である Visual Studio インスタンスの動作は、Visual Studio をシャットダウンして再起動するまで変更されません。 もう 1 つのオプションとして、設定が有効になるようにコンピューターを再起動することができます。

次のコマンドで設定を確認できます。

vsregedit.exe read "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise" HKCU ExtensionManager AutomaticallyCheckForUpdates2Override dword

値が存在しない場合 (既定の状態) は、上記のコマンドにより、値の読み取りに失敗したことが示されます。 値を設定すると、上記のコマンドでは Visual Studio 構成の値が反映されます (0 か 1、または設定されている任意の値が示されます。予期される値は 0 か 1 だけです)。

Visual Studio 2022 はプライベート レジストリにレジストリ エントリを保存するので、そのレジストリを通常の方法で直接編集することはできません。 ただし、Visual Studio には vsregedit.exe ユーティリティが含まれます。これを利用し、Visual Studio 設定を変更できます。 次のコマンドで通知をオフにできます。

vsregedit.exe set "C:\Program Files\Microsoft Visual Studio\2022\Enterprise" HKCU ExtensionManager AutomaticallyCheckForUpdates2Override dword 0

次のコマンドで通知をオンに戻すことができます。

vsregedit.exe set "C:\Program Files\Microsoft Visual Studio\2022\Enterprise" HKCU ExtensionManager AutomaticallyCheckForUpdates2Override dword 1

既定の動作に戻すには、次のコマンドで値を削除することもできます。

vsregedit.exe remove "c:\Program Files\Microsoft Visual Studio\2022\Enterprise" HKCU ExtensionManager AutomaticallyCheckForUpdates2Override

コマンドを実行して Visual Studio の設定を変更したら、Visual Studio を起動します。 既に実行中である Visual Studio インスタンスの動作は、Visual Studio をシャットダウンして再起動するまで変更されません。 もう 1 つのオプションとして、設定が有効になるようにコンピューターを再起動することができます。

次のコマンドで設定を確認できます。

vsregedit.exe read "c:\Program Files\Microsoft Visual Studio\2022\Enterprise" HKCU ExtensionManager AutomaticallyCheckForUpdates2Override dword

値が存在しない場合 (既定の状態) は、上記のコマンドにより、値の読み取りに失敗したことが示されます。 値を設定すると、上記のコマンドでは Visual Studio 構成の値が反映されます (0 か 1、または設定されている任意の値が示されます。予期される値は 0 か 1 だけです)。

(編集したいインストール済みのインスタンスと一致するようにディレクトリを置き換えてください。)

ヒント

vswhere.exe を利用し、クライアント ワークステーションで特定のインスタンスの Visual Studio を見つけます。

サポートまたはトラブルシューティング

ときには、問題が発生してしまうことがあります。 Visual Studio のインストールが失敗した場合は、「Visual Studio のインストールとアップグレードの問題のトラブルシューティング」に記載されているステップ バイ ステップ ガイドをご覧ください。

他のいくつかのサポート オプションを次に示します。