schtasksコマンドでスケジュールを登録する(その2)

そうこうしながら、既に何時間も経過してしまった。
やばい、このままいくと空が明るくなってしまう。

パス名に空白を含んだ場合にschtasksコマンドで正しくタスクが登録できない問題をそろそろあきらめて寝ようとしたとき。
そのとき「これだ!」ってページにヒットしてしまった。


http://aij.blog80.fc2.com/blog-entry-627.html
・aij[beta] パス名のエスケープ


そうそう、「エスケープ文字」だよ。
特殊な文字を表現するために、さらに特殊記号を付加するやつ。
今回はダブルクォーテーションを区切り文字ではなく、文字列として扱いたかったからまさにこれ。
\"(円記号にダブルクォーテーション)が、まさにダブルクォーテーションを現すわけだ。

だからダブルクォーテーションで囲んだパス名について、"の前に\"を入れればダブルクォーテーションで囲まれたパス名がschtasksに渡されるはず。

(写真8)パス名をエスケープ文字で表現してschtasksでタスクを登録
パス名をエスケープ文字で表現してschtasksでタスクを登録
正常にタスクスケジュールが登録されている。
画面上はエスケープ文字が表示されていて、やや不思議な感じ。

(写真9)パス名をエスケープ文字で表現してschtasksで登録したタスク
パス名をエスケープ文字で表現してschtasksで登録したタスク
しかしタスクのプロパティを表示させると、ダブルクォーテーションで囲まれたパス名がバッチリ設定されている。

今回使用したコマンドはこれ。
schtasks /create /tn TEST14 /tr \""C:\Program Files\Bat\TEST.bat\"" /sc weekly /d sat,sun /st 03:00:00 /ru Administrator /rp パスワード

登録したタスクを右クリックして「タスクの実行」をすると正常に実行された。
これで疑問が解決したよ。
さて寝るとするか。もう4時が近くなってきたし。


ajiさんのブログの記事のおかげで僕の疑問は解決しました。
ありがとう、ajiさん。

ついでにエスケープ文字についてはこちらを参考にしました。


http://www.tohoho-web.com/js/string.htm#Escape
・とほほのJavaScriptリファレンス > 文字列(String) > エスケープ文字

schtasksコマンドでスケジュールを登録する(その1)

Windows NTやWindows 2000でスケジュールを登録するのはatコマンドだったが、これは使いにくかった。
Windows XPやWindows Server 2003でスケジュールの登録や削除を行うコマンドとして、新たにschtasksが提供されている。
今まで使う機会が無かったのだが、今回ちょっとしたことで使ってみる事になった。

<登録> schtasks /create
<変更> schtasks /change
<削除> schtasks /delete
<一覧> schtasks /query
<実行> schtasks /run
<停止> schtasks /end

詳しくはそれぞれのヘルプを参照のこと。(schtasks /create /? など)

早速Windows XP Professional SP2で登録のテストをしてみる。
いくつかの参考になるサイトを見ると、実行パスに空白が含まれているときに問題が発生するとの情報が出ているので、それを確認したい。
そのため同じバッチファイルを2ヶ所に保存して試してみる事にした。
・D:\Temp\TEST.bat
・C:\Program Files\Bat\TEST.bat

それら2つのバッチファイルをGUIで手動で登録し、またschtasksコマンドでもスケジュール登録してみる。
つまり登録されたスケジュールは以下の4つになる。
・タスク名:TEST01 - D:\Temp\TEST.batを手動でスケジュール登録
・タスク名:TEST02 - D:\Temp\TEST.batをschtasksでスケジュール登録
・タスク名:TEST11 - C:\Program Files\Bat\TEST.batを手動でスケジュール登録
・タスク名:TEST12 - C:\Program Files\Bat\TEST.batをschtasksでスケジュール登録

(写真1)schtasks /createによりスケジュールを登録した
schtasks /createによりスケジュールを登録した
実行するバッチファイルのパスに空白が含まれていても、登録は正常にできる。
もちろんパス名に空白を含まない場合も問題なし。

(写真2)登録された4つのスケジュール
登録された4つのスケジュール
TEST01とTEST11はタスクスケジューラのGUIにより手動で登録。
TEST02とTEST12はschtasks /createによりバッチで登録。

(写真3)登録したタスクを実行してみた
登録したタスクを実行してみた
TEST01、TEST02、TEST11は正常に実行できる。
しかしTEST12は「開始できませんでした」となる。
TEST12はschtasks /create で"C:\Progra~1\Bat\TEST.bat"を登録したパターンだ。

(写真4)TEST01とTEST02のプロパティ画面
TEST01とTEST02のプロパティ画面
GUIによる手動登録もschtasksコマンドによる登録も同じように見える。

(写真5)TEST11とTEST12のプロパティ画面
TEST11とTEST12のプロパティ画面
おやおや、これは確かに違うな。
途中に空白が含まれているのに、schtasksで登録したTEST12の「実行するファイル名」ではパスがダブルクォーテーションで囲まれていない。

