6回目、vSphereをPowerShellで操作するときのTips
Powershellのお悩み1
LinuxのRSHみたいにリモートからスクリプトの実行はできないのでしょうか?
回答
できます。
実行するためにはいくつか事前準備が必要となります。
※Windows Server 2012R2で検証
サーバー側(スクリプトを送り込まれて実行するマシン)
Enable-PSRemoting を実行してYesで抜ける
Set-ExecutionPolicy Remotesigned にする
クライアント側(スクリプトを送り込むマシン)
Enable-PSRemoting を実行してYesで抜ける
Set-ExecutionPolicy Remotesigned にする
あとWindows girewallの許可が必要ですが、Enable-PSRemotingで勝手に穴が開くはずです。
ネットワーク機器側の設定は必要です。
Invoke-Command -ComputerName SERVER1 -Credential SERVER1\user10 -FilePath C:\Temp\Script.ps1 -ArgumentList "Arg1"
クライアント側のC:\Temp\Script.ps1がSERVER1で実行されます。
Invoke-Commandはサーバーの中にあるファイルも実行できます。
また、Administrators権限のあるユーザーを指定した場合は管理者として実行と同じ状態になるようなので
IPアドレス変更やホスト名変更など、ちょっと厄介なスクリプトも動きます。
Powershellのお悩み2
Grep的なコマンドは無いのでしょうか?
回答
どうやるんだっけ?と頭をひねってしまうけど、初歩的コマンドです。
Select-Stringというコマンドでできます。
例えばnetstat -anの結果のうちLISTENINGになってる部分だけ欲しい時は下記のように書きます。
netstat -an | Select-String LISTENING
正規表現も使えます
netstat -an | Select-String -pattern ".ISTENING"
aliasを使えばgrepとして呼び出せます。
Set-Alias grep Select-String
netstat -an | grep LISTENING