string root = System.Environment.GetEnvironmentVariable("ROOT").
Visual Studio ルートからプログラムを起動すると、予想されるディレクトリになります。ただし、自分で起動する場合 (管理者権限の有無にかかわらず)、root は未定義です。
結果をログ ファイルに書き込むと、次のようになります。
Visual Studio から起動:
ログ開始
ルート ディレクトリにアクセスしています ....
自分で起動します:
ログ開始
ルートが定義されていません! ……
編集: この環境変数は、「HKEY_LOCAL_MACHINE\System\Control\Session Manager\Environment」で定義されています。
プロンプトに SET と入力すると表示されます。[コンピューター] -> [プロパティ] -> [詳細設定] から環境変数にアクセスしても表示されません。
プログラムは同じ設定を持つマシンで動作することになっているため、ユーザーは変数自体を定義しません (プログラムが環境にアクセスできるようになります)。