(写真6)試しに短いファイル名を使ってschtasksで登録してみる
試しに短いファイル名を使ってschtasksで登録してみる
~(チルダ)を使った8.3形式の短いファイル名は最近ではすっかり見かけないよなあ。
その短い形式を使ってもschtasksコマンドで登録できた。

(写真7)短いファイル名で登録したタスクは正常に実行された
短いファイル名で登録したタスクは正常に実行された
短いファイル名の形式で登録したタスクは正常に実行された。
これでいいっちゃあいいんだけど、なんだかかっこ悪いしスマートではない。

何で素直にダブルクォーテーション付きでパス名が登録されないんだろう。
schtasks /createでタスクを登録するときに、コマンドラインからはダブルクォーテーションで囲まれた内側の文字列が渡されるんだろうね。


気を取り直して、コマンドのサンプル。
schtasks /create /tn TEST12 /tr "C:\Program Files\Bat\TEST.bat" /sc weekly /d sat,sun /st 03:00:00 /ru Administrator /rp パスワード

schtasks /createのオプション。
/tn タスク名
/tr タスクのパス
/sc スケジュールの種類(日、週、月、1回だけ、コンピュータ起動時、ログオン時など)
/d タスクを実行する曜日または日を指定(/scがweeklyの場合、mon,tue,wed,thu,fri,sat,sun)
/st タスクを実行する時刻をhh:mm:ssで指定
/ru タスクを実行するユーザ名
/rp タスクを実行するユーザのパスワード


http://support.microsoft.com/kb/814596/ja
・[HOWTO] Windows Server 2003 で Schtasks.exe を使用してタスクをスケジュールする方法
http://technet2.microsoft.com/WindowsServer/ja/library/1d284efa-9d11-46c2-a8ef-87b297c68d171041.mspx?mfr=true
・Microsoft TechNet > Windows Server TechCenter > Schtasks



同じような事で悩んでいる人もちらほら。


http://www.google.co.jp/search?q=schtasks+%2Fcreate+%83p%83X+%8B%F3%94%92
・schtasks /create パス 空白 - Google 検索

テスト中

全ての記事を表示する

ブロとも申請フォーム

ブログ検索
プロフィール

norimaki2000

norimaki2000のブログにようこそ
・2013/01/05テンプレートをsantaからhouseに変更
・2012/10/29テンプレートをsweet_donutsからsantaに変更
Follow norimaki2000 on Twitter気軽に話しかけてね

ニューヨーク・マンハッタン(タイムズスクェア)180×135

千葉県在住で東京都内に勤務。SE歴20年超えました。

昔々はオフコンで販売管理などのアプリケーション開発していた。
ファミリーレストランの無線オーダリングやPOS、キッチンプリンタの全国展開なんかもやっていました。
最近はWindowsサーバーとVMware vSphereを中心としたサーバーインフラの提案・構築・保守を中心にやってます。
主な取り扱い製品は、
・Windows 2000 Server以降 (もちろんNT3.5やNT4.0も知っていますが)
・Active Directory (今で言うAD DS)
・Symantec Backup Exec
・Symantec System Recovery
・CA ARCserve Backup for Windows
・CA ARCserve Replication
・CA ARCserve D2D
・EMC RepliStor
・VMware vSphere
・某メーカーのクラスタソフトウェア

どれもこれも中途半端な知識と技術力ですが、なんとかやっています。
私自身は技術や製品を担当する立場ではなく、特定業種のお客さん(ユーザ企業)の対応窓口となるSEの役割りですから、必要であれば詳しい知識や経験豊富な別のSEを探してきてプロジェクトメンバに加えます。

もちろん小さな物件では自分で提案、インストール、お客さんへの導入、アフターサポートまでやります。
大きな物件では提案はやりますが、構築部分は専門部隊に依頼します。
その場合でもアフターサポート窓口は私がやりますので、お客さんに対しては一貫して窓口SEとなります。

サーバの世界の大きなトレンドは統合・仮想化。
2007年はVirtual Server 2005 R2によるサーバ仮想化も、2つのお客さんで本稼動させた。
2008年はVMware ESX 3.5を2セット構築。単純なローカル起動と、SANブート/VMotion/DRS/HA/VCBのフル装備もやった。
2009年はぜひHyper-Vの仮想環境を構築したいな。と思っていたが、なかなか機会に恵まれなかった。
2010年はVMware ESX 4.0でHA/VMotion/VCBバックアップを進行中。

そのほかにも、ドメインコントローラやファイルサーバの全国展開とデータ移行、特定のアプリケーションの実行基盤となるサーバ群のOS・バックアップ・DBクラスタなどインフラ部分の構築などをやっています。


2011年のポイントも引き続き、【ご利用は計画的に】。
今まで長年に渡って仕事も私生活も行き当たりばったりなので、少しでも物事を計画的に進められるようにしたい。
いつも計画性の無さが災いして多くの人に迷惑をかけています。
自分自身も計画的な仕事ができないため、いつもいろいろ苦労しています。
今年はさらに計画的に仕事をするようにしなきゃ。

