ネットワーク共有フォルダ/ネットワークプリンタの参照方法
これはInterSystems FAQ サイトの記事です。
ネットワーク共有フォルダ/ネットワークプリンタにアクセスしたい場合、以下の2つの方法があります。
A. net use コマンドを使用する方法
B. IRISの起動ユーザを変更する方法
詳細は以下をご覧ください。
------------------------------------------------------------------------------------------
【方法A】net use コマンドを使用する方法
------------------------------------------------------------------------------------------
1) IRIS からネットワーク共有フォルダへのアクセスを許可する場合、以下のコマンドを実行するように SYSTEM^%ZSTART に記述します。
※^%ZSTART または従来の ^ZSTU は、ユーザのスタートルーチンです。
詳細は以下のページをご参照下さい。
^%ZSTART ルーチンと ^%ZSTOP ルーチンによる開始動作と停止動作のカスタマイズについて
※%ZSTART での記述ミスは IRISの起動不可になりますので、%ZSTARTの単体実行を確認するようにしてください。
また、%ZSTART ルーチンは、ネームスペース %SYS に新規に作成する必要があります。フォーマットは以下になります。
Set st = $ZF(-100, "/shell", "net", "use", "\\share\public", "/user:username", "password")
Quit
2) %ZSTART ルーチンを保存+コンパイルしたら、 IRISを再起動します。
<< 注意 >>
ターミナルで実行する場合と、TelnetやJobコマンドで実行する場合では、ユーザ権限が異なります。
==========================================================
ターミナル:Windowsログインユーザ
Telnet/Job:IRISサービスの起動ユーザ(既定:LocalSystem)
==========================================================
ターミナルはWindowsログインユーザとセッションを共有しているため、事前にWindowsでネットワーク共有フォルダにアクセス済みであれば、IRISで何も設定しなくてもターミナルからのアクセスは可能です。
しかし、Telnet/Job(バックグラウンドジョブ全般※) はIRISサービスのログインユーザとセッションを共有するため、IRISサービスの起動ユーザで net use コマンドを実行する必要があります。
上で紹介しているように、^%ZSTART ルーチンで net use コマンドを実行することで、Telnet/Job でのアクセスも可能になります。
※ODBC/JDBC接続や、Webアプリケーションで動作するものも含む
----------------------------------------------------------------
【方法B】IRIS の起動ユーザを変更する方法
----------------------------------------------------------------
1) ユーザアカウントを決めます
IRIS のサーバとネットワーク共有をサービスしているサーバに、同じユーザ名/パスワードのアカウントを作成します。
※ユーザアカウントは、Windows Administrators グループのメンバである必要はありません。
2) irisinstall コマンドを使用して IRIS サービスのユーザアカウントを変更します。
IRIS サービスのユーザアカウントを変更するときは、従来のように
「Windowsコントロールパネル>管理ツール>サービス>IRIS Controller for XX」
からIRISサービスの起動ユーザを変更するのではなく、irisinstall コマンドを使用して 変更します。
コマンドは次の通りです。
具体的には、Windows のコマンドプロンプトを「管理者権限で」起動して以下のように実行します。
(ユーザ:username、パスワード:password を使う場合。構成名 IRIS とします)
irisinstall setserviceusername IRIS username password
<<注意1>>
【方法B】の場合も A と同様に、ターミナルでネットワーク共有フォルダにアクセスする場合は、事前にWindowsでネットワーク共有フォルダにアクセスしていることが条件になります。(Windowsログインユーザとセッションを共有しているため)
<<注意2>>
サービス起動ユーザをLOCAL_SYSTEMから変えると、権限が不足するためLarge Pageの使用(※)ができなくなります。
※Windows上でのCaché共有メモリの割り当てについて
Large Pageを使用するためには、変更したアカウントに対して"メモリ内のページのロック" 特権を付与する必要があります。
“メモリ内のページのロック” 特権の付与は、ローカルセキュリティポリシー(secpol.msc)より実施します。
Windows での Large Page の構成と権限については、以下のドキュメントもあわせてご覧ください。
Windows でのラージページの構成について