スクリプト一覧(Windows Classic)

MobiControl v14 Manual


MobiControlスクリプトを利用するシーン

  • Windows PCを、Windows Classicとして設定した場合、スクリプトコマンドを送ることで、PCの挙動を設定できます。 このスクリプトは、PCにインストールしたMobicontrolエージェントに対し、働きかけるものです。
  • Windows PCを、Windows Modernとして設定した場合は、MobiControlのスクリプトは適用できません。その替わり、 リモート画面操作のセッションで、Windowsのコマンドを入力します。 画面の左下の「ここに入力して検索」に、cmdと入力します。
次のシーンで、MobiControlスクリプトを利用することができます。
  • コマンド・プロンプト画面
    PCのコマンド・プロンプト画面をコンソールに表示し、コンソールからスクリプトを入力。PCからの反応が、対話型にコマンド・プロンプト画面に表示されます。
    リモート操作」のページの(図4)の「シェル」タブ(赤矢印)を選択すると、リモートPCのコマンドスクリプト画面がコンソールに表示されます。
    (この画面は、MobiControlエージェントのコマンドスクリプト画面であって、OSのWindowsのコマンドスクリプト画面ではありません)
  • コンソールからPCにスクリプトだけを送り、PCの挙動を指定します。「スクリプトを送る」のページに、 送信方法を示してあります。
  • パッケージにスクリプトを挿入して送る。パッケージに挿入するアプリがインストールされる前やインストールされた後にスクリプトを実行します。 スクリプトだけをパッケージに挿入することもできます。「パッケージにスクリプトを挿入」を参照ください。この場合、勤務時間でのスクリプトの実行を避け、指定日時に実行させることもできます。
  • ファイル同期ルールにスクリプトを挿入することができます。ファイルの同期の前、又は、後に実行させることができます。

Windows Classic PCでのMobiControlスクリプト・コマンド一覧

1.abortpkg
説明パッケージのインストールを中止し、コンソールのログに「Failed」を送る。パッケージの中の Pre-Installファイルに挿入するコマンド。 if 構文の後に、記述する場合が多い。
2.abortsync
説明ファイル同期プロセスを中止する。ファイル同期ルールのページの(図14)または (図24)を参照ください。この図の「ファイル同期の前に、実行するスクリプト」欄に挿入します。 if 構文の後に、記述する場合が多い。
3.attrib
説明ファイルの属性定数を表示する。またはファイルの属性定数を変更する。
構文

日本語のパス名やファイル名は、二重引用符 " " で囲う必要がある

attrib +R [ドライブ] [パス] [ファイル名] Read Only のファイルとして設定
attrib -R [ドライブ] [パス] [ファイル名] Read Only のファイル指定を解除
attrib +A [ドライブ] [パス] [ファイル名] Archiveファイルとして設定
attrib -A [ドライブ] [パス] [ファイル名] Archiveファイルとしての指定解除

Archiveファイルは前回のバックアップ以降に変更されたファイル

attrib +S [ドライブ] [パス] [ファイル名] Systemファイルとして設定
attrib -S [ドライブ] [パス] [ファイル名] Systemファイルとしての指定解除
attrib +H [ドライブ] [パス] [ファイル名] Hidden ファイル(隠しファイル)として設定
attrib -H [ドライブ] [パス] [ファイル名] Hidden ファイルとしての指定解除
サンプルattrib +A C:\Document\database_info.txt
4.cd
説明Directory(フォルダ)を変更
構文cd [変更先のディレクトリ名]
サンプルcd download
download という名前のディレクトリに、セッションを移す。
5.certimport
説明X.509形式の証明書をPCにインポートします。証明書はDER または Base64 のエンコードが必要。
構文certimport -cert "ファイルへのパス"

-stype "storagetype"

-storage "Storage"

