タグ「バッチファイル」が付けられているもの

WordPressやMovableTypeで使っているブログ更新時のPING送信先が活きているか、PowerShellで簡単に調べるスクリプトを見つけたのでメモ。

ping送信先のテキストファイルを用意

例えば、以下のテキストをpinglist.txtという名前を付けて保存

google.co.jp
facebook.com
yahoo.co.jp

スクリプト作成

以下のスクリプトをメモ帳に貼り付け、先ほどのpinglist.txtと同じ階層にping.ps1といった感じで適当に.ps1の拡張子を付けて保存します。

echo pingを実行しています。しばらくお待ちください。

$date = Get-Date -Format _yyyy_MMdd_HHmmss
$target = Get-Content pinglist.txt

foreach ($item in $target) {
  ping $item >> pinglog$date.txt
  }

echo 結果を「pinglog$date.txt」に保存しました。

pause

スクリプト実行

スクリプトファイル(ping.ps1)を右クリックして「PowerShellで実行」をクリックするとスクリプトが実行されます。

 ↓

実行結果

実行結果は以下のような内容でスクリプトファイル(ping.ps1)と同じ階層に「pinglog_2016_1126_225217.txt」といったテキストファイルが作成されているので開いて確認できます。

これで、今後の確認作業が楽になりそうです。

Java Runtime Environment(JRE)をインストールする際、バージョンによっていろんなツールバーや、アプリケーションをインストールされそうになります。

そのオプションを必ず選択しないとインストールができないようになっていたりすることもありますが、コマンドラインからサイレントインストールするか、以下の方法で回避できることを知りました。

構成ファイルを作り、インストールファイルのパスにINSTALLCFG=**を付けて構成ファイルを指定してインストールする方法です。

例えば、ダウンロードしたjre-8u101-windows-i586.exeと以下のようなインストールのセッティングファイル(仮にinstall.cfgとして)をテキストエディタで作成し、Cドライブにjreというフォルダを作って置いたとします。

以下のコマンドをコマンドプロンプトで実行するだけ

C:\jre\jre-8u101-windows-i586.exe INSTALLCFG=C:\jre\install.cfg

インストール構成ファイルの内容 install.cfg(仮)

SPONSORS=Disable
REMOVEOUTOFDATEJRES=1 
  • SPONSORS=Disableの部分が余計なツールバーとかを無視する部分です。
  • REMOVEOUTOFDATEJRES=1は古いバージョンを削除します。

内容については以下を参考にしてください。

スクリーンショット

そして実行した画面はこちら↓

オプションを選択する画面が出てこないままインストールが完了しました!

全部指定するとき用にメモ

INSTALL_SILENT=Disable
INSTALLDIR=
STATIC=Disable
AUTO_UPDATE=Enable
WEB_JAVA=Enable
WEB_JAVA_SECURITY_LEVEL=VH
WEB_ANALYTICS=Disable
EULA=Enable
REBOOT=Disable
NOSTARTMENU=Disable
SPONSORS=Disable
REMOVEOUTOFDATEJRES=1

INSTALL_SILENT=Enableにしてサイレントインストールしたり、AUTO_UPDATE=Disableにして自動更新を無効にしたりもできるようです。

バッチファイル

繰り返しインストール作業をする場合のバッチファイルのメモ。

このバッチファイルとインストーラーと構成ファイルをセットにしておけば、どの階層に置いていても簡単に実行できます。

@echo off

echo.
echo ===============================================
echo Java Runtime Environmentをインストールをします。
echo ===============================================
echo.

rem ----- 環境変数 -----
set PARAMETER=jre-8u101-windows-i586.exe
set CONFIGFILE=install.cfg

rem ----- インストール -----
%~dp0%PARAMETER% INSTALLCFG=%~dp0%CONFIGFILE%

pause

exit

コマンドラインでインストールする方法はこちら↓

Javaをインストールするときに余計なオプションもインストールさせられるのが嫌なときはサイレントインストールするのがおすすめです。

例えば、Version 8 Update 101(JavaSetup8u101.exe)をCドライブにダウンロードしたとしたら、

C:\JavaSetup8u101.exe /s

と、ファイルパスの後ろに" /s"と付けてコマンドプロンプトで打つだけでOK。

