2014年5月9日金曜日

WindowsServer2003のタスクスケジュールを2008に移行する

WindowsServer2003で運用中のシステムをWindowsServer2008に単純移行する案件にて、
タスクスケジュールが複数登録されていたため、一括移行できないか調べた際のメモ。

移行先が2012でも(多分)対応可能。


■前置き
1)2003では、タスクスケジュールは.jobファイルで保持されている。2008では、.xmlで保持されている。
2)単純に2003で取得した.jobを、2008でインポートしようとするとエラーになる。
3)運用中のタスクが多くある場合、いちいち手動登録していられない。


■参考
1)TechNet
http://social.technet.microsoft.com/Forums/en-US/55e5bded-5236-4440-9bed-10e9ed542874?forum=windowsserver2008ja

2)TechNetの回答でリンクがあった海外サイト
http://msmvps.com/blogs/it-is-etc/archive/2011/04/11/migrate-scheduled-tasks-from-2003-to-2008.aspx


■手順
※参考の2)にある手順で実施。

1)2008のマシンでコマンドプロンプトを開く。
2)下記コマンドを実行
 【schtasks /query /s 2003のIP /tn "タスク名" /XML > C:\temp\exp_task.xml】
3)出力されたxmlファイルを2008でインポート

※1)2)がエクスポートに該当


■補足
1)ユーザーアカウントは要注意。
2008側で先に作っておく必要がある。
また、2003と2008でマシン名が異なる場合なども同様。
※インポート時、OKボタンを選択した際にエラーになる。

2)別ドメインからのアクセスはエラーになる?
テスト環境で試した際、ドメインA参加のWindows7から、
ドメインB参加のWindowsServer2003に向けてコマンドを実行すると
「アクセスが拒否されました」のエラーになった。

そこで、ドメインB参加のWindowsServer2008からコマンド実行すると
問題なくxmlファイルが出力できた。

原因追及はしていない。しない。



いじょっ!

2014年2月12日水曜日

Windows用GREPバッチを作ってみた

いつもは秀丸さんでGREPしています。

今回、GREPしたい対象のファイル、及びそのレコード数が膨大にあったため、
レコード数上限やリソース消費などに不安があり、GREPバッチをサクッっと作ってみた。
自動化が目的ではないのでマクロはなし。

PATH通した場所にBATファイルを集めておくと楽ですよねー、と。


GREP.BAT
@ECHO OFF

SET TARGET_CHARACTOR=
SET TARGET_PATH=
SET TARGET_EXTENSION=
SET OUTPUT_FILE=


ECHO ----------------------------------------------------
ECHO GREP文字列
ECHO ----------------------------------------------------
set /p TARGET_CHARACTOR="%TARGET_CHARACTOR%"

ECHO ----------------------------------------------------
ECHO 対象ファイルパス(E:\XXX)
ECHO ※カレントの場合は「.」
ECHO ----------------------------------------------------
set /p TARGET_PATH="%TARGET_PATH%"

ECHO ----------------------------------------------------
ECHO 対象ファイル拡張子(*.XXX)
ECHO ----------------------------------------------------
set /p TARGET_EXTENSION="%TARGET_EXTENSION%"

ECHO ----------------------------------------------------
ECHO 出力ファイル(XXXXX.txt)
ECHO ----------------------------------------------------
set /p OUTPUT_FILE="%OUTPUT_FILE%"

findstr /s /i "%TARGET_CHARACTOR%" %TARGET_PATH%\*.%TARGET_EXTENSION% > .\%OUTPUT_FILE%.txt


PAUSE

2014年1月27日月曜日

常に管理者として実行する方法

「管理者として実行する」には、起動するファイルを右クリックして「管理者として実行する」を選択する必要があるが、正直面倒臭い。

常に「管理者として実行する」方法をメモ。


【やり方】
1)対象ファイルのショートカットを作成
2)ショートカットファイルで「プロパティ」を開く
3)「互換性」タブ
   → 「特権レベル」パネル
     → 「管理者としてこのプログラムを実行する」にチェックを入れる
4)3)が入力できない場合は、
  「ショートカット」タブ
   → 「詳細設定」ボタン
     → 表示されたウィンドウ内の「管理者として実行」にチェックを入れる


【例】
1)<省略>対象ファイルのショートカットを作成
2)<省略>ショートカットファイルで「プロパティ」を開く
3)「互換性」タブ
   → 「特権レベル」パネル
     → 「管理者としてこのプログラムを実行する」にチェックを入れる

  ※画像は選択できないケース




4)3)が入力できない場合は、
  「ショートカット」タブ
   → 「詳細設定」ボタン
     → 表示されたウィンドウ内の「管理者として実行」にチェックを入れる




で、ショートカットファイルをデスクトップやツールバーに入れておけば楽チン。