スクリプト一覧(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秒間停止
補足1 複数のスクリプトで構成するスクリプトファイルの中に挿入します。
直前のスクリプトの後に、このsleepスクリプトを挿入すると、 直後のスクリプトの実行開始を遅らせることができます。直前のスクリプトの実行に時間がかかるときに適用します。 スクリプトファイルの作成は、「パッケージへのスクリプトの挿入/編集」を参照ください。
補足2このsleepは、端末画面を消すスリープモードとは関係ありません。スクリプト実行を、少しの間、お休みするという意味です。
44.sleepex
説明次の行のスクリプト実行開始を、指定時間(ミリ秒)遅らせます。
構文sleepex <length> 
<length>は、次の行のスクリプト開始までの時間。単位はミリ秒。
サンプルsleepex 3500 
次の行のスクリプトの実行開始まで3.5秒間停止
補足1 複数のスクリプトで構成するスクリプトファイルの中に挿入します。
直前のスクリプトの後に、このsleepexスクリプトを挿入すると、 直後のスクリプトの実行開始を遅らせることができます。直前のスクリプトの実行に時間がかかるときに適用します。 スクリプトファイルの作成は、「パッケージへのスクリプトの挿入/編集」を参照ください。
補足2このsleepexは、端末画面を消すスリープモードとは関係ありません。スクリプト実行を、少しの間、お休みするという意味です。
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分経過で、 スクリプトの実行は停止されます。