サンプルcertimport -cert "test.cer" -stype "CSSLM" -storage "ROOT"
補足
  • "ファイルへのパス"は、絶対パス、相対パス、どちらでも可能
  • storagetypeには、次の変数のどれかを選択。PC機種に依ってはサポートしてない変数もある。
    • CSSCS =Current System Service Certificate Storage
    • CSSCU =Current User Certificate Storage
    • CSSCUGP =Current User Group Policy Certificate Storage
    • CSSLM =Local Machine Certificate Storage
    • CSSLME =Local Machine Enterprise Service Certificate Storage
    • CSSLMGP =Current System Service Certificate Storage
    • CSSS =System Service Certificate Storage
    • CSSU =User Certificate Storage
  • storageは、証明書の保存場所。PC機種に依ってはサポートしてない変数もある。
    • MY Personal User Certificate Storage
    • ROOT Root Certificate Storage
    • CA Certificate Authority Certificate Storage
    • Trust Trusted User Certificate Storage
    • SPC Software Publisher Certificate Storage
6.cls
説明画面消去
コマンド・プロンプト画面をクリアする。
7.copy
説明ファイルを、他のディレクトリ(フォルダ)へコピーさせる。
構文copy <ファイルのパスと名前> <コピー先フォルダ>
8.del
説明ファイルの削除
サンプル1del \storage\*.tmp 
storageという名前のフォルダ内で拡張子がtmpのファイルを全て削除
サンプル2del \storage\"菊 と 刀.pdf" 
全角文字列や空白があるファイル名は、二重引用符 " "で囲みます。
9.dir
説明ポインタのある現在のディレクトリ(フォルダ)の中の全てのファイルとサブフォルダの表示
補足コマンド・プロンプト画面」で使います。
10.echo
説明これから実行するスクリプトを、「コマンド・プロンプト画面」で、表示するか否かの指定。
サンプル1echo on
スクリプトの表示開始
サンプル2echo off
スクリプトの表示終了
サンプル1echo "errorlevelが9以上"
二重引用符 " "で囲った中のメッセージを 「コマンド・プロンプト画面」で表示
11.exit
説明端末画面のリモート操作を終了させます。「コマンド・プロンプト画面」で入力した時にのみ、有効です。
12.find
説明PCのポインタがあるディレクトリ(フォルダ)内のファイルの検索。「コマンド・プロンプト画面」で使います。
構文find /s

/s は、オプション。これを付けると、サブフォルダの中からも検索する。

サンプルfind /s *.txt
拡張子が .txt のファイルをサブフォルダも含めて検索する。
13.finishpkg
説明パッケージの展開を中止し、正常終了とする。if 構文の後に、挿入する。
14.goto
説明複数のスクリプトを順次にプロセス実施するのでなく、ジャンプして、ジャンプ先からプロセスを継続させる。
構文goto label
ここで、labelとは、スクリプト文につけたラベルを指す。ラベルは、コロン、つまり : から始まる文字列です。
サンプルcopy *.* C:\Document
goto next

. . . .
:next
現在のフォルダの全てのファイルを、\Document フォルダにコピーをし、それが終わったら、:next
のラベルが ついているスクリプトまでジャンプする。
補足if 構文と組み合わせると、巧妙なスクリプト群(バッチ)を作成できます。
15.help または ?
説明スクリプトのリストと、簡単な説明を英文で表示します。
補足コマンド・プロンプト画面」で使います。
16.if errorlevel
説明「errorlevel の数値が、XXであれば、・・・」の条件文を作成します。
補足errorlevelは、MobiControlエージェントが保持している変数。スクリプトが正常に実行できれば 0 をerrorlevel の変数として 返します。実行結果が非正常なら、その結果毎に、1以上の整数がerrorlevelの値として返します。
構文1if errorlevel [整数] <他のスクリプト>
「現在のerrorlevel が [整数] の値以上ならば、<他のスクリプト>を実行せよ」の意味。
構文2if not errorlevel [整数] <他のスクリプト>
「現在のerrorlevel が [整数] の値未満ならば、<他のスクリプト>を実行せよ」の意味。
サンプル1if errorlevel 0 if not errorlevel 1 goto next
「errorlevel が0以上で、1未満ならば (つまり、errorlevel = 0 ならば)、:next ラベルのついたプロセスにジャンプせよ」の意味。
サンプル2if errorlevel 9 echo "errorlevel が9以上"
「errorlevelが9以上ならば、errorlevel が9以上 と、プロンプトスクリプト画面に表示」の意味。
17.if %<環境変数>%==<文字列>
説明「<環境変数>の値が、<文字列>であれば、・・・」の条件文を作成します。
補足 環境変数に関しては、項番37の(表A)と(表B)を参照ください。
サンプル1if %carrier%==DoCoMo goto next
「carrier という環境変数の値が、DoCoMoならば、:next ラベルのついたプロセスにジャンプせよ」の意味。
サンプル2if not %carrier%==DoCoMo goto next
「carrier という環境変数の値が、DoCoMoでないならば、:next ラベルのついたプロセスにジャンプせよ」の意味。
18.if exist
説明「指定のフォルダやファイルが存在すれば・・・」の条件文を作成します。
構文1if exist <パスとファイル名> <他のスクリプト>
「<パスとファイル名> で指定したフォルダ、またはフォルダ+ファイル名が存在すれば、<他のスクリプト>を実行せよ」の意味。
構文2if not exist <パスとファイル名> <他のスクリプト>
「<パスとファイル名> で指定したフォルダ、またはフォルダ+ファイル名が存在しなければ、<他のスクリプト>を実行せよ」の意味。
19.if procexist
説明「指定のプログラムが実行中ならば、・・・」の条件文を作成します。
構文1if exist <プログラムファイル名> <他のスクリプト>
「<プログラムファイル名>で指定したプログラムが起動済みならば、<他のスクリプト>を実行せよ」の意味。
サンプル1if exist filesys.exe goto next
「filesys.exe というプログラムが起動済ならば、:next ラベルのついたプロセスにジャンプせよ」の意味。
構文2if not exist <プログラムファイル名> <他のスクリプト>
「<プログラムファイル名>で指定したプログラムが起動されてないならば、<他のスクリプト>を実行せよ」の意味。
サンプル2if not exist filesys.exe goto next
「filesys.exe というプログラムが起動されてないならば、:next ラベルのついたプロセスにジャンプせよ」の意味。
20.ipoctet
説明PCのIPアドレスのオクテットを指定する。192.168.100.34 だと、192が1番目のオクテット、168が2番目のオクテット。 このスクリプトは、他のスクリプトと組み合わせて使います。
構文ipoctet <IPアドレス> [整数]
サンプル1ipoctet 192.168.100.34 4
192.168.100.34の4番目のオクテットを指定。このサンプルだと、34
サンプル2ipoctet %IP% 4
%IP% は、MobiControlエージェントが管理している変数の1つで、PCの現在のIPアドレスを自動収集し、それを値としている。 仮に、PCの現在のIPアドレスが、192.168.100.34だと、%IP% の値も192.168.100.34。この場合、サンプル2は、サンプル1と同じ34を指定することになる。
補足次のように、他のスクリプトと組み合わせて使用します。
スクリプト例スクリプトの意味
set keyenceoctet=ipoctet %IP% 1keyenceoctetという環境変数を定義。現在のIPアドレスの1番目のオクテットを その値とする。
if %keyenceoctet%==192 finishpkgkeyenceoctetという環境変数の値が、192なら、現在実行しようとしているパッケージのインストールを中止
環境変数に関しては、項番37の(表A)と(表B)を参照ください。
21.kill <実行型式プログラムのファイル名>
説明現在、実行中のプロセスを中止させる
サンプルkill scanner.exe
現在実行中の プロセス scanner.exe を中止。
22.lockdevice <時間>
説明PCを指定した時間の間、ロック状態にする。時間は、分で指定する。最低は 1(分)。
サンプルlockdevice 2
PCを2分間ロック状態にする。
23.log -i "メッセージ"
説明コンソールのPC毎のイベントログのタブで開いた画面に、二重引用符の中のメッセージを送る。
サンプル if errorlevel 1
log -i "PCのerrorlevelが1以上になった"

