Open棟梁Project - マイクロソフト系技術情報 Wiki
「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。

-[[戻る>Windows OSの基礎的トピック]]

* 目次 [#y89d4d49]
#contents

*概要 [#s9d474fd]
以下の方法がある
-[[レジストリを使用する方法>レジストリの設定方法]]
-Win32APIを使用する方法
-WMIを使用する方法
-[[Microsoft Windows Installer]]を使用する方法

*詳細 [#t00b702f]

**SET、SETX [#f0c35ab8]
SET、SETXがあるので、コチラも注意する

***SET [#gc2f6a42]
SETコマンドで設定した変数の値は、
-そのコマンドプロンプト内(およびそこから起動したプロセス)でのみ有効
-別のプロセスやユーザからは参照できないし、変更することもできない。

***SETX [#s3889fbc]
SETXコマンドで設定した変数の値は、
-既定ではユーザー環境変数(レジストリ)に設定される。
-環境変数設定なので、読み込みにはプロセスの再起動が必要になる。
-システム環境変数を設定するには、管理者実行で/mオプションを使用する。
-削除には、レジストリ直接編集が必要になる(のが(Linuxユーザからすると)?らしい。

***例 [#ee1536e2]
-[[プロキシの設定方法>プロキシの設定方法#v7ca57cc]]
-[[.NET for Apache Sparkチュートリアル]]
-[[AWS CLI>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?AWS%20CLI]]

**REG_SZ、REG_EXPAND_SZ [#gbf21b3b]
REG_SZ、REG_EXPAND_SZ の扱いを誤ると壊すので注意。
-データ型
-レジストリ
-.NET Framework
-説明

***REG_SZ [#d64ab625]
-文字列値
-REG_SZ
-System.String
-nullで終わる Unicode文字列値

***REG_EXPAND_SZ [#t85da0ca]
-展開可能な文字列値
-REG_EXPAND_SZ
-System.String
-環境変数(例えば「%USERNAME%」や「%SystemRoot%」など)を含むnullで終わるUnicode文字列|

**システム / ユーザ環境変数 [#v4a3637b]
同じ変数があった場合、

***システム環境変数 [#md8df017]
全ユーザから参照可能。

***ユーザ環境変数(優先) [#s9cc32be]
当該ユーザから参照可能。

*参考 [#s1e3c6fe]
-宇宙仮面のC# Programming 4.環境変数を扱う4つの方法 
-@IT:.NET TIPS レジストリの値のデータ型を判別するには? - C# VB.NET~
http://www.atmarkit.co.jp/fdotnet/dotnettips/120regtype/regtype.html

-Windows環境変数の設定に「SETX」コマンドを使ってはいけない理由 - Qiita~
https://qiita.com/jeyei/items/05ce2739501832463b3b

-宇宙仮面のC# Programming 4.環境変数を扱う4つの方法~
http://uchukamen.com/Programming/Environment/#SEC4
--System.Environmentを使用する方法
--レジストリを使用する方法
--Platform SDK を使用する方法
--WMI を使用する方法
---wmicコマンドでシステムの構成を設定/変更する - @IT~
http://www.atmarkit.co.jp/fwin2k/win2ktips/1017wmicset/wmicset.html
---Hey, Scripting Guy!  スクリプトを使用して環境変数を作成することはできますか~
https://gallery.technet.microsoft.com/scriptcenter/ccbee961-06d7-4a01-85dd-a607fecd463a

環境変数あれこれ  re-Think things
 https://togarasi.wordpress.com/2011/12/30/%E7%92%B0%E5%A2%83%E5%A4%89%E6%95%B0%E3%81%82%E3%82%8C%E3%81%93%E3%82%8C/
-環境変数あれこれ  re-Think things~
https://togarasi.wordpress.com/2011/12/30/%E7%92%B0%E5%A2%83%E5%A4%89%E6%95%B0%E3%81%82%E3%82%8C%E3%81%93%E3%82%8C/
--GetEnvironmentVariable() と SetEnvironmentVariable() ですが、
---これらは、プロセス内で有効な環境ブロックに アクセスするための API であり、
---レジストリにエントリーされている環境変数の値を参照/設定するものではありません。 
--レジストリで環境変数を変更した場合ですが、ユーザーは一旦 Windows からログオフしてから、 再度、ログオンすることで確実に更新/変更されますが、~
一部のアプリケーションは、特定のウィンドウメッセージ (WM_SETTINGCHANGE)を受信すると、再度、環境ブロックを読みだします。
--EXPANDの件
---環境変数内には、% で囲まれている文字列があったりしますが、これは~
ExpandEnvironmentStrings() を使うことで 展開できます。
---GetEnvironmentVariable() を使って環境変数を参照する際には、~
% で囲まれている部分は展開されたものが返ってきます。
---REG_EXPAND_SZ レジストリに書き込む方法~
http://support.microsoft.com/kb/271733/ja

 Hey, Scripting Guy!  スクリプトを使用して環境変数を作成することはできますか
 https://gallery.technet.microsoft.com/scriptcenter/ccbee961-06d7-4a01-85dd-a607fecd463a
 wmicコマンドでシステムの構成を設定/変更する - @IT
 http://www.atmarkit.co.jp/fwin2k/win2ktips/1017wmicset/wmicset.html
----
Tags: [[:Windows]]

 REG_EXPAND_SZ レジストリに書き込む方法
 http://support.microsoft.com/kb/271733/ja


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS