PowerShell の勉強

正直よくわかっていませんがちょっと使ってみようということで、簡単なスクリプトが書ける程度にはなっておきましょうというやつですね。

Windows PowerShell は Windows7 には標準で入っているようです。またそれ以前のOSでは、Windows update か、Microsoft の Webサイトからダウンロード可能なようです。

PowerShell の基本的な書き方を理解しないといけません。あとは、.NETFramework などのオジェクトを使うのでこっちは、MSDN にあるクラス名とかのリファレンス見れば大体のところはいけるでしょうというやつです。

まずは、シリアルポート一覧を取得

PS > $serialPorts = [System.IO.Ports.SerialPort]::GetPortNames();

のように書けば、実行出来ました。これはスタティックなメソッドだから実行出来たような気がする。

java で言う new するのは

PS > $port = New-Object System.IO.Ports.SerialPort("COM1");

そうすることで、インスタンスが作成されたと理解していいのかな?

PS > $port.BaudRate
9600

のように返ってくるのでオブジェクトは生成されたと思う。
となれば、あとは .net framework の話なのでこれは一旦おわり。

PowerShell の制御構造(if 文とかそういうやつ) をこされから探してみたいと思います。

PowerShell のヘルプは、get-help コマンドらしい
また、UNIX 系の OS さわってた人向けなのかどうかは置いといて、Alias で UNIX のコマンド名も用意されていました。なので、 ls コマンドと叩けばGet-ChildItemというコマンレットが実行されるようになってます。
何があるのか調べるのは

PS > Get-Command

を実行すれば調べられます。

Windows PoerShell ISE のヘルプも入門に必要なことが書いてありましたので、こちらも参照

Windows PowerShell のスクリプトは拡張子 .ps1 とからしいですが、初期状態ではスクリプトファイルをダブルクリックしても起動しないようです。get-executionpolicy というので現在の設定の確認や実行時のポリシーを変更出来るようです。またスクリプトの実行にはc:\script\script.ps1 のようにフルパスか、.\zzz.ps1 のようにパス必要とのことです。パス通っていてもスクリプト名だけでは走らせられないようです。

PS > Get-ExecutionPolicy
Restricted

WINDOWS POWERSHELL 実行ポリシー
-------------------------------

Windows PowerShell の実行ポリシーを次に示します。

既定のポリシーは "Restricted" です。

Restricted
- 既定の実行ポリシーです。

- 個々のコマンドは許可されますが、スクリプトは実行されません。

- 書式設定ファイルと構成ファイル (.ps1xml)、モジュール スクリプト ファイル
(.psm1)、および Windows PowerShell プロファイル (.ps1) を含む、すべてのスクリプト
ファイルの実行が禁止されます。

AllSigned
- スクリプトを実行できます。

- すべてのスクリプトと構成ファイルが信頼された発行元によって署名されていることが
要求されます (ユーザーがローカル コンピューターで作成するスクリプトを含む)。

- 信頼されているかどうかが分類されていない発行元からのスクリプトを実行する前に、プ
ロンプトが表示されます。

- インターネット以外のソースによる署名なしスクリプトや署名済みの悪意のあるスクリ
プトを実行する危険性があります。

RemoteSigned
- スクリプトを実行できます。

- インターネットからダウンロードされたスクリプトおよび構成ファイル (電子メール プ
ログラムとインスタント メッセージング プログラムを含む) に対して、信頼された発行元
によるデジタル署名が必要です。

- (インターネットからダウンロードしたのではなく) ローカル コンピューターで実行され
たスクリプトおよび作成されたスクリプトにはデジタル署名は不要です。

- 署名済みの悪意のあるスクリプトを実行する危険性があります。

Unrestricted
- 署名なしスクリプトを実行できます (悪意のあるスクリプトを実行する危険性があります)。

- インターネットからダウンロードしたスクリプトおよび構成ファイルを実行する前にユ
ーザーに警告します。

Bypass
- 何もブロックされず、警告またはプロンプトも表示されません。

- この実行ポリシーは、Windows PowerShell スクリプトが大きいアプリケーションに組み
込まれる構成や、独自のセキュリティ モデルを備えたプログラムの基礎として Windows
PowerShell が使用される構成を対象に設計されています。

Undefined
- 現在のスコープで設定されている実行ポリシーはありません。

- すべてのスコープの実行ポリシーが Undefined である場合、効力を持つ実行ポリシーは
既定の実行ポリシーである Restricted となります。

ということで、ローカルでスクリプト実行するなら

PS > Set-ExecutionPolicy RemoteSigned