リモートPCでの処理結果に基づくerrorlevelの値が1以上だったら、
コンソールのイベントログ欄に、"PCのerrorlevelが1以上になった"と表示する。
15項の if errorlevel を参照ください。
24.mkdir または、md
説明新しいサブフォルダを作成
サンプルmd work
現在のディレクトリの傘下に、workという名前のサブフォルダを作成する。
25.move
説明ファイルを、他のディレクトリ(フォルダ)へ移動させる。
構文move <ファイルのパスと名前> <移動先フォルダ>
26.pause
説明PCユーザがどれかのキー入力をするまで、スクリプトの実行を中断させる。
サンプル showmessagebox "スクリプトを進めてよければOKを押してください" NO_TIMER 1
pause

"スクリプトを進めてよければOKを押してください"のメッセージをPC画面に表示し、PCユーザが画面のOKボタン、またはキーボードのどれかのキーを押したら、 スクリプトの実行を再開。
27.ps
説明現在、起動中のプロセスのリストを画面表示します。「コマンド・プロンプト画面」のセッションで使います。
28.regdelkey
説明PCのレジストリから指定のキーを削除する。
構文regdelkey <レジストリとキー>
サンプル regdelkey HKEY_CLASSES_ROOT\.2bp
29.regdelval
説明PCのレジストリから指定のValueを削除する。
構文regdelval <レジストリ名> <Value名>
サンプル regdelval HKEY_CURRENT_USER\Start\Test
30.regload
説明REGファイルをPCにインポートする。
構文regload <インポート元>
サンプル regload C:\Document\App01.reg
コマンド・プロンプト画面」のセッションで、コンソールPCのDocumentフォルダの中にある App01.reg をリモートPCのREGファイルとしてインポート
31.regsave -[A|U]
説明レジストリをコンソールPCにエキスポートし保存する。
-A はファイルのエンコードが ANSI
-U はファイルのエンコードが UNICODE
構文regsave <エキスポート先パスとファイル名> subtree
サンプル regsave -U C:\Document\HKLM.reg HKEY_LOCAL_MACHINE
PCのHKEY_LOCAL_MACHINE subtree をコンソールPCのDocumentフォルダの中に、HKLM.reg というファイルに保存する。 エンコードは UNICODE
補足コマンド・プロンプト画面」のセッションで使用する。
32.regset
説明レジストリにキーまたはVlueを追加する。
構文regset <レジストリのキー名> <レジストリのValue>
サンプル1 regset HKEY_LOCAL_MACHINE\software\apps newkey
newkeyという名前のキーを追加
サンプル1 regset HKEY_LOCAL_MACHINE\software\apps newkey
newkeyという名前のキーを追加
サンプル2 regset HKEY_LOCAL_MACHINE\software\apps\newkey dataword2
dataword2という名前のvalueを追加
33.rem または ;
説明remark文の始まり。スクリプトのバッチファイルに挿入。スクリプトの説明のために挿入。
構文regset <レジストリのキー名> <レジストリのValue>
サンプル

rem "2019年 5月 1日"
; "scanner.cab ver3.1 のパッケージ挿入"

34.rename
説明ポインタのあるフォルダ(ディレクトリ)の傘下のファイルまたはサブフォルダの名前の変更
サンプルrename userwork.txt userwork_old.txt
userwork.txt というファイルのファイル名を、userwork_old.txtに変更。
補足rename の実行後は、9項のdir を入力して、 名前が正しく変わっているかどうかをチェックしましょう。
35.replacetext
説明ファイルの中の文字列を置換
構文replacetext <パスとファイル名> <置換前文字列> <置換後文字列>
サンプルreplacetext "document\userwork.txt" "Classic" "Modern"
documentフォルダの中のuserwork.txt というファイルの中の Classicという文字列を、Modernに置換
補足置換後文字列を指定しないでおくと、置換前文字列が削除できます
36.reset
説明PCをリセットします。
サンプルreset /s /delay 10 
10秒後にSoft Reset
構文reset /<switch> /delay<秒>  
  • reset  
    Soft Reset。PC電源を落とさずに再起動。リモートコントロール状態なら、リモートコントロールを停止する。
  • reset /s 
    Soft Reset。PC電源を落とさずに再起動。リモートコントロール状態なら、リモートコントロールを停止する。
  • reset /w 
    工場出荷後に保存した内部ストレージの全ファイルを削除。但し、不揮発性フォルダは除く。
  • reset /e 
    工場出荷後に保存した(内部/外部ストレージの)全ファイルを削除。但し、不揮発性フォルダは除く。