これだけだと古いバージョンを残しつつ、新しいバージョンがインストールされてしまうので、インストールと同時に古いバージョンを削除する場合はREMOVEOUTOFDATEJRES=1を付けます。

C:\JavaSetup8u101.exe /s REMOVEOUTOFDATEJRES=1

他にも使えるオプションは以下を参照

ちなみに、何台もセットアップするときに楽になるバッチファイルはこれ。(Javaのインストーラーと同じ階層で使います。)

@echo off

echo.
echo =========================================================
echo Java Runtime Environmentのサイレントインストールをします。
echo =========================================================
echo.

pause

rem ----- 環境変数 -----
set PARAMETER=JavaSetup8u101.exe

rem ----- インストール -----
"%~dp0%PARAMETER%" /s REMOVEOUTOFDATEJRES=1

rem ----- バージョンの確認ページを開く -----
start https://java.com/ja/download/installed8.jsp

pause

exit

テキストエディタに上記のコードを貼り付け、『Javaインストール.bat』とか名前を付けて保存し、右クリック「管理者として実行」します。

オフライン版のインストーラーを使用する場合も同じく、ファイルパスの後ろに" /s"を付けるだけです。

構成ファイルを使用してインストールする方法はこちら↓

Windows7でInternet Explorer 9という環境で以下の警告が出ます。レジストリ「許可」を設定し、この警告がでないようにする方法があったのでメモ。コンピューター丸ごとではなく、ユーザー毎の設定になりますが...。

Internet Explorer セキュリティ Webサイトで、このプログラムを使ってWebコンテンツを開こうとしています

「今後、このプログラムに関する警告を表示しない」にチェックを入れて「許可する」を押しても、同じコンピューターでログオンするユーザーが違うと出てきます。

原因はKB2899516らしいのですが、セキュリティの関係上、削除はしないほうがよさそうです。

レジストリの場所

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Internet Explorer\Low Rights\ElevationPolicy\{****}

上記になかったらこちら↓

HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Low Right\ElevationPolicy\{****}

HKEY_LOCAL_MACHINEの場合はユーザー単位ではなくグローバル(コンピューター全体)に影響するようです。

IME 2010の場合の{****}の部分

{****}はOfficeアプリケーションによって決まっているようです。IME 2010の場合は以下のいずれかのようです。

  • {9CDE85F5-9233-4bf4-89CB-CC7B51BBAD8A}
  • {CF1E7C6B-B6CC-4AF8-84B9-86A7F6BDCA96}
  • {A52FD337-7C43-494f-9D47-68950F39708C}
  • {CE103198-9107-4D02-937E-F0D82826D68C}

[参考ページ] https://support.microsoft.com/ja-jp/kb/3112369

変更する値

上記のキーに「Policy」DWORD値「3」(許可する)に変更します。

[参考ページ] http://morokoshi.hateblo.jp/entry/2014/09/07/000000

[参考ページ] http://winveg.com/win/kb2899516-registry-ie-24-nov-2015/

バッチファイル

もし、Policyの値を「3」に変更するバッチファイルを作るとしたら以下のようになります。(HKEY_LOCAL_MACHINEの場合)

reg add "HKLM\SOFTWARE\Microsoft\Internet Explorer\Low Rights\ElevationPolicy\{9CDE85F5-9233-4bf4-89CB-CC7B51BBAD8A}" /v Policy /t REG_DWORD /d 3 /f

reg add "HKLM\SOFTWARE\Microsoft\Internet Explorer\Low Rights\ElevationPolicy\{CF1E7C6B-B6CC-4AF8-84B9-86A7F6BDCA96}" /v Policy /t REG_DWORD /d 3 /f

reg add "HKLM\SOFTWARE\Microsoft\Internet Explorer\Low Rights\ElevationPolicy\{A52FD337-7C43-494f-9D47-68950F39708C}" /v Policy /t REG_DWORD /d 3 /f

reg add "HKLM\SOFTWARE\Microsoft\Internet Explorer\Low Rights\ElevationPolicy\{CE103198-9107-4D02-937E-F0D82826D68C}" /v Policy /t REG_DWORD /d 3 /f

pause

Windows7以降だと標準でインターネット上のファイルをダウンロードすることができるコマンドがあるそうです。Linuxcurlwgetのようなもので、Windowsではbitsadmin.exeを指定することでできるとのこと。

