PowerShellでスクリプトを作っていたところ、環境変数PATHの中にあるコマンドを探してくれるwhereコマンドと同じコマンドレットがなさそうだったので、さくっと作ってみました。
It is same as ms-dos command where.exe
Javaがインストールされているかどうか調べたかったんですよね。インストールされていなければ、chocolateyなどでインストールする、という方法になります。
PowerShellでスクリプトを作っていたところ、環境変数PATHの中にあるコマンドを探してくれるwhereコマンドと同じコマンドレットがなさそうだったので、さくっと作ってみました。
It is same as ms-dos command where.exe
Javaがインストールされているかどうか調べたかったんですよね。インストールされていなければ、chocolateyなどでインストールする、という方法になります。
これはPowerShell Advent Calendar 12/19分の記事です。
正直ネタどうしようかなぁと思っていたら、ちょうどいいところに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の記事ですが、記事内に他の記事へのリンクもあります。
で、ダウンロード先を見てみると…Englishのみとなっているんですね。しょうがないなぁとおもいつつ、ダウンロードしてAzureの仮想マシンに入れてみました。でも安心してください。入りますよ(Windows Server 2012 R2 日本語版)。
EULAも日本語表記されます。
前後しますが、ダウンロードセンターからダウンロードするとこんな風に対象OSごとにバイナリが分かれています。私はWindows Server 2012 R2のみをダウンロード。余談ですが、Windows 10でダウンロードするとWindows 7/8.1用は表示されませんでした。
インストールするとタスクバーのピン留めアイコンも変わります。これはAzureの仮想マシンですが、なぜか手元のWindows Server 2012 R2日本語版に入れるとタスクバーの画像は変わっていませんでした。スタート画面では変わっていたので、キャッシュか何かでしょう。
これは完全にOSインストール直後のPowerShellですが、コマンドレットは1411個登録されています。
PowerShellのMajorも5になり、BuildはWindows 10 TH2相当の10586ですね。
余談ですが、私のWindows 10(Azure SDKとかも入っています)はこれだけ。例によってOS固有のコマンドレットはPowerShell 5.0では入らないので、気を付けてください。でも、Zipファイルを扱うコマンドレット(Compress-ArchiveやExpand-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構文を試してみます。
Happy PowerShell!
…ただ、ここまでのすくりーショットを見て気づかれたと思いますが、Windows 10のPowerShell 5.0と異なり、シンタックスハイライトはないようです(どこかに設定ないのかな…)。引き続きPSReadLineのお世話になるのがいいでしょうか。
…ということころまで書いてぎたぱそ氏が素晴らしいエントリを書きました…もうこれいらないくらいな(^^;。
やっぱりExchange 2010/2013,SharePoint 2010/2013,SCVMM 2012入れている環境には対応しないんですね。この辺しょうがないんですが、うーん…。
この記事はPowerShell Advent Calendarの12/2分の記事です。
UWPのハンズオンが本格的に開催されるようですね。
しかし、このハンズオンではVisual Studio 2015だけではなく、いろいろ周辺ツールをインストールしておく必要があるそうです。当日にやると、まず間違いなくインストールだけで終わってしまうので、事前に入れておきましょう…といっても、自分の環境が満たしているかわからないですよね。
ということで、環境が満たされているかチェックするPowerShellスクリプトを用意しました。足りないものはブラウザを起動しているので、そこからダウンロードしてみてください。
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:フォルダの一覧も見えないとわかるかと言われたので、実際はもっと別のやつを作って使ってます