/delay<秒> の指定がない場合は、5秒後(デフォルト)に実施

補足エージェントの作成と配布準備」のページの(図10)の「不揮発性ストレージフォルダ」の行に、 当該PCの不揮発性フォルダ名が表示されています。MobiControlエージェントは、ここに保存されます。 パッケージもオプション指定すれば、このフォルダに保存されます。
37.rmdir またはrd
説明フォルダを削除する。
構文rmdir [/S] <パス> 
<パス>は、対象フォルダまでのパス。 スィッチ /s はオプション。/s を付けるとサブフォルダも削除される。
サンプルrmdir /s %sdcard%/temp 
SDカード内の、フォルダ temp の中の全ファイルを削除
38.set
説明コマンド・プロンプト画面」のセッションでsetだけを入力すると、 定義されている全ての環境変数と、その各々の現在の値のリストを表示します。
環境変数は、setスクリプトを使って定義します。(表A)で、work1 という名前の環境変数の定義の方法を示します。6種類あります。

(表A)

A.直接定義
サンプルset work1=Hello
説明Helloの5文字を、環境変数work1の値とする
B.Textファイルの中の文字列
サンプルset work1=TXT://policy.txt?LN=5
説明policy.txtファイルの5行目の文字列を、環境変数work1の値とする
C.レジストリファイルの中のキーの値
サンプルset work1=REG://HKEY_LOCAL_MACHINE\Program?VN=Platform
説明レジストリファイルの中のPlatformというキーの値を、環境変数の値とする
D.INIファイルの中のセクションの値
サンプルset work1=INI://setting.ini?SC=Config&NM=Option
説明INIファイルの中のoptionの値を、環境変数の値とする
E.指定のプログラムの終了出力コード(Exit Code)
サンプルset work1=EXE://scansystem /o
説明scansystem /o というプログラムを終了させた際に得られた終了出力コードを、環境変数の値とする
F.標準出力(STDOUT)の値
サンプルset work1=STDOUT://checkmessage
説明checkmessageというプログラムを起動させたときに出力(画面表示)した値を、環境変数の値とする
環境変数は、echo、if、log、showmessageboxなどのスクリプトと組み合わせて使います。

(表B)

項番組み合わせの例使途
10 echo "XXXの値は %<環境変数>% です" echo "メッセージ"スクリプトの、"メッセージ"の中に挿入し、当該環境変数の値を表示する。
コマンド・プロンプト画面」のセッションで使用する。
17 if %<環境変数>%==<文字列> スクリプトのバッチファイルの中で、プロセスの分岐に使う
23 log -i "結果は、%<環境変数>% でした" 二重引用符の中の文字列を、コンソールのイベントログに表示する。この際、<環境変数> の値を表示する。
42showmessagebox "XXXの値は %<環境変数>% です"PC画面にポップアップ表示されるメッセージの中に挿入し 値を表示する。
39.set <環境変数>++ [数字]
説明環境変数の値が数値の場合、その数値に、[数字]を加える
40.set <環境変数>-- [数字]
説明環境変数の値が数値の場合、その数値に、[数字]を減じる
41.shellexecute
説明Windows Shellscript Fileを実行する
構文shellexecute <パスとShellscriptファイル名> -verb -w数字
引数 -verb は、ファイルに課するアクション
引数 -w数字 (オプション)は、実行までの待ち時間(単位は秒)
サンプル shellexecute 1:\temp\temp.upg -open
shellexecute 1:\temp\temp.upg -run -w5
42.showmessagebox
説明PC画面にメッセージを表示する。

コンソールから端末に、今すぐメッセージを送るには、「端末へメッセージを送る」を参照ください。 但し、「指定日時にメッセージを送信する」には、以下のスクリプトをパッケージに挿入して送信ください。
構文showmessagebox "message" [timeout] [type]