BITSAdminはダウンロードまたはアップロードのジョブと進行状況の監視に使用できるコマンドラインツールだそうです。

書式

> bitsadmin.exe /transfer <ジョブ名> <リモートURL> <ダウンロード先>
  • <ジョブ名>は任意の文字列
  • <ダウンロード先>は保存するファイル名まで指定

> bitsadmin.exe /TRANSFER htmlget http://example.com/main.jpg c:\download/main.jpg

参考

応用

2016年6月現在で最新のWindows Update ClientKB3138612(Windows7 32bit用)をダウンロードしてインストールするまでのバッチコマンド

md c:\InstallKB

bitsadmin.exe /transfer htmlget https://download.microsoft.com/download/E/4/7/E47FB37E-7443-4047-91F7-16DDDCF2955C/Windows6.1-KB3138612-x86.msu c:\InstallKB\Windows6.1-KB3138612-x86.msu

wusa.exe c:\InstallKB\Windows6.1-KB3138612-x86.msu /extract:c:\InstallKB

pkgmgr.exe /n:c:\InstallKB\Windows6.1-KB3138612-x86.xml /quiet

rd /s /q c:\InstallKB

Windows7・Windows8/8.1からWindows10に自動でアップデートさせないためのメモ

削除する更新ファイル

「コントロール パネル」-「すべてのコントロール パネル項目」-「プログラムと機能」の画面の左にある『インストールされた更新プログラムを表示】からアンインストールできます。

特にKB3035583GWX.exe(画面右下のタスクバーの四角いWindowsマーク)は必ず削除

あとは正直、何の更新ファイルかよくわかりませんが、Windows10関連らしいのでついでに削除。

Windows7

Windows8/8.1

※削除しただけではWindows Updateでまた復活してきて自動でインストールされてしまうので、Windows Updateの更新ファイルの一覧に出てきた時点で右クリックして「非表示」を選択してください。非表示にすれば手動でインストールしない限り、自動でインストールされることはありません。

特定の更新ファイルを事前にインストールしないように指定する方法はありません。

ついでに削除&非表示にした方がいいかもしれない更新ファイル

レジストリでGWX.exeを無効にする

コマンドプロンプトで以下のコマンドを実行するとレジストリを登録できます。

reg add HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Gwx /v DisableGwx /t REG_DWORD /d 1 /f

グループポリシーでアップデートを無効にする

Tech TIPS:Windows UpdateによるWindows 10へのアップグレードを「ブロック」する方法 (1/2) - @ITによると、グループポリシーでアップデートをブロック(禁止)するためには以下の更新ファイルのいずれかが適用されていることが必要だそうです。

必要な更新ファイルのインストール

グループポリシーの設定

「コントロールパネル」の検索窓から「グループポリシーの編集」を検索するか、Windows+Rgpedit.mscを実行するとグループポリシーの画面が開きます。

  • [コンピューターの構成]
    • [管理用テンプレート]
    • [Windows コンポーネント]
    • [Windows Update]
    • [Turn off the upgrade to the latest version of Windows through Windows Update]
    • 値:[有効]

レジストリでアップグレードをブロックするコマンド

以下のコマンドをコマンドプロンプトで実行する。

reg add HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate /v DisableOSUpgrade /t REG_DWORD /d 1 /f

全部をバッチファイルで行う

Windows7(32bit)の場合、以下のコマンドを○○.batで実行すると、

  • 不要な更新ファイルの削除
  • 必要な更新ファイルのダウンロードとインストール
  • レジストリの登録
  • ダウンロードファイルとフォルダの削除

を全自動で一度に行えます。(グループポリシーの設定以外)

taskkill /im GWX.exe /f

wusa.exe /uninstall /kb:2952664 /quiet /norestart
wusa.exe /uninstall /kb:3021917 /quiet /norestart
wusa.exe /uninstall /kb:3035583 /quiet /norestart
wusa.exe /uninstall /kb:3138612 /quiet /norestart
wusa.exe /uninstall /kb:3095675 /quiet /norestart

rd /s /q "%windir%System32\GWX"

md c:\InstallKB

bitsadmin.exe /transfer htmlget https://download.microsoft.com/download/0/B/5/0B53EDAE-AB68-4FA6-95EC-6966AD0A16F6/Windows6.1-KB3083710-x86.msu c:\InstallKB\Windows6.1-KB3083710-x86.msu

