記事
Megumi Kakechi · 2020年10月25日 4m read

ネットワーク共有フォルダ/ネットワークプリンタの参照方法

これはInterSystems FAQ サイトの記事です。

ネットワーク共有フォルダ/ネットワークプリンタにアクセスしたい場合、以下の2つの方法があります。

A. net use コマンドを使用する方法
B. IRISの起動ユーザを変更する方法

詳細は以下をご覧ください。

------------------------------------------------------------------------------------------
【方法A】net use コマンドを使用する方法
------------------------------------------------------------------------------------------

1) IRIS からネットワーク共有フォルダへのアクセスを許可する場合、以下のコマンドを実行するように SYSTEM^%ZSTART に記述します。

net use \\<サーバ>\<共有フォルダ> /user:<ユーザ名> <パスワード>

※^%ZSTART または従来の ^ZSTU は、ユーザのスタートルーチンです。


詳細は以下のページをご参照下さい。
^%ZSTART ルーチンと ^%ZSTOP ルーチンによる開始動作と停止動作のカスタマイズについて

※%ZSTART での記述ミスは IRISの起動不可になりますので、%ZSTARTの単体実行を確認するようにしてください。

また、%ZSTART ルーチンは、ネームスペース %SYS に新規に作成する必要があります。フォーマットは以下になります。

SYSTEM
 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 コマンドを使用して 変更します。

コマンドは次の通りです。

irisinstall setserviceusername <構成名> <起動ユーザ名> <パスワード>

具体的には、Windows のコマンドプロンプトを「管理者権限で」起動して以下のように実行します。
(ユーザ:username、パスワード:password を使う場合。構成名 IRIS とします)

cd C:\InterSystems\IRIS\bin    <-- install dir\bin に移動
irisinstall setserviceusername IRIS username password

 

<<注意1>>
【方法B】の場合も A と同様に、ターミナルでネットワーク共有フォルダにアクセスする場合は、事前にWindowsでネットワーク共有フォルダにアクセスしていることが条件になります。(Windowsログインユーザとセッションを共有しているため)


<<注意2>>
サービス起動ユーザをLOCAL_SYSTEMから変えると、権限が不足するためLarge Pageの使用(※)ができなくなります。
Windows上でのCaché共有メモリの割り当てについて

Large Pageを使用するためには、変更したアカウントに対して"メモリ内のページのロック" 特権を付与する必要があります。
“メモリ内のページのロック” 特権の付与は、ローカルセキュリティポリシー(secpol.msc)より実施します。

 

00
0 0 1 166
Log in or sign up to continue

記事を更新しました。

「irisinstall setserviceusername」コマンドでサービス起動ユーザをLOCAL_SYSTEMから変える場合、ユーザ権限が不足するため、共有メモリの割り当て時にLarge Page(ラージページ)の使用ができなくなるので注意が必要です。
記事の最後に <<注意2>> で追記しておりますのでご確認ください。