web-dev-qa-db-ja.com

Windows:コマンドラインからシステムのパス環境変数にプログラムを追加するにはどうすればよいですか?

多数のWindowsマシンで利用可能な%PATH%環境にディレクトリを永続的に追加したいと考えています。コマンドライン(cmd)からこれを行う方法はありますか?何十ものサーバーでGUIを使用する必要がなく、解決策をスクリプト化できます。

これを達成するにはどうすればよいですか?

6
HopelessN00b

これまでのところ、最も簡単な方法は、Windows 7/Server 2008以降に含まれている setx コマンドを使用するか、または- Windows Server 2003リソースキット XPおよびServer 2003システム用。

setxコマンドを使用して、%PATH%変数にまったく新しいディレクトリセットを指定するか、少し余分なロジックを使用して値を追加できます。 C:\stuffのディレクトリを%PATH%に追加したいとします。私は以下のようにします:

setx PATH "%PATH%、C:\ stuff"/M

これにより、現在のパスに,C:\stuffが現在の値で上書きされ、その後に,C:\stuffが追加されます。パス環境変数はカンマ区切りです。 /Mスイッチは、HKCU(現在のユーザー)レジストリハイブではなく、HKLM(システム全体)レジストリハイブを変更します。

これをログオン/起動スクリプトに投入するか、/sスイッチを使用してリモートサーバーをターゲットとして指定し、ワークステーションから変更を加えることができます。たとえば、以下はmydomainadminユーザーの資格情報を使用して、stuffディレクトリをmyserver.mydomain.com上のパスに追加します。

setx /s myserver.mydomain.com /u mydomain\mydomainadmin /p mypassword PATH "%PATH%,C:\stuff" /M

通常の資格が適用されます。主に、グローバル環境変数を変更すると、次回のログオン時のユーザーセッションにのみ影響し、次回のチェック時(通常は起動時)にのみ適用されるため、これをすべてに適用する最も簡単な方法です。サーバーを再起動することですが、変更が必要なユーザーまたはサービスが明確にわかっている場合は、中断を少なくして変更を適用することができます。

11
HopelessN00b

これまでのところ最も簡単な方法は、Windows 7/Server 2008以降に含まれている Group Policy Preferences Client Side Extensions 、(GPP)を使用するか、または- an update for XP and Server 2003 systems。

GPP設定を使用して、%PATH%変数でまったく新しいディレクトリセットを指定するか、「置換」するか、「作成」を使用して値を追加することができます アクション基本設定項目C:\scriptsのディレクトリを%PATH%に追加したいとします。私は以下のようにします:

PATH Properties

GPO summary

これにより、現在のC:\scripts%PATH%が追加されます。パス環境変数はセミコロンで区切られています。 GPOの[コンピューターの構成]セクションを使用すると、HKCU(現在のユーザー)レジストリハイブではなく、HKLM(システム全体)レジストリハイブが変更されます。

Not sure why I used find, but there it is

これを既存のGPOに投入するか、別のGPO=を使用して特定のワークステーション/ユーザーをターゲットにすることができます。たとえば、以下はスクリプトディレクトリをコンピューターISC-JSCOTTのパスにのみ追加します。

Please use groups instead of users or computers for filtering

通常の資格が適用されます。システム環境変数の変更は起動時にのみ有効になるため、これをすべてに適用する最も簡単な方法は再起動することです。

4
jscott

パスのヘルプが答えを与えます。 Y:>パス/?実行可能ファイルの検索パスを表示または設定します。

PATH [[drive:] path [; ...] [;%PATH%] PATH;

PATHと入力します。すべての検索パス設定をクリアし、cmd.exeに現在のディレクトリのみを検索するように指示します。現在のパスを表示するには、パラメーターなしでPATHと入力します。新しいパス設定に%PATH%を含めると、古いパスが新しい設定に追加されます。

実行するパス変数にc:\ stuffを追加するには:

パスc:\ stuff;%path%

1
Tomasz