これは一回やっておけば、レジストリに記録されるので都度実行しなくても良いようです。

いずれにしても、ヘルプのWindows PowerShell の About ヘルプ トピックには基本的な制御構造などのサンプルがあるので一旦は見ておく。

変数のスコープはわかりません。Get-Variable -scope global もしくは local で表示されますが、まだ理解出来てません。

Windows PowerShell から .NetFramework のオブジェクトとかを使うときに、標準でロードされていないものはロードしないといけません。しかし、何がロードされてるかを調べる方法は

PS > [Appdomain]::CurrentDomain.GetAssemblies() | %{$_.GetName().Name}

mscorlib
Microsoft.PowerShell.ConsoleHost
System
System.Management.Automation
Microsoft.PowerShell.Commands.Diagnostics
System.Core
System.Configuration.Install
Microsoft.WSMan.Management
System.Transactions
Microsoft.PowerShell.Commands.Utility
Microsoft.PowerShell.Commands.Management
Microsoft.PowerShell.Security
Microsoft.PowerShell.ConsoleHost.resources
System.Management
System.DirectoryServices
System.Xml
System.Management.Automation.resources
Microsoft.WSMan.Management.resources
Microsoft.PowerShell.Security.resources
System.Data
mscorlib.resources

のように、確認出来るようです。

で、

PS> [System.Reflection.Assembly]::LoadWithPartialName("System.Drawing")


GAC    Version        Location
---    -------        --------
True   v2.0.50727     C:\WINDOWS\assembly\GAC_MSIL\System.Drawing\2.0.0.0__b03f5f7f11d50a3a\System.Drawing.dll

というふうに、 .NetFramework のロードしたいものを指定すると使用出来るようになる

どこぞのページから拾ってきたスクリプトサンプル。ビットマップイメージにテキストを描画してファイル出力するサンプル。これと blog の記事で書いたノリタケVFDモジュールへの出力を組合せれば、好きなフォントで文字表示出来るようになります。ただし、VFDモジュールの横幅が短いのでスクロールをどうするかか工夫しないと。ピクセルは $bmp.GetPixcel(x,y).G とかで緑とかが取得出来ます。

[PowerShell]
Add-Type -AssemblyName System.Drawing
$outFile = “$home\outimage.png”
$bmp = new-object System.Drawing.Bitmap 512,16
$font = new-object System.Drawing.Font “MS ゴシック”,9
$brushBg = [System.Drawing.Brushes]::Black
$brushFg = [System.Drawing.Brushes]::White
$graphics = [System.Drawing.Graphics]::FromImage($bmp)
$graphics.FillRectangle($brushBg,0,0,$bmp.Width,$bmp.Height)
$graphics.DrawString(‘Hello World 漢字ファイル’,$font,$brushFg,0,0)
$bmp.Save($outFile)
#Invoke-Item $outFile
$graphics.Dispose()
[/PowerShell]

Windows7 64bit で動かない古いUSBシリアル変換アダプタ USB-RSAQ2,Q3の修正

自宅デスクトップPCのOSを Windows7 64bit にしたら、USB-シリアル変換も動かなくなりました。単純にドライバが提供されていないという理由からですね。

ということで、USB-RSAQ2 ならびに USB-RSAQ3 は Prolific のドライバで動くようにシリアルEEPROMの配線を切ってしまいます。こうすることで、USBのコンフィグレーションのときのベンダーIDやらなんやらがシリアルEEPROMから取得出来なくなるので PL-2303 オリジナル状態で動くようになります。

まずは、USB-RSAQ3 だったものです。IC1 の 5pin(SDA) を切ります。

もう一つのも USB-RSAQ2 だったものです。IC3 の 5pin(SDA) を切りました。

どちらも 5ピンをプルダウンしときたいモヤモヤ感が拭い切れません。なんかの拍子にラッチアップしたらヤダなぁと思いつつも、壊れたら新しいの買えばいいと自分に言い聞かせてピンカットだけで済ませます。

あとは、plolific のサイトから PL-2303 の Windows 用ドライバをダウンロードしてセットアップすればOK
同じUSBのポートに差したので COM3 で見えてますが、リビジョンが異なるのでそういう意味では認識しているということですね。よかった。

私の場合はたまたま動いたということですので、これを参考にトライされて失敗してもそれは自己責任というやつです。(一応言うとかないとね)

関連記事: Windows7 64bit で動かない古いUSBシリアル変換アダプタ USB-RSAQ2,Q3の修正 追記1

デスクトップPCのシリアルポートを使えるようにした

