Powershellで遠隔操作
VNCの限界
会社には100台以上のPCがある。 プリンターの入替や社員へのPCサポートで遠隔操作する必要がある。
そこで数年掛かりでVNCを導入していった。 現在ほぼ全てのPCにUltraVNCを常駐させている。
社員へのPCサポートでは威力を発揮するのはいいのだが、 何か作業をする時に社員からPCの操作を奪う必要がある。 社員の PCの操作を奪わず に作業をしたい。
- プロセスをkill
- yumやapt-getを使ってソフトをインストール
- CUPSを弄ってプリンターをインストール
なんてことができる。
社員のPCの操作を奪う必要もない。
そんなことがWindowsでできるだろうか?
PowershellはProcessをkillするのも難しくない。
Powershellで遠隔で繋ぎに行ければ、最強なんだけどな。
Powershellで遠隔操作
Enable-PSRemotingが使えるもログインできない
Enable-PSRemotingという機能を使えば、 Powershellで遠隔ログインが可能になるようだ。
下記サイトには具体的にログイン方法まで書いてあったのだが、 パスワードなしのアカウントだらけなので、 こいつは使えない。
パスワードなしでも接続できるようにする
パスワードなしでも接続できる方法が欲しい。
と検索をかけていると下記のサイトに方法を発見した。
Powershellでレジストリーを下記のように弄った。
Set-ItemProperty HKLM:\SYSTEM\CurrentControlSet\Control\Lsa -name LimitBlankPasswordUse -Value 0
パスワードなしのアカウントで Windows XP Professionalにリモートデスクトップ接続する - ブログ - ワルブリックス株式会社
Private networkとwork networkのみにする
それでも接続できない。
下記のネットワークだけにしておく必要がある。
- 「 プライベートネットワーク (Private network)」
- 「 社内ネットワーク (Work network)」
僕のクライアントにはVirtualBoxが作った「認識されないネットワーク」があったので
下記のサイトを参考に社内ネットワークに変更した。
- コントロールパネル」-「システムとセキュリティー」-「管理ツール」を開く
- ローカル セキュリティー ポリシー」を実行
- 左側のペインから「ネットワーク リスト マネージャー ポリシー」を選択
- 右側のネットワークの場所から「識別されていないネットワーク」を選択しダブルクリック
- 場所の種類「プライベート」・ユーザーアクセス許可「ユーザーは場所を変更できる」に変更
- OKボタンを押下した後、OSを再起動
接続成功
僕のPowershellのコンソール上から
Enter-PSSession -ComputerName IPアドレス
あれ?繋がらないな。
やっぱり、-Credentialが要るのかな?
PS >Enter-PSSession -ComputerName IPアドレス -Credential workgroup¥username
[IPアドレス]c:¥users¥username >
お、繋がった!
終わりに
Powershellで遠隔操作できるということは僕にとってはかなりのブレークスルーだった。
社内の100台近くのPCを一気に操作できるようになったからだ。
こうして更にPowershellにハマっていく。