それと若手を上手に使うようにならなきゃならん。
若手の育成はもちろんだけど、僕自身も仕事を上手に他の人に振ることができるようになりたい。
仕事の種類のせいなのか性格なのか、どうしても一人で抱え込んでしまうから。

【Twitter】2010年の元旦から始めました。平均して1日あたり10ツィート程度です。
仕事関連の呟きが少し、くだらない呟きがほとんどかな。
Follow norimaki2000 on Twitter
・norimaki2000 on Twitter

Follow norimaki2000 on Twitter
・norimaki2000 on Twilog


オンライン上ではあるけれど、今まで知らなかった人たちと交流する機会を得ることになり、非常に刺激を受けます。
仕事でも私生活でも、いろんな人のつぶやきは息抜きにもなり、また助けられたり、あるいは「もっとがんばんなきゃ」と励みになったりします。
Twitterを考え出した人の発想、システムとして作り上げた努力と情熱はすごい!!


【好きな音楽】ベテランの皆さんなら浜田省吾、尾崎豊、エコーズ、若手なら鬼束ちひろ、平原綾香、現在注目の若手はいきものがかり

【好きなアイドル】千葉県柏市を中心に活動する地元アイドルの「コズミック☆倶楽部」を激推し中です。

【好きな飲み物】シャンパンはご存知モエ・エ・シャンドン ブリュット アンペリアル、ビールはキリン ブラウマイスター、水ならビッテル、お茶ならキリン生茶

【好きなTVドラマ】Xファイル、24、ミレニアム、ER、CSI:科学捜査班シリーズ、NCIS:ネイビー犯罪捜査班、ザ・プラクティス、ボストン・リーガル



パソコン困り事相談もよろしく


最近の記事
最近のコメント
カレンダー
06 | 2019/07 | 08
- 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 - - -
カテゴリー
FC2カウンター
キーワード

Windows_Server VMware_ESX VMware vCenter_Server PowerShell VMware_Player PowerCLI vSphere_Client VirtualCenter Active_Directory vStorage_API Converter 文音 コズミック☆倶楽部 Windows Hyper-V Microsoft_Security_Essentials あいひょん なるみん Windows_8 vSphere VMware_Converter Backup_Exec カラオケ sora Red_Hat_Enterprise_Linux System_Center Windows_Server_2012 SQL_Server VCB Tech_Fielders 麗美 VMware_vSphere メモリダンプ RHEL System_Recovery ARCserve_Backup ESX remi Internet_Explorer Oracle Server Exec Symantec マークス ジン子 vMotion Firefox Backup Directory Active VMware_HA DMC-FZ1000 vSphere_CLI エミリースタイラー SE Emily_Styler Vista NTFS 若手 氷結 Recovery キリン schtasks DRS XenServer 路上ライブ  System Windows_Update sonoka Oracle_Database vCenter_Converter Office コズミック倶楽部 Sysinternals Twitter wevtutil Visual_Studio ハワイ コマンドライン corega 0x0000007B カーナビ 糖質 神戸 一番搾り食物繊維 ついにステップワゴンを契約してしまった 東京国際フォーラム サクセス スパークリングウォーター ブラックホーク・ダウン ATAPI おやつカンパニー コロン セキュリティ 2008 スパリゾートハワイアンズ スタローン エイドリアン バルボア ロッキー 白石美帆 破損 修復 圧縮 オレッツァ ベビースター おとなのおつまみ シャンプー台のむこうに 経済産業省 えびしお カルディ 洗車 カーポート 高原 伊藤園 バーベキュー グレープフルーツ 雨どい マッハ 東京タワー ウォーター 人口甘味料 鬼押し出し園 サーバ  羽田 夏休み 万座温泉 草津 キャンプ 映画 掃除 グランダム フィット 関西空港 ワイヤーアクション 洗濯 デュポン ポケモン・スタンプラリー スリムス サッポロ のどごし生 セルシオ お茶のチューハイ ムエタイ 写真 北野 ジョシュ・ハートネット 日本赤十字社 献血 けんけつちゃん はばたき福祉事業団 ラガー USB2.0 VMware_ESXi IP38X/N500 NVR500 AWS Linux 浜田省吾 GR5 HUAWEI OneDrive robocopy Windows_Azure グループポリシー SkyDrive vStorag_API Apache OpenOffice iStorage バッチ Tween れみ Paper.li こずくら イチトキ 加藤成実 -ayane- つりあやめ Wataru_Sato シンガーソングライター REAN エミリー・スタイラー コズミック☆LOVE Intel wbadmin Windows_Serverバックアップ Panasonic LUMIX Windows_Server_2016 vSphere_Web_Client FZ1000 Virtual_Infrastructure バックアップ NetBackup NR-7900A Kit IZZE OREZZA PC-Success Resource Replication PCI IDE Hyperion CDRW-AB24JL CD CAB CG CR-V Gathers DVD CoolMax SAP STOPエラー ITIL DSP OEM ジャンプフェスタ OpenOffice.org ARCserve_D2D ARCserve_Replication VMFS ULPC XP Thunderbird SweetGrass SUPPLEX Tools USB Word Uptime.exe 佐藤航 Brio 

月別アーカイブ
リンク
RSSフィード