[timeout] [type] はオプション。
"message"表示させるべきメッセージ。二重引用符 "が必要
[timeout]メッセージの表示を継続する時間を秒数を単位で記述。記述しないと、10秒間で画面表示が終了。
NO_TIMER と記述するとPCユーザが消すまで表示継続。
[type] メッセージ・ボックスのタイプを規定。1 2 3 4 5 のどれかの数字を入力。
冒頭タイトルユーザが押すボタン
1情報「OK」
2質問「はい」と「いいえ」
3警告OK
4質問「OK」と「キャンセル」
5エラー「OK」
PCに表示されるメッセージの冒頭タイトルのアイコンに4種類があります。
情報
警告
質問
エラー
サンプル1showmessagebox "在庫検索アプリのバージョンアップをしました" NO_TIMER 1 
「OK」ボタンが表示され、PCユーザがタップするまで表示継続
サンプル2showmessagebox "今からバージョンアップを開始します" 120 1
「OK」ボタンが表示され、PCユーザがタップするまで表示継続。 PCユーザがタップしないと、120秒後に表示終了。
サンプル3showmessagebox "今からバージョンアップを開始します"
「OK」ボタンが表示されない。10秒後に表示終了。
ユーザの反応PCユーザが押す「OK」=IDOK、「はい」=IDYES、「いいえ」=IDNO、「キャンセル」=IDCANCEL の値は、環境変数 %ShowMessageBoxReturn%に保存されます。
  • 次のスクリプトでは、PCユーザの反応を、コンソールのイベントログに送ります。
    showmessagebox "在庫検索アプリを本日使いましたか?" NO_TIMER 2
    log -i "%PERSONALIZED_DEVICE_NAME%は、在庫管理アプリを、 %ShowMessageBoxReturn% した"
  • 次のスクリプトでは、PCユーザが「はい」を押すと、アプリ(search.exe)を強制中止します。
    showmessagebox "ハングアップしていますか?" NO_TIMER 2
    if %ShowMessageBoxReturn%==IDYES kill search.exe
補足 メッセージの中に、MobiControlエージェントが把握している次のような、マクロ文字列(環境変数)を挿入できます。
  • %MODEL%
    PCのモデル番号を表示
  • %PERSONALIZED_DEVICE_NAME%
    PCの名前を表示
  • %ENROLLEDUSER_USERNAME%
    Active DirectoryでのPCユーザの名前を表示
43.sleep
説明画面表示を消す。複数のスクリプトと一緒に使う。単独で使うことはない。
構文sleep <length> 
<length>は、画面オフになるまでの時間。単位は秒。
サンプルsleep 10 
10秒間後、画面オフになる
44.sleepex
説明画面表示を消す。複数のスクリプトと一緒に使う。単独で使うことはない。
構文shutdown <length> 
<length>は、画面オフになるまでの時間。単位ミリ秒。
サンプルsleep 3500 
3.5秒間後、画面オフ
45.start
説明PCの特定アプリを起動する。
構文 start /wait <パスと実行型式アプリのファイル名>

/waitは、オプション。
次のスクリプトが実行されるまで、当該アプリの起動を保留する。

サンプルstart /wait 1:\program\apps\scanner.exe
46.turnoff
説明PCの電源をオフにする。電源オフにするまでの時間を、ミリ秒単位で設定。
構文 turnoff <time>
サンプルturnoff 3500
3.5秒後に電源をオフにする
47.type
説明テキストファイルのコンテンツを画面に表示する
構文 type <パスとファイル名>
サンプルtype 1:\ProgramStore\posti.cmd
48.writeprivateprofstring Device DeviceName
説明PCの名前を変更
構文writeprivateprofstring Device DeviceName <新しいPC名>
サンプルwriteprivateprofstring Device DeviceName kyoto_shop001
補足コンソールで、該当PCを選びPCに働きかけるの「名前変更」を選択することでも、PCの名前を変更できます。
ご留意
構文誤りなどで、スクリプトセッションがハングアップした場合は、スクリプト実行開始から5分経過で、 スクリプトの実行は停止されます。