HQはPowerShellを用いて複数のPCをリモートで操作するためのGUIツールです
- PowerShellを管理者として起動、以下のコマンドを実行
Enable-PSRemoting
- PowerShellを管理者として起動し、以下のコマンドを実行
Set-Item WSMan:\localhost\Client\TrustedHosts -Value *
- ReleaseページからHQをダウンロード
- 解凍し、HQを起動(管理者権限が必要です)
- リモートPCのユーザ名、パスワードを入力
- Scriptsから使用するスクリプトを選んでクリック
- スクリプトにパラメータが必要な場合は入力
- IP List表に対象PCのIPを記入しチェック
- 実行ボタン(▶)でスクリプトを実行
- 画面下部の枠に出力が表示されます
正常終了時は☑[IPアドレス]:
のように表示されます
場所
.\*.ps1
.\Scripts\*.ps1
- 上記場所にファイルを置くことでユーザ独自のスクリプトを追加できます
- IP ListのIPごとにスクリプトが呼ばれます
$session
でリモートPCのPSSessionを受け取れますparam()
で指定したパラメータがHQ上で表示され編集できます
param($session,$localPath,$remotePath)
Copy-Item -ToSession $session -Path $localPath -Destination $remotePath
param($session, $process)
Invoke-Command $session -ScriptBlock {
param($process)
Stop-Process -Name $process
} -ArgumentList ($process)
対象となるPCのIPアドレスと、対象ごとのパラメータを記したデータ
HQ上で編集可能です
.\ipList.csv
に保存されます- 一行目はパラメータ名
- IPは範囲指定可(IPAddressRange)
192.168.10.10-20
192.168.0.10 - 192.168.10.2
- IP Listにないパラメータは
.\param.json
に保存されます - ユーザ名とパスワードも保存されます
パスワードは平文で保存されます。ipList.csv、param.jsonの取扱にご注意ください
IPListにUserName
、UserPassword
というパラメータを用意するとそちらが反映されます
IPListで複数のIPを指定している場合は同時実行するタスク数を制限することで回避できることがあります。 実行ボタン(▶)横のMaxTaskNumをIPListより少ない数にして試してみてください
- https://github.com/MaterialDesignInXAML/MaterialDesignInXamlToolkit - MaterialDesignInXamlToolkit
- https://github.com/jsakamoto/ipaddressrange - IPAddressRange
- https://www.newtonsoft.com/json - Json.NET
- https://github.com/Fody/Costura - Costura.Fody