arachansan's diary

誰にも左右されず、硬派なBlogを書きます。

Powershellで遠隔操作

VNCの限界

会社には100台以上のPCがある。
プリンターの入替や社員へのPCサポートで遠隔操作する必要がある。

そこで数年掛かりでVNCを導入していった。
現在ほぼ全てのPCにUltraVNCを常駐させている。

社員へのPCサポートでは威力を発揮するのはいいのだが、
何か作業をする時に社員からPCの操作を奪う必要がある。
社員の PCの操作を奪わず に作業をしたい。

LinuxだとSSHで入って、

  • プロセスをkill
  • yumやapt-getを使ってソフトをインストール
  • CUPSを弄ってプリンターをインストール

なんてことができる。

社員のPCの操作を奪う必要もない。

そんなことがWindowsでできるだろうか?

PowershellはProcessをkillするのも難しくない。

Powershellで遠隔で繋ぎに行ければ、最強なんだけどな。

plus.google.com

Powershellで遠隔操作

Enable-PSRemotingが使えるもログインできない

Enable-PSRemotingという機能を使えば、 Powershellで遠隔ログインが可能になるようだ。

下記サイトには具体的にログイン方法まで書いてあったのだが、 パスワードなしのアカウントだらけなので、 こいつは使えない。

atamoco.boy.jp

パスワードなしでも接続できるようにする

パスワードなしでも接続できる方法が欲しい。

と検索をかけていると下記のサイトに方法を発見した。

Powershellレジストリーを下記のように弄った。

Set-ItemProperty HKLM:\SYSTEM\CurrentControlSet\Control\Lsa -name LimitBlankPasswordUse -Value 0

パスワードなしのアカウントで Windows XP Professionalにリモートデスクトップ接続する - ブログ - ワルブリックス株式会社

Private networkとwork networkのみにする

それでも接続できない。

下記のネットワークだけにしておく必要がある。

  • 「 プライベートネットワーク (Private network)」
  • 「 社内ネットワーク (Work network)」

僕のクライアントにはVirtualBoxが作った「認識されないネットワーク」があったので

下記のサイトを参考に社内ネットワークに変更した。

  1. コントロールパネル」-「システムとセキュリティー」-「管理ツール」を開く
  2. ローカル セキュリティー ポリシー」を実行
  3. 左側のペインから「ネットワーク リスト マネージャー ポリシー」を選択
  4. 右側のネットワークの場所から「識別されていないネットワーク」を選択しダブルクリック
  5. 場所の種類「プライベート」・ユーザーアクセス許可「ユーザーは場所を変更できる」に変更
  6. OKボタンを押下した後、OSを再起動

blog.goo.ne.jp

接続成功

僕のPowershellのコンソール上から

Enter-PSSession -ComputerName IPアドレス

あれ?繋がらないな。

やっぱり、-Credentialが要るのかな?

PS >Enter-PSSession -ComputerName IPアドレス -Credential workgroup¥username

[IPアドレス]c:¥users¥username >

お、繋がった!

終わりに

Powershellで遠隔操作できるということは僕にとってはかなりのブレークスルーだった。

社内の100台近くのPCを一気に操作できるようになったからだ。

こうして更にPowershellにハマっていく。