wusa.exe c:\InstallKB\Windows6.1-KB3083710-x86.msu /extract:c:\InstallKB

pkgmgr.exe /n:c:\InstallKB\Windows6.1-KB3083710-v2-x86.xml /quiet

rd /s /q c:\InstallKB

reg add HKLM\SOFTWARE\Policies\Microsoft\Windows\Gwx /v DisableGwx /t REG_DWORD /d 00000001 /f

reg add HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate /v DisableOSUpgrade /t REG_DWORD /d 1 /f

原因がよくわからないのですが、Windows10を起動した際に「ネットワークドライブに再接続できませんでした。」とエラーが出て、マイコンピュータを開くと登録しているネットワークドライブに×が付いています。

コントロールパネル資格情報マネージャーWindows資格情報ネットワークドライブのユーザー名とパスワードをあらかじめ登録しておいた状態で以下のスクリプトを実行したらうまくいったのでメモ。

ちなみに管理者権限でログオンした状態で実行しています。ユーザー権限でログオンした場合は試していません。

NET USEコマンドをバッチファイルで実行

以下のコマンドをテキストエディタに貼り付けて○○.batで保存し、ダブルクリックして手動で実行するか、スタートアップやタスクスケジューラに登録して使います。

元々登録しているネットワークドライブを一度、/deleteで切断してドライブパスを割り当て再度接続します。

net use W: /delete
net use X: /delete
net use Y: /delete
net use Z: /delete
net use W: \\NAS\Video /persistent:YES
net use X: \\NAS\Music /persistent:YES
net use Y: \\NAS\Photo /persistent:YES
net use Z: \\NAS\Share /persistent:YES

とりあえず、これでうまくいきました。

ネットワークドライブにアクセスするためにはユーザー名とパスワードが必要なのですが、資格情報マネージャーにパスワードを登録しているからか、本来接続に必要な/user:○○とパスワードの記載を省略してもOKでした。

NET USEコマンド

VBスクリプトで実行

上記と同じような感じで、テキストエディタに貼り付けて○○.vbsで保存し、ダブルクリックして手動で実行するか、スタートアップやタスクスケジューラに登録して使います。

On Error Resume Next

'10秒遅延させる
WScript.sleep 10000

Set objWshNetwork = WScript.CreateObject("WScript.Network")

objWshNetwork.MapNetworkDrive "W:", "\\NAS\Video"
objWshNetwork.MapNetworkDrive "X:", "\\NASX\Music"
objWshNetwork.MapNetworkDrive "Y:", "\\NASX\Photo"
objWshNetwork.MapNetworkDrive "Z:", "\\NASX\Share"

Set objWshNetwork = Nothing

こちらもとりあえず、これでうまくいきました。

参考

関連

使用しているパソコン(Windows8.1)がなぜか毎回起動するとネットワークが接続されていない状態になるので、その度にデバイスマネージャーを開いてネットワークカードを無効・有効にしています。

毎回この作業をするのが面倒くさくなってきたので、簡単にできないかな?と調べたら特定のハードウェアをコマンドで操作するバッチファイルの作り方がありました。Windows Driver Kit (WDK) に含まれるdevcon.exeというものをコマンドで操作すればいいようです。

これを使えば、いろんなデバイスを必要な時だけ簡単にON・OFFができて便利そうです。

Windows Driver Kit (WDK)をインストール

まずはマイクロソフトの以下のページからWindows Driver Kit (WDK)をダウンロードしてインストールすることが必要です。今回の場合はWindows 8.1 Update用をダウンロードしました。インストールするとdevcon.exeC:\Program Files (x86)\Windows Kits\8.1\Tools\の中に32ビット・64ビット用がそれぞれ保存されています。

ハードウェアIDを調べる

ハードウェアを操作するためのバッチファイルでハードウェアIDが必要になりますので調べます。

  1. デバイスマネージャーで対象のハードウェアのプロパティを開く
  2. 「詳細」タブの「プロパティ」の欄をハードウェアIDにする
  3. 表示された値をコピーする

バッチファイルを作る

テキストエディタを開き、以下のようにコマンドを作成し、先ほどコピーしたハードウェアIDを貼り付けて、○○.batというように拡張子をbatにして保存します。