M4A89TD PRO/USB3 という AMD 用のマザボには、COMポートのコネクタはありますが実際にRS232Cケーブルを差すブラケットは付属していません。ということで、ブラケット探してましたが通販では微妙な価格なので送料かかったりと実に中途半端です。まぁ、作ればいいやと思ってました。

ということで、3/19墓参りで大阪帰ったついでに 京谷豊のページへようこそ! を運用されています先輩と一緒に日本橋買い物タイム。

デジットで購入した。フラットケーブル用のコネクタ。これで、あとは家にあるもので作成可能なので買い物終了。(ほかのマイコン関係とか、ジャンクのチェックとかはいつも通りやってますよ)

んで、次、千石へ行ったら

ブラケット発見、かつ、安い…  迷わず購入

いいんです。部品買うときは、こういうことは良くある話です…

ということで、PCの取り付け

あとは、Windows 7 に入れてる Tera Term をこのシリアルポート使うように設定して、vmware の仮想PC にも Tera Term 入れて、 IODATA の USB RSAQ2 というWindows 7 で動かないUSB-SERIAL変換をクロスケーブルで接続しまして、OKかどうか確認しました。

動いてあたり前なので、動作確認は終り。

これで、パラレルポートがあれば完璧ですがそこまで贅沢は言いません。

Cubase 6 アップグレード版が来た

とりあえず中身は

  • CUBASE 6
  • HALION SYMPHONIC ORCHESTRA TRIAL VERSION
  • HALION SONIC Ver 1.5 TRIAL VERSION (2枚)
  • THE GRAND SE3 Ver 3.1 TRIAL VERSION
  • CUBASE 6 / CUBASE ARTIST6 Quick-Start Video Tutorials

とインストールマニュアルとアクティベーション用のキーが書かれた紙です。

とりあえず、私のところの環境は、Windows 7 home 64bit ですが今回は32ビット版のほうをインストールしました。(Cubase 5は残したままインストール作業開始)

DVD-ROM を ドライブに入れて、 Start_Center.exe を起動すると言語選択の画面が表示され日の丸を押すとインストールする製品を選ぶ画面に変りますが、そこからCubase 6 をインストールしようとしてもインストーラーが起動しませんでした。

ということで、Cubase 6 for Windows の Setup.exe をダブルクリックしインストーラーを起動させました。

詳細設定を開いてインストールされるものを確認。 HALion Sonic SE は個人的には不要なのでチェック外して、すべてのユーザーで使用にチェック入れて続行。インストールするディレクトリは、32ビット版なので本来なら “Program Files (x86)” というディレクトリになりますが、別ディレクトリを指定してそこにインストールしました。あとは、 eLicenser Control Center の画面からアクティベーションのコードを入れたら完了です。

Cubase 6 を起動したら、デバイス → プラグイン情報 から自分の使っているVSTプラグインのディレクトリを追加したり、オーディオI/Fなどのデバイス設定も一通りやっておかないと駄目です。

とりあえず、 MIDI Yoke のMIDIポートも見えたし、 Vocalid / Vocaloid2 の Rewire もデバイスのところで見えたので Vocaloid MEIKO さんを起動して「カ~エ~ル~の~う~た~が~」を入力、Cubase 6 側でRewire のチャンネルを作って同期するかやってみたところ再生ボタン・停止ボタンなど連動出来ているようなので問題ないと思います。たぶん

今日はこれくらいにしといたろ

PC 環境の整理の結果手元に残った PC は1台だけになりました。

先月あたりから、この話題のブログネしか書いてませんが皆様のお役に立つようなネタも無いのでご勘弁を。

最終的に組立てたパソコン1台と iPad(64G Wifi), iPodTouch(32G Wifi) と iPodClassic が手元に残りました。

iMacはやめです、うるさ過ぎます。ノートパソコンは年数経過しているので、この際というのもあって, Appleストアの下取りサービスへドナドナ(行き先はソフマップ)。先代の組み立てたパソコンはPC 無料回収へドナドナ。マイコン関係の工作も、パラレルライターだけあきらめらめばいい話でパラレルポート使うのは、 Atmel の昔のドングルと STK500のパラレルポートくらいのもので、STK500はシリアルも行けるので AT90S シリーズは書けます。まぁ、今は ATTinyとかATMega なのでUSBでOKなのです。

xilinx とか cypress 関係も USB でプログラミング出来るので問題なし。これで倉庫部屋は少しだけ床見える面積が増えましたよ。

グラボのBIOSアップデートでファンが少し静かになった。

