Windows Vista以降では、管理者権限を持つアカウントでプログラムを実行しても、管理者権限でプログラムが実行されない場合があります。これは、ユーザアカウント制御(UAC)と呼ばれる機能が組み込まれているためです。UACの詳細は以下をご参照ください。
http://www.microsoft.com/japan/msdn/windowsvista/general/AppComp.aspx
対処方法
Windows Vista以降で、管理者権限でプログラムを実行する場合は、モジュールのマニフェストプロパティページで以下の設定を行ってください。
“2: 外部ファイル”または”3: 埋め込み”
“3: 管理者権限”
Windows Vista以降は、セキュリティが強化されているため、操作のいくつかは管理者権限が必要です。例えば、上記”アプリケーションマニフェストの生成”を”0: 生成しない(無視)”または”1: 生成しない(既存のマニフェストは削除)”にしてアプリケーションをビルドした場合、ファイルの出力先をC:\Windows配下またはC:\Program Files配下に割り当てても、ファイルは以下のフォルダに作成されます。なお、この場合も、プログラムは正常終了します。
C:\USERS\ユーザ名\AppData\Local\VirtualStore\Windows
C:\USERS\ユーザ名\AppData\Local\VirtualStore\Program Files
C:\Windows配下またはC:\Program Files配下にファイルを作成したい場合は、管理者権限で実行するように必ず設定してください。
例
USER01(管理者権限あり)
SYS001=C:\Windows\COBFILE.01
SYS002=C:\Program Files\COBFILE.02
SYS001 C:\Windows\COBFILE.01
SYS002 C:\Program Files\COBFILE.02
SYS001 C:\USERS\USER01\AppData\Local\VirtualStore\Windows\COBFILE.01
SYS002 C:\USERS\USER01\AppData\Local\VirtualStore\Program Files\COBFILE.02