ページの先頭行へ戻る
Systemwalker Centric Manager V17.0.3 使用手引書 資源配付機能編

2.2 スクリプトを配付する

ここでは、スクリプトの配付について説明します。

スクリプトとは、UNIXのシェルスクリプトおよびPCのバッチプログラムのことを指します。

注意

Windowsの64bit版OSに、32bit版の資源配付のサーバ機能または資源配付クライアントをインストールしている場合の注意事項

資源配付が実行する下記バッチファイルは32bitで動作します。

  • バッチ資源

  • 前処理バッチ/後処理バッチ

  • nstart.bat/ astart.bat

  • クライアントの資源配付正常スタートアップ/資源配付異常スタートアップに登録するバッチファイル

64bit版OSでバッチファイルが32bit版として動作することで、バッチファイルで使用するコマンドがエラーになる可能性があります。

バッチファイル作成時は、以下の「1. バッチファイルの動作確認」を行い、問題がある場合は「2. 対処」を実施してください。

  1. バッチファイルの動作確認

    32bit版のcmd.exe(コマンドプロンプト)上でバッチファイルの動作検証を実施します。

    32bit版のcmd.exe(コマンドプロンプト)は以下のモジュールです。

    %windir%\SysWOW64\cmd.exe

    例) C:\Windows\SysWOW64\cmd.exe


    バッチファイル内で実行しているOSコマンドが下記エラーで失敗する場合は、「2. 対処」に従い64bit版のOSコマンドを実行するようバッチファイルを修正してください。

    エラー1:
    「'<OSコマンド>' は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません。」

    例) msg.exe

    64bit版OSにはSystem32(64bit)のみが提供されているため、64bit版モジュールを実行する必要があります。

    エラー2:
    「対象となるシステムは 32 ビットの OS を実行している必要があります。」

    例) openfiles.exe

    64bit版OSにはSystem32(64bit)とSysWOW64(32bit)の両方が提供されていますが、32bit版モジュールは上記エラーとなり正常に動作しません。そのため、64bit版モジュールを実行する必要があります。

  2. 対処

    <OSコマンド>を以下のように記述することで、64bit版モジュールを実行できます。

    %windir%\Sysnative\<OSコマンド>


64bit環境と32bit環境が混在する場合

以下の条件a.~c.をすべて満たしている場合、下記環境変数でOSのbit数とバッチファイルが32bit版、64bit版のどちらで動作しているかを確認してコマンドを記述する必要があります。

  • 条件

    1. 使用しているOSおよび製品が32bit版と64bit版が混在している環境

    2. a.の環境で同一のバッチファイルを使用する

    3. 上記「1. バッチファイルの動作確認」でエラーが発生する

  • 環境変数

    • PROCESSOR_ARCHITECTURE

      "x86"の場合:32bit版 動作

      "x86"以外の場合:64bit版 OS

    • PROCESSOR_ARCHITEW6432:

      ""の場合:(ネイティブの)32bit版 OS

      ""でない場合:64bit版OS上の32bit版動作

上記確認結果が以下の例1、例2の場合、考慮は不要です。

確認結果が例3の場合は、上記「2.対処」の考慮が必要になります。

  • 例1:PROCESSOR_ARCHITECTUREが"x86"以外の場合

    OSは64bit版、バッチファイルは64bit版で動作します。

  • 例2:PROCESSOR_ARCHITECTUREが"x86"、かつ PROCESSOR_ARCHITEW6432が""の場合

    OSは32bit版、バッチファイルは32bit版で動作します。

  • 例3:PROCESSOR_ARCHITECTUREが"x86"、かつ PROCESSOR_ARCHITEW6432が""でない場合

    OSは64bit版、バッチファイルは32bit版で動作します。


OSを判定して正しいコマンドを実行するバッチファイルの例を、以下に示します。

echo off

if "%PROCESSOR_ARCHITECTURE%" == "x86" goto Wow6432

:64bit
echo 64bitOSで64bitとして動作
%windir%\system32\openfiles.exe /?
goto END

:Wow6432
echo Wow64 or 32bit OS
if "%PROCESSOR_ARCHITEW6432%" == "" goto 32bit

:Wow64
echo 64bitOSで32bitとして動作
%windir%\sysnative\openfiles.exe /?
goto END

:32bit
echo 32bitOSで32bitとして動作
%windir%\system32\openfiles.exe /?

:END