付録A.4 実行可能ファイルの実行権限についての注意事項
Windows(x86) COBOL2002 02-00以降またはWindows(x64) COBOL2002で作成したアプリケーションは,標準権限,管理者権限のどちらでも実行できます。
ただし,アプリケーションを実行する場合の実行権限について,次の注意事項があります。
-
COBOLプログラムからCALL文またはCBLEXECサービスルーチンで実行可能ファイルを実行する場合は,呼び出し元と同じ権限で実行します。例えば,標準権限のアプリケーションから管理者権限のアプリケーション(実行可能ファイル)をCALL文で呼び出した場合,KCCC0137R-Sのメッセージが出力され,システムから返されたエラー番号に740(管理者権限のないユーザから呼び出された)が示されます。このとき,プログラム互換性アシスタント(PCA)に登録され,再度実行した場合はエラーにならない場合があります※。ただし,プログラム互換性アシスタント(PCA)に登録された標準権限のアプリケーションから管理者権限のアプリケーションの呼び出しをCOBOL2002では保証しません。
-
ISAMによる索引ファイル入出力機能を使用する場合,管理者権限で実行してください。セキュリティ上の問題で管理者権限で実行できない場合は,コントロールパネルの[管理ツール]から[ローカルセキュリティポリシー]を使用して,標準権限にグローバルオブジェクトの作成権限を追加したユーザで実行してください。
- 注※
-
Windows Server 2008,およびWindows Server 2012では,プログラム互換性アシスタント(PCA)が自動的に回避策を適用する機能は無効となっていて,継続的にエラーとなることがあります。
アプリケーションの権限の設定方法,およびプログラム互換性アシスタント(PCA)については,各OSのヘルプなどを参照してください。
- 管理者権限を設定する例
-
実行可能ファイルのリンク時,-MANIFESTUACリンカオプションで実行可能ファイルのアクセス許可レベルの値を指定します。
ccbl2002 -Main,System test01.cbl -Link -MANIFESTUAC:level='requireAdministrator'