:: devcon.exeのパス(OSが64bitの場合)
@set DEVCON="C:\Program Files (x86)\Windows Kits\8.1\Tools\x64\devcon.exe"
 
:: ネットワークカードの無効と有効
:: Intel(R) 82578DC Gigabit Network Connection

%DEVCON% disable "PCI\VEN_8086&DEV_10F0&SUBSYS_00751B0A&REV_05"
%DEVCON% enable "PCI\VEN_8086&DEV_10F0&SUBSYS_00751B0A&REV_05"

管理者として実行

バッチファイルの実行は管理者として実行しないと有効に動作しません。

なので起動時や定期的に実行したい場合はスタートアップに登録するのではなくタスクスケジューラに登録し管理者権限で実行するように設定することが必要です。

その他参考

先日、サーバーのバックアップにWindowsでは最速と言われているFastCopyを使用して、毎日のバックアップをサーバーからNASへ同期バックアップさせるようにしました。(その時の記事)

毎日のことなので自動でバックアップできるようにバッチファイルを作成しました。

ログオンしている状態でちゃんと動くことが確認できたので、ログオンしなくても深夜に動作するようにタスクスケジューラに登録しました。

バックアップできていない...。

次の日にちゃんとバックアップが行われているかどうか確認したところ。ファイルが更新された形跡がなく、タスクスケジューラが実行中のままで、タスクマネージャーにプロセス残っている状態でした。バッチファイルは開始されているけど、NASにバックアップが行われていない...。

いろいろ検索してみると、ログオンしていないときはネットワーク上の共有フォルダに接続できていない状態なので、NASに到達できずバックアップに失敗しているとのこと。

net useコマンドを使う

net useコマンドであらかじめネットワーク上の共有フォルダに接続できるようです。

net use \\コンピューター名 /user:ワークグループ\ユーザー名 パスワード
net use \\192.168.1.10 /user:WORKGROUP\hoshiya abcd1234
net use \\NAS\Share /user:WORKGROUP\hoshiya abcd1234

上記のようなコマンドを追加すれば接続を開始できます。接続を切断する場合は以下のようになります。

net use \\192.168.1.10 /delete /Yes
net use * /delete /Yes

/Yesはネットワーク切断の時に切断していいですか?と聞かれて止まらないようにするものです。*はすべてを切断するときに使えるのですが、マイコンピュータに設定しているネットワークドライブまで切断されてしまうので、ネットワークドライブを使っている場合は*を使わずIPアドレスやコンピュータ名で直接指定して切断した方がよさそうです。

試しにタスクを実行

一旦、ログアウト(サインアウト)して、タスクマネージャで以下のバッチファイルを実行させてみました。

Set Path=C:\"Program Files"\FastCopy
net use \\NAS /user:WORKGROUP\hoshiya abcd1234
FastCopy.exe /cmd=sync /auto_close /log "D:\" /to="\\NAS\backup\d"
FastCopy.exe /cmd=sync /auto_close  /log "E:\" /to="\\NAS\backup\e"
net use \\NAS /delete /Yes

無事にネットワーク上の共有フォルダにバックアップがでできましたが...。

タスクが終了しない

/auto_closeを指定しているのにバックアップ終了後にタスクが残ったままになっていました。ログオンしていない状態での実行では/auto_closeを指定しても、終了しないようです。

taskkillコマンドを使ってみる

taskkillというコマンドを使えば実行中のタスクを終了させることができるそうです。

taskkill /F /IM FastCopy.exe /T

上記のコマンドをバッチファイルに追記したところ、うまくいきました。自分の場合はうまくいきましたが、タスクによってはタスクの優先順位が上でtaskkillが効かない場合があるそうです。taskkillのコマンドの使い方やパラメーターについては以下を参照してください。

できた!

以下のバッチファイル(backup.bat)でログオン(サインイン)せずにサーバーとNASでフォルダーの同期をすることができました。

Set Path=%PATH%;C:\;C:\"Program Files"\FastCopy
net use \\NAS /user:WORKGROUP\hoshiya abcd1234
FastCopy.exe /cmd=sync /auto_close /log "D:\" /to="\\NAS\backup\d"
FastCopy.exe /cmd=sync /auto_close  /log "E:\" /to="\\NAS\backup\e"
net use \\NAS /delete /Yes
taskkill /F /IM FastCopy.exe /T

