kkamegawa's weblog

Visual Studio,TFS,ALM,VSTS,DevOps関係のことについていろいろと書いていきます。Google Analyticsで解析を行っています

Windows 7/8.1/Server 2012/Server 2012 R2用PowerShell v5リリース!

これはPowerShell Advent Calendar 12/19分の記事です。

atnd.org

正直ネタどうしようかなぁと思っていたら、ちょうどいいところにWindows 7/8.1/Windows Server 2012/2012 R2用PowerShell v5(正確にはWindows Management Framework 5.0の一部)がリリースされたので、紹介記事にしたいと思います(ごめんなさいごめんなさい)。

Windows Management Framework (WMF) 5.0 RTM is now available

PowerShell 5.0でどんな新機能があるかというのはぎたぱそ氏の素晴らしい記事があるので、どうぞ。これはclassの記事ですが、記事内に他の記事へのリンクもあります。

tech.guitarrapc.com

で、ダウンロード先を見てみると…Englishのみとなっているんですね。しょうがないなぁとおもいつつ、ダウンロードしてAzureの仮想マシンに入れてみました。でも安心してください。入りますよ(Windows Server 2012 R2 日本語版)。

f:id:kkamegawa:20151219083926p:plain

EULAも日本語表記されます。

前後しますが、ダウンロードセンターからダウンロードするとこんな風に対象OSごとにバイナリが分かれています。私はWindows Server 2012 R2のみをダウンロード。余談ですが、Windows 10でダウンロードするとWindows 7/8.1用は表示されませんでした。

f:id:kkamegawa:20151219083925p:plain

インストールするとタスクバーのピン留めアイコンも変わります。これはAzureの仮想マシンですが、なぜか手元のWindows Server 2012 R2日本語版に入れるとタスクバーの画像は変わっていませんでした。スタート画面では変わっていたので、キャッシュか何かでしょう。

f:id:kkamegawa:20151219083922p:plain

これは完全にOSインストール直後のPowerShellですが、コマンドレットは1411個登録されています。

f:id:kkamegawa:20151219083923p:plain

PowerShellのMajorも5になり、BuildはWindows 10 TH2相当の10586ですね。

f:id:kkamegawa:20151219083924p:plain

余談ですが、私のWindows 10(Azure SDKとかも入っています)はこれだけ。例によってOS固有のコマンドレットはPowerShell 5.0では入らないので、気を付けてください。でも、Zipファイルを扱うコマンドレット(Compress-ArchiveやExpand-Archive)は入っているので、これだけでも更新する価値はありますね!

Compress-Archive

ただ、標準コマンドレットにはエンコーディング指定するところがないようなので、おそらく日本語のファイルはUTF-8でエンコードされるのでしょう。Windows 7/Windows Server 2008 R2の人はKB2704299のパッチを当てておきましょう。Windows 8以降の人はOSが対応しているので、何もしなくても構いません。

File names are corrupted after you decompress a .zip file in Windows 7 or in Windows Server 2008 R2

ではちょっとPowerShell 5.0の新機能class構文を試してみます。

f:id:kkamegawa:20151219083928p:plain

Happy PowerShell!

…ただ、ここまでのすくりーショットを見て気づかれたと思いますが、Windows 10のPowerShell 5.0と異なり、シンタックスハイライトはないようです(どこかに設定ないのかな…)。引き続きPSReadLineのお世話になるのがいいでしょうか。

blogs.technet.com

…ということころまで書いてぎたぱそ氏が素晴らしいエントリを書きました…もうこれいらないくらいな(^^;。

tech.guitarrapc.com

やっぱりExchange 2010/2013,SharePoint 2010/2013,SCVMM 2012入れている環境には対応しないんですね。この辺しょうがないんですが、うーん…。

PowerShellでUWPハンズオンの環境が整っているかチェックする

この記事はPowerShell Advent Calendarの12/2分の記事です。

atnd.org

UWPのハンズオンが本格的に開催されるようですね。

MSDN Blogs

しかし、このハンズオンではVisual Studio 2015だけではなく、いろいろ周辺ツールをインストールしておく必要があるそうです。当日にやると、まず間違いなくインストールだけで終わってしまうので、事前に入れておきましょう…といっても、自分の環境が満たしているかわからないですよね。

ということで、環境が満たされているかチェックするPowerShellスクリプトを用意しました。足りないものはブラウザを起動しているので、そこからダウンロードしてみてください。

Check environment for UWP's Hands-on

Windows Serverのバックアップ対象ファイル一覧を作る

Windows Serverには標準でバックアップソフトがついています。でも、バックアップ対象の一覧はコンソール起動するか、コマンド起動する必要があり、OS管理者以外では知る方法がなく、イマイチ不評でした。

そんなわけで一覧がファイルでみえないのはお前が悪いみたいなこと言われて、頭にきて簡単に作ってみました。毎回Excel作るのあほ臭いので、こんなスクリプトを作りました*1

タスクスケジューラで毎日定期的に実行させて、どのファイルをバックアップしているかhtmlにするといい感じです。お好みに合わせていろいろカスタマイズしてください。

create backup file list to HTML in Windows Server ...

自宅ではAzure Backupも使っているので、一緒に扱っています。コマンドレット違うんですね。入っているかどうかわからなかったので、get-commandでAzure Backupが入っているかどうか判定しています。

Windows PowerShell を使用した Azure Backup の管理

あと、Windows Server 2012ではバックアップのコマンドレットが入っているようですが、Windows Server 2008 R2では明示的にadd-pssapinで追加してください。

Windows Server バックアップのコマンドレットを使用する

*1:フォルダの一覧も見えないとわかるかと言われたので、実際はもっと別のやつを作って使ってます

Azureのサブスクリプションを選択式で変更するPowerShellスクリプト

Azureのサブスクリプションを複数持っている場合、Select-AzureSubscriptionコマンドレットで変更してから操作することになります。ところがサブスクリプション名が長いと打ち込むのも面倒、たくさんあると覚えるのも面倒です。

ということで、現在あるAzureサブスクリプションを読みこんで、選択するというPowerShellスクリプトを作ってみました。

Choice Azure Subscription PowerShell Script

実は最初GUIプログラムで作ろうと思っていたのですが、PowerShellでjson読むのが非常に簡単だということがわかったのであっさり方針変更。私は仮想マシンをよく使うので、次は自動的に仮想マシンを読みこんでオブジェクトに格納するということとかやっておきたいですね。