タスクスケジューラを PowerShell で管理してみる。<Register 編 其の二>

タスクの実行ユーザーを定義するコマンドレットは、" New-ScheduledTaskPrincipal " ですが、これも実行結果を変数に格納します。

ローカルユーザー「u002」により、ログオンしていない時でもタスクを実行したい場合のコマンドレットは以下のようになります。

$User = New-ScheduledTaskPrincipal -UserId u002 -LogonType Password

※ ローカル セキュリティ ポリシー の「ユーザー権利の割り当て」により、「u002」に対して「バッチジョブによりログオン」の権利を割り当てておかないと、実際にタスクを実行することはできません。

※ ここでは入力しませんが、この「u002」というユーザーのパスワードは、名前と同じ「u002」だとしておきます。

 

タスクの実行内容を定義するコマンドレットは、" New-ScheduledTaskAction " です。

E ドライブ直下にあるスクリプトファイル「script.ps1」を実行する場合のコマンドレットは以下のようになります。

$Act = New-ScheduledTaskAction -Execute powershell.exe -Argument E:¥script.ps1

 

続きを読む

タスクスケジューラを PowerShell で管理してみる。<Register 編 其の一>

このRegister 編では、新規のタスクをPowerShell で作成します。

タスク作成のコマンドレットは " Register-ScheduledTask " なのですが、これを実行する前に、他のコマンドレットをいくつも実行しておく必要があります。

 

TechNetの下記URLで、ページ下部にこのコマンドレットの例文が紹介されています。

http://technet.microsoft.com/en-us/library/jj649811.aspx

これによると、先に " New-ScheduledTaskTrigger " というコマンドレットを使ってタスクの実行タイミングを定義し、それを変数に格納しています。

そして最後に実行する " Register-ScheduledTask " で、" -Trigger " というオプションにその変数を投入しています。

(正直言って、大変回りくどいと思います。)

 

続きを読む

ARP エントリを追加してみよう。

今年も残すところあと一ヶ月となりましたので、IP アドレスと MAC アドレスを紐付ける「ARP テーブル」に、手動でエントリを追加する方法を整理してみました。

どれも CUI です。

少なくとも Windows の機能としては、GUI で行う方法は無いようです。

 

 

 

◆ ARP コマンド

" ARP -s [宛先 IP アドレス] [宛先 MAC アドレス] [登録する NIC の IP アドレス] "

おそらくもっとも古くからある手法ではないでしょうか。

Windows XP SP3 でも、Windows 8.1 Update1 でも使用できることを確認しています。

三つ目のオプション [登録する NIC の IP アドレス] は必須ではありませんが、NIC が複数あるコンピューターでは、このオプションで指定してやらないとどの NIC に登録されるかわかりません。

(どうやら、ipconfig コマンドで一番上に表示される NIC に登録されるようなのですが、確証はありません。)

なお、このコマンドにより設定したエントリは OS をシャットダウンすることで揮発してしまいます。

エントリを恒久的に使用したい場合は、 スタートアップスクリプトとしてOS 起動時に実行する等の方法があります。

 

 

 

◆ netsh コマンド

" netsh interface ipv4 add neighbors [登録する NIC 名] [宛先 IP アドレス] [宛先 MAC アドレス] "

netsh コマンド自体は Windows XP にもありますが、こうやって APR エントリを追加することができるのは Windows Vista 以降です。

[登録する NIC 名] というのは、ipconfig を実行した時に「イーサネット アダプタ XXX:」として表示される「XXX」の部分です。

「ローカル エリア接続」のようにスペースを含んでいる場合は、ダブルクォーテーション記号「"」で前後を括ります。

arp コマンドと最も違うのは、デフォルトでは OS シャットダウン時に揮発しない点でしょう。

あえて揮発させたい場合は、" sotre=active " というオプションを付与します。

 

 

 

◆ New-NetNeighbor コマンドレット

" New-NetNeighbor -InterfaceAlias [登録する NIC 名] -IPAddress [宛先 IP アドレス] -LinkLayerAddress [宛先 MAC アドレス(ハイフン無し)] "

これだけコマンドではなく PowerShell です。

Windows 8 や Windows Server 2012 以降で使えるようになった、「NetTCPIP」モジュールに含まれています。

前述の二つのコマンドと違って、MAC アドレスを二桁ずつハイフン記号「-」で区切ってはいけません。

デフォルトでは OS シャットダウン時に揮発ないので、あえて揮発させたい場合は、" -PolicySotre ActiveStore " というオプションを付与します。