組立たデスクトップ PC のグラフィックカードは GIGABYTE の GV-R685D5-1GD (RADEON HD 6850) なのですが、Windows 7 起動すると、ファンの音が大きくなって結構うるさく、Catalyst Control Center でファンの速度を見ますと 75% 設定になっているようです。

50%くらいにマニュアルで落せば大分マシにはなりますが、監視しつつというやつで結構面倒です。んで、GIGABYTE の Webサイト見に行ったら 2011/01/14 F3_C というバージョンの BIOS があったので適用してみました。

結果、Windows 7 起動後もファンが高速回転しなくなり設定の見直しはあったようです。 Catalyst Control Center で見たら 40% に修正されていました。ということで、いい感じでございます。

5年ぶりくらいでPC組み立て。

まぁ、Pentium D930 の PC もそろそろ引退いただくということで、お安く AMD 1065t で組みました。使ったパーツは並パーツなので書いたところでおもしろくも無いので飛ばします。

今回選択間違ったのは特価のPCケースでした。パーツショップで山積み特価品になっていたケースですが、フロントは基本5インチスロットになっていて付属品で3.5インチドライブが積めるよう鉄板を曲げ加工したマウントキットが3つ付属していました。このうち2個がベンダーで折り曲げたと思いますが、歪んでます。ラジペン修正でなんとかしましたが、残り1個は修正不可レベルの失敗作でした。

やはりケースはメンテナンスしやすいものにするべきでした。(反省)

あとは、CPUのリテールクーラーがちょっと耳につくので別のちょっと大きめのに交換したいところくらいですかね。

おおむね満足

iMac て思った以上にファンの音が大きかった。

いや、単なる愚痴です。

iMac で、ちょっと負荷のかかるコマンドとか実行すると内部の温度は上ります。それは当然な結果なので何も言いません。それを排熱するために、ファンが内蔵されていますが、これが真剣に回りだすと、「やかましい」の一言です。ここまで音デカイとは思ってもいませんでした。

まぁ、確かに PC 一式が自分の目の前にデンと居座ってるわけですから音もファンの動作音が耳につくわけです。ついでに、ディスクのコリコリというのも当たり前のように響いています。あぁ、こんなんじゃ iMac 買うんじゃなかったよー と思い出している今日このごろ。 Windows 7 のデスクトップもなんとか組み上がっているので iMac は Sofmap さんにドナドナかも知れません。ちょっと冷静になってからあらためてどうするか考えたいと思います。

あたらしいPCが欲しい その4

今この記事を買いている9時45分頃に、アップルストアでポチった iMac が配達されました。それはいいとして、部屋を整理しないといけません。前回の記事ではパソコンデスクから物を一旦全部退けると言いましたが、今の状況がこんな感じ。

部屋の入口から、

部屋の入口に向って

クローゼットの方向

なんにしても、倉庫部屋なので物多過ぎできたないですね (^^; 最近のイライラするのが続いているのはこの部屋が原因かも知れません。

さて、これから一宮市内の PCパーツ売ってるショップ行って、Windows 7 64bit 動かす安いセットも探しに行きます。(vmware fusion も workstation も持ってますが実機必要なので)

iMac の開封儀式は後からします。

とりあえず、セットアップしたら, MacBook と VAIOのノートPC を、下取りサービスで引き取ってもらう予定。

あたらしいPCが欲しい その3

何日か前に「あたらしいPCが欲しい その2」というので PC の入れ替えを考え始めました。まず, MacBook でクラムシェルモードでの使用するというのが一発目の手順であったのですが、これがいまいちな結果。使用している液晶ディスプレイのせいでもあるのですが、スリープからの復帰や、一時的にモニタだけ電源切るとかの操作をした後の復帰で、砂嵐の画面が表示されまともに使えません。

モニタの電源 OFF/ON で画面が復旧することもあれば、 Command + TAB などで画面を変化させたりしたら出た場合もありますが、必ず復旧させる術が無し。アイ・オー・データのLCD-TV241Xというかなり前のモニタなので仕方ないのかも知れません。

ということで、昨日 iMac をアップルストアでポチりました(新製品出るうわさは承知の上です)。で MacBook は下取りサービスに出すことに。ということで、データ類は NAS へ移動して、SSD を抜いて、元々はいっていた HDD に戻しして、 MacOS X 10.5 をリストアして梱包までし終りました。ということで、いつ iMac が来ても良いように、 パソコンデスクも乗っているもの全部おろして雑巾がけしてきれいさっぱりですわ。

さて、次は Windows デスクトップの手配やな