会社に新しいサーバー(Windows 2012 Server)を導入したついでに、毎日のバックアップ方法を見なおそうと、いろいろなフリーソフトを試しましたが、「FastCopy」が圧倒的に速いです。

できればマイクロソフト系を使用したかったのですが、使い勝手が悪かったり、遅かったりしました。FastCopyがどのくらい速いのかは以下 が参考になります。

バックアップは遠隔地にあるNASに保存するため、ローカルとは違い転送速度が遅く、転送量が多いとバックアップに時間がかかりすぎて業務時間に食い込むので、早く終わるように速いソフトを探していました。実際に使ってみると速さを実感できます。とにかく速いです。

FastCopy

FastCopyIP Messengerの作者が同じで、32bit版と64bit版があり、GUIで使えるのはもちろんですが、コマンドプロンプトでも使えます。テキストエディタでコマンドをbackup.batなどバッチファイルを作成してタスクスケジューラに登録すれば自動バックアップもできます。

;書式例
"c:\FastCopy\FastCopy.exe" /オプション "コピー元" /to="コピー先"

ちなみに以下のバッチファイルで複数のフォルダをバックアップ先に連続で同期させています。サーバーのDドライブとEドライブを遠隔地のNASのバックアップフォルダに保存するというものです。

rem FastCopyでバックアップ
"C:\Program Files\FastCopy\fastcopy.exe" /cmd=sync /auto_close /estimate /no_confirm_del /bufsize=512 /log /exclude="$RECYCLE.BIN\;System Volume Information" "D:\" /to="\\NASS\backup\d"
"C:\Program Files\FastCopy\fastcopy.exe" /cmd=sync /auto_close /estimate /no_confirm_del /bufsize=512 /log /exclude="$RECYCLE.BIN\;System Volume Information" "E:\" /to="\\NASS\backup\e"

コマンドのオプションについては作者のホームページで確認してください。

GUIであらかじめ登録したジョブ名で実行することもできます。

rem FastCopyでバックアップ
"C:\Program Files\FastCopy\fastcopy.exe" /cmd=sync /auto_close /estimate /no_confirm_del /bufsize=512 /log /job="SERVER-D" /exclude="$RECYCLE.BIN\;System Volume Information"
"C:\Program Files\FastCopy\fastcopy.exe" /cmd=sync /auto_close /estimate /no_confirm_del /bufsize=512 /log /job="SERVER-E" /exclude="$RECYCLE.BIN\;System Volume Information"

ジョブ名は"C:\Users\ユーザー名\AppData\Roaming\FastCopy\FastCopy.ini"の中にtitle=の部分に記載されています。

[job_0]
 title="SERVER-D"
  :
  :  
[job_1]
title="SERVER-E"
  :

バッチファイルでFastCopyを実行している間はデスクトップ右下のタスクアイコンがクルクル回っています。そのアイコンをクリックすれば実行状況をGUIで確認できます。

タスクバーのFastCopyアイコン

ただし、GUIを開きっぱなしにしていると、/auto_closeを指定していても次のバックアップが始まりません。

ログは以下に保存されています。

C:\Users\ユーザー名\AppData\Roaming\FastCopy\FastCopy.log

 

バッチファイルのコマンドはこういう書き方もできるようです。

@echo off
rem --------------------------------------------------
rem FastCopyを利用したバックアップを実施する。
rem --------------------------------------------------

rem Fastcopyのパス
set fastcopy="C:\Program Files\FastCopy\FastCopy.exe"

rem ログファイル関連設定
set sourceLogFile="C:\Program Files\FastCopy\FastCopy.log"
rem yyyymmdd_backup.logとして移動する
set destLogFile=D:\backup_log\%date:~0,4%%date:~5,2%%date:~8,2%_backup.log

rem コピー元・先の設定
set sourceDir="C:\test_dir\" "C:\test_file.txt"
set destDir="D:\backup\"

rem Fastcopyで同期コピーを実施
%fastcopy% /cmd=sync /skip_empty_dir /force_close %sourceDir% /to=%destDir%

rem ログファイルを移動
move %sourceLogFile% %destLogFile%

タスクに登録してうまくいかなかったときは以下を参考にしてください。

Vistaのときもそうでしたが、Windows8でもなぜかインターネットに接続ができない状態で起動するということが頻繁に起こります。

 

