◆空港の場所と天気を調べる(New-WebServiceProxy)New-WebServiceProxyコマンドレットを使ったことがなかったのでメモしておく。ResourcesWEBサービスを簡単に呼び出せるのね。Resources[Environment]クラスのstaticプロパティで取ってこれるよってだけの話。メンバーの値を一覧表示するにはどうするんだろう・・・。[Environment]::($_.name)}stacktraceは結果が長くなるのでとりあえず除外している。Resourcesサービスとプロセスをぶつけてsvchostでホストされているサービスを一覧表示する。◆カスタムオブジェクトのプロパティ順を指定するハッシュテーブルを[Orderd]にキャストすると良いって話かな。◆Zipファイルを解凍するWindows10が今日からダウンロード可能になるそうな。私的にはもう少し様子を見てからと思っていますが、無償アップグレードということなので、かなりのPCがWindows10に変わっていくことが予想されます。Windows8の評判がすこぶる悪かったため、PowerShellも2.0の使用を基本に考えてきましたが、これからはWindows10に搭載される5.0を前提にしようかと考えています。(クライアントで動かすようなスクリプトは)5.0ではZipの解凍も標準コマンド(Function)でできるようです。解凍先フォルダーのパス当然、圧縮も「Compress-Archive」が用意されています。これまで圧縮はちょっと面倒だったので、これだけでもすごく嬉しい・・・。Resources前回は物理的に対面でログオンしているユーザーの表示だったが、今度はリモートデスクトップを含んだログオンユーザーの表示。-unique}ただ、試してみた感じだとログオフせずに切断した情報とかが残って表示されている様な気もする・・・。◆ログオンしているユーザーを表示するのほうが純粋に今の情報に近い様な気がする。Resourcesへぇー、確かにリモートログオンの場合は表示されない・・・。◆Splatting(分配演算子)以前ちょっとだけ以下で書いたことのある機能。◆分配演算子もう少しわかり易い例が載っていたのでメモしておく。Resourcesこの記事に対する質問で「どんな時に使うんだい?」ってのあったが、そこが大事。使いでがあるのは、関数などで受け取ったパラメータをそのままフォワードしたりする時。(私は、引数が長くなって見づらくなる時によく使っている)ちなみに「Splat」は「ぶつけて平らに延ばす」的な意味。PowerShellの何かのエラーメッセージで「分配演算子」と訳していたので私はその名前を使っている。Help的には3.0から「about_splatting」として載っているようだ。相変わらず日本語訳はされていないので正式になんという日本語名かは不明。PowerShellに限らず、日本語訳は機械翻訳程度しかやらないのがMSの主流になってきているようなので、これからは一段と英語力が要求されそうだ。HashTableちょっと躓いたのでメモ。-AsHashTable$HashService2.Stopped$HashService.Stoppedは参照できるが、$HashService2.Stoppedの方は参照できない。AsStringをつければうまくいくことは判っているが、なぜ違いが出るのだろう・・・。Resources「PSCustomObject」を作るときに既存の型を表示用に指定することができるそうな。「PSTypeName」として型を指定しておくと表示するときに、その型のフォーマットで表示してくれる。メンバーを表示してみると「CodeProperty」というちょっと変わったプロパティで保持されているのが判る。既存の一覧に独自のオブジェクトを追加して一緒に表示するなんて使い方ができたりするのかな。この機能はVer.3.0以降が要求される。◆Wordのテンプレートを指定するWordの独自テンプレートを置いていたサーバーがリプレースされてパスが変わってしまったため、Word文書のテンプレートパスを一括で変更するスクリプトを作った。="\\hogehogeServer\pub\テンプレート.dotx"#保存して終了[void]$word.Application.ActiveDocument.Save()[void]$word.Application.ActiveDocument.Close()}$word.Quit()<!--EndFragちなみに、ファイルサーバーの名前が変わってしまうと、Hostsファイルやlmhostsファイルでアドレスを置き換えてあげてもうまくいかない。(場合による?)サーバー側のレジストリーでエイリアス名を設定すると良さそうではあるが・・・。Impactのコマンドレットを探すスクリプトが紹介されている。確認ダイアログが表示されるコマンド?)改行とかを若干調整して以下にメモしておく。-Descending結果はこんな感じ。Set-ExecutionPolicyなどはHighにならないので、単純に確認ダイアログが出るかどうかでもないのか・・・。◆文字の出現回数を調べるとりあえず文字コードはユニコードが前提。“`t”として指定する。---この記事が結構見られているようなので別の方法を補足。ネットを見てみると、検索文字列を空文字に置き換えて、減った長さから文字数をカウントするという方法が多く使われているようだ。一応その方法も記載しておく。この方法だと単語での検索もできるのでベターかも。-$text.Replace($findChar,"").Length)/$findChar.LengthSJISファイルの場合は、ReadAllTextに文字コードを指定する。ReadAllText($inputFile,[System.Text.Encoding]::GetEncoding("shift_jis"))といった感じだろうか。---ついでに、正規表現を使う場合はRegexクラスを使うか、PowerShellのReplace演算子を使う。ここではReplace演算子に書き換えてみる。$findChar,"").Length)/3findCharの長さは汎用的には求められないと思うのでここでは固定値で指定した。検索する文字列長が可変の場合は今回の方式では辛くなるので、地道に先頭からなめて行くしか無いのかな・・・。◆明示的に追加されたPermissionを表示する明示的に追加された(継承されたものでは無いって事かな)Permissionを表示するサンプル。この例では「C:\Windows」配下のフォルダを再帰してGridViewに表示している。自己紹介minminnana地方でSE(プログラマ)をやって20年。気づけばいつの間にやら窓際人生。このまま余生を過ごすには若干心残りな2児と2匹(ウサギ、犬)の父。SEと言っても窓際なのでブログやWEBなどにはめっぽう疎い・・・。独学で.NET系を弄ってみるがCOBOLプログラマーにはだいぶ敷居が高い。