そんなときは...

  • LANケーブルを抜き差ししてみる。
  • デバイスマネージャーでネットワークアダプターを無効にして有効に戻してみる。

といったことをすれば、インターネットがつながるようになります。

ただ、毎回はとても面倒です。

よって、バッチファイルの出番です。バッチファイルを管理者権限で実行すれば、コマンドプロンプト経由でネットワークアダプターの無効・有効を簡単に行ってくれます。

バッチファイルの作り方

バッチファイル

  1. メモ帳がワードパッドなど、テキストエディターを開く。
  2. 以下の2行を記述する。
        netsh interface set interface name="イーサネット" disable
        netsh interface set interface name="イーサネット" enabled
        
  3. 適当な名前に「.bat」を付けて保存します。(例:nic_reset.bat)
    「.txt」で保存して、あとから拡張子を「.bat」に変更してもOK。「.bat」はメモ帳で開けば編集できます。

今回はWindows8で試していますが、恐らくWindows7でもいけるはず。

バッチファイルの実行の仕方

右クリックして「管理者として実行」を選ぶ

  1. 上記のファイルを右クリックして「管理者として実行」を選ぶ

これだけで、一瞬コマンドプロンプトが表示され、すぐに消えます。そうするとデスクトップ右下のネットワークアイコンが、×から正常に変わります。

このバッチファイルの「set interface」というコマンドは管理者権限でないと実行できないようです。

バッチファイルに以下の1行を最初の行に挿入すれば、コマンドプロンプト上で管理者権限に昇格できるのですが、コマンドプロンプト上でパスワードを途中で求められ、パスワードなしではバッチ作業が中断されていまいます。(ここでのパスワードとはウィンドウズにログオンするときのパスワードのことを示します。)

  ruNAS /user:ユーザー名\administrator cmd

これでだめなら以下の方法もあります。

その他参考

Windows VistaやXPの場合は管理者権限でなくてもバッチファイルをダブルクリックするだけで行えます。その方法は以下を参考にしてください。

Windows Vistaだからなのか、起動したばかりなのに、ネットワークのアイコンが異常を示し、なぜかインターネットができないということがしばしばあります。

その都度、再起動を行うか、ネットワークアダプタのリセットを行っていましたが、作業が面倒になってきました。

そこで、ダブルクリックするだけで、ネットワークアダプタのリセットを行えるバッチファイルを作ってみました。

 

バッチファイルの作り方

作り方はとても簡単で、メモ帳に以下の記述をして、『reset.bat』など『.bat』と名前をつけて、デスクトップなどに保存するだけ。

netsh interface set interface "ローカル エリア接続" disable
netsh interface set interface "ローカル エリア接続" enabled

これをダブルクリックするだけでリセットできます。

reset.bat

これは、コマンドプロンプトでnetshコマンドを使用し、『ローカル エリア接続』という名前のついたインターフェースを一度無効にして、再度有効にするといった作業をバッチファイルで簡単に行うといったものです。これでアイコンも正常な状態を表示し、インターネットができるようなります。

 

ネットワークアイコンからリセットする方法

同じことをネットワークアイコンから行うことができます。この作業が面倒くさいのでバッチファイルバッチファイルを作ることに至りました。

  1. ネットワークの異常を示したアイコンを右クリックして『診断と修復』を選択
  2. 『"ローカル エリア接続" ネットワークアダプタのリセット』を選択。
  3. アイコンが正常を示す。

 

デバイスマネージャを使った方法

同じことをデバイスマネージャを使って、ネットワークアダプタの無効と有効を手動で行うことができます。

  1. コンピュータのアイコンを右クリックして『管理』を選び、『デバイスマネージャー』を選択。
  2. ネットワークアダプタを右クリックして『無効』にする。
  3. 『はい』を選択。
  4. アイコンが異常を示す。
  5. 再度、ネットワークアダプタを右クリックして『有効』にする
  6. アイコンが正常を示す。

 

以下のように他にもやり方はありますが省略します。

「コントーロールパネル」-「ネットワークと共有センター」-「ネットワーク接続の管理」から行う方法

「コントーロールパネル」-「ネットワークと共有センター」-「状態の表示」から行う方法

 

Windows7や8の場合

バッチファイルの記述や実行のしかたが少し変わりますので以下を参考にしてください。