マイナビニュースマイナビ
PowerShell Core入門 - 基本コマンドの使い方
【連載】

PowerShell Core入門 - 基本コマンドの使い方

PowerShell 7 - ウインドウを移動させるスクリプト window_move.ps1 - マイナス値の指定

【第165回】PowerShell 7 - ウインドウを移動させるスクリプト window_move.ps1 - マイナス値の指定

前回はWin32 APIのMoveWindow()関数を利用してウインドウを移動するPowerShellスクリプトを作成した。今回はこのスクリプトを拡張し、左上からの距離ではなく右下からの距離でも指定できるようにする。指定方法は「マイナス値」だ。これにより、前後左右どこからでも距離を指定できるようになり、指定の自由度がかなり増す。

サーバ/ストレージ
ブックマーク ブックマーク

目次

【連載】PowerShell Core入門 - 基本コマンドの使い方[164]PowerShell 7 - ウインドウを移動させるスクリプト window_move.ps1

前回まででウィンドウのサイズを変更するPowerShellスクリプトwindow_resizer.ps1を作成してきた。このスクリプトの本質はWindows APT (user32.dll)のMoveWindow()関数だ。この関数の利用をちょっと変えてあげると、サイズを変更するスクリプトではなく、ウィンドウを移動させるスクリプトを作成することができる。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[163]PowerShell 7 - ウインドウのサイズを変えるスクリプト プラスアルファ

ウィンドウのサイズを変更するPowerShellスクリプトについては前回の説明で終わりにする予定だったのだが、前回までの説明だと応用しにくい部分があったので、補説としてもう一回だけ説明を追加しようと思う。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[162]PowerShell 7 - ウインドウのサイズを変えるスクリプト ファイナルバージョン

前回までで、Windowsのアプリケーションウインドウサイズを指定したサイズに変更するPowerShellスクリプト「window\_resizer.ps1」を作成した。今回はアプリケーションごとに専用のスクリプトを作成して、業務に使えるレベルまでカスタムしよう。これで、このスクリプトは完成だ。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[161]PowerShell 7 - ウインドウのサイズを変えるスクリプト window_resizer.ps1

前回まででPowerShellからウインドウを選択しウインドウサイズを変更する方法を説明した。これまでに説明してきた書き方をまとめれば、汎用的に利用できるウインドウサイズ変更用のスクリプトを作成することが可能だ。今回はこれを「window_resizer.ps1」という汎用スクリプトとして整理し、そのポイントについて説明する。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[160]PowerShell 7 - ウィンドウのサイズを変えるスクリプト 座標データ取得と設定

前回はPowerShellからWindows APIを使用する方法を紹介した。基本的な部分のみを取り上げたが、それだけでも結構いろいろとできるようになったはずだ。今回はこの機能を使って、アプリケーションの座標データを取得し、さらにその座標データを変更して表示場所やサイズを変更する方法を紹介する。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[159]PowerShell 7 - ウインドウのサイズを変えるスクリプト Windows APIを使う方法

PowerShellからウインドウのサイズを変更するには、「Windows API」を呼び出して処理を行う必要がある。いきなり難易度が上がる印象があるかもしれないが、詳しい仕組みはいずれ説明する。今回は、どのような処理が行われているのかをざっくり理解し、書き方を把握していただきたい。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[158]PowerShell 7 - ウインドウのサイズを変えるスクリプト ver.1

前回はウインドウのサイズを変更する次のPowerShellスクリプトを取り上げた。今回から、そのスクリプトを中身を読み込みながら、もうちょっと汎用的に利用できるスクリプトを作っていく。実用的なスクリプトを作っていこう。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[157]PowerShell 7 - ウィンドウのサイズを変えるスクリプト ver.0

このところPowerShellにも関係があるWindows関連の新機能発表が続いたため、そちらを取り上げてきた。一通り説明は終えたので、PowerShellスクリプトの開発に話を戻そう。以前、スクリプトの体裁を成すために簡単な機能をベースにスクリプトを作成する方法について説明したが、今回はもっと実用的なスクリプトを作ってみよう。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[156]Windows 11開発版配信、Windows Terminalの同梱を確認

Microsoftから、Windows 10の次期ブランドとなる「Windows 11」が発表された。気になるのはWindows 11でPowerShellとWindows Terminalがどのような扱いになっていくかだ。今後を予測する上で、すでに配信が始まっている開発版「Windows 11 Insider Preview Build 22000.51」は、リテール版の提供までに中身が大きく変わる可能性があるとはいえ有効なバージョンだと言える。今回は、この辺りについて見ていこう。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[155]PowerShell 7、Winodws Updateで入手可能になると発表

MicrosoftのPowerShell 7を巡る状況はこの数年、不思議な状況が続いている。Windows 10には「Windows PowerShell 5.1」と呼ばれるシェルが搭載されている。当然、このシェルがMicrosoftが利用を推奨しているシェルだと思いがちだが、実際には起動すると別のシェルを使うようにというメッセージが表示される。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[154]PowerShell 7をシェルスクリプトとして使う - パイプラインを使う(その2)

指定されたパスがディレクトリパスであるかどうかを判定するスクリプトの作成は、今回で最後だ。今回で最後だ。ごくシンプルな処理を実行するスクリプトだが、だいぶそれらしい体裁になった。それほど厳密なスクリプトではないが、スクリプトに必要な最低限の要素はだいたい網羅したのではないかと思う。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[153]VSCode PowerShell拡張機能 - 2021年5月アップデート版

前回、前々回と、「Winget」と「Windows Terminal」について重要なリリースが立て続けに発表されたので、そちらを取り上げた。この流れでもう1つだけ、取り上げておきたいリリースがある。最近更新されたVisual Studio Code向けの拡張機能「PowerShell(PowerShell Language Support for Visual Studio Code)」についてだ。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[152]Windows Terminal 1.9でQuakeモード登場

前回、ちょうど「Windows Package Manager 1.0」が公開されたため、急遽取り上げた。Wingetを使うとアプリケーションのインストールとアップデートの作業がこれまでとガラッと変わる。PowerShellがWindowsの管理ツールとしてますます重要になるだろう。今回は、PowerShellを使う際に欠かせない「Windows Terminal」について取り上げる。こちらも今こそ、取り上げるタイミングだ。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[151]Windowsパッケージマネージャ1.0公開

PowerShellでスクリプトを開発する方法の説明を続けているが、先日MicrosoftからPowerShellユーザーとしては見逃すことのできない発表が行われたので、このニュースを取り上げておきたい。「Windows Package Manager 1.0」が公開されたのだ。これにより、PowerShellの使い方にも大きな影響が出るだろう。もちろん、良い方向の影響である。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[150]PowerShell 7をシェルスクリプトとして使う パイプラインを使う

今回は、本連載でこれまで作ってきたPowerShellスクリプトにパイプラインの処理を加えてみよう。スクリプトはパイプラインで使えるようにすることで、より便利なものになる。サンプルで作っているスクリプトの場合にはあまり恩恵はないのだが、作り方の例としてご覧いただければと思う。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[149]PowerShell 7をシェルスクリプトとして使う - Get-Help対応

前回までで、PowerShellスクリプトがかなり仕上がってきた。今回は、PowerShellに用意されている機能を使ってさらにPowerShell風のスクリプトに仕上げていこう。今回取り組むのは、Get-Help対応だ。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[148]PowerShell 7をシェルスクリプトとして使う - パラメータを使う

今回はこれまで作ってきたスクリプトを、PowerShellの提供機能を使ってPowerShell風に整理していく。無理やりUNIX系のシェルスクリプトのように書くこともできるが、まずはその言語が提供している機能で書いておくほうが無難だ。今回は、引数としてパラメータを使う場合の処理を書いていく。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[147]PowerShell 7をシェルスクリプトとして使う - ストリームの使い分け

前回までの取り組みでディレクトリについてそのパスが存在しているかどうかを確認できるようになった。今回は、前回追加したメッセージのストリームの調整を行う。エラーストリームとインフォメーションストリームにメッセージを出すようにするのだ。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[146]PowerShell 7をシェルスクリプトとして使う - ディレクトリとファイルを区別する

前回作成したスクリプトは、引数を1つだけとり、指定されたパス(引数)が存在していた場合に「$True」を、存在していない場合に「$False」を返すものだった。ただし、このスクリプトでは「指定されたパスが存在するかどうか」しかわからない。もともと作りたいと思っているのは、「指定されたディレクトリが存在するかどうか」を調べるスクリプトなので、今回はこの部分を改善しよう。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[145]PowerShell 7をシェルスクリプトとして使う - 終了方法

前回は引数のパスが存在するかどうかをTest-Pathコマンドレットを使って判断するスクリプトを作成した。このスクリプトは基本的に何も気の利いたことはしていないので、ここから徐々にスクリプトとして扱いやすくなるように拡張していく。今回追加するのは引数やオプションが想定されているものと異なっている場合に使い方を表示するというものだ。簡単だが重要なコードである。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[144]PowerShell 7をシェルスクリプトとして使う - パスの存在確認

スクリプトの学習方法はいくつかある。本連載の初期は、できるだけPowerShellの仕様に沿うかたちでPowerShellの機能を取り上げてきた。ある程度できるようになったら、次は実際のスクリプトやスニペットなどから学習を進めたほうが理解が深まるだろう。そこでしばらくは、Microsoftが公開するブログ「PowerShell Community Blog」の投稿を元に学習を進めていこう。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[143]PowerShell 7をシェルスクリプトとして使う

本連載ではここのところしばらく、PowerShellをインタラクティブシェルとして使うための設定やショートカットキーについて取り上げてきた。インタラクティブシェルとしてPowerShellを活用する基本的な方法は、網羅できたのではないかと思う。それを踏まえ、今回からはPowerShellをシェルスクリプトとして使っていく方法をまとめていこう。最終的には、PowerShellを使って日々の作業を自動化していくのが目標だ。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[142]PowerShell 7をインタラクティブシェルとして使う - お薦めショートカットキー15選

PSReadLineモジュールが提供する機能によって、bashと同じようなショートカットキーを使用できるようになる。今回は、これまでに取り上げてきたショートカットキーを覚えるためのちょっとしたTIPSと、中でもお薦めのショートカットキーを紹介する。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[141]PowerShell 7をインタラクティブシェルとして使う - PSReadLine活用(テキスト選択)

PowerShellがデフォルトで読み込むようになったPSReadLineモジュールには、入力テキストを選択する機能が用意されている。選択操作にはショートカットキーがいくつか用意されており、それらを覚えておくと、入力したコマンドの編集などをより行うことができる。ちょっとしたテクニックではあるのが、身に付けておいて損はないので今回紹介したい。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[140]PowerShell 7をインタラクティブシェルとして使う - PSReadLine活用(補完機能)

PowerShellがデフォルトで読み込むようになったPSReadLineモジュールには「補完機能」を強化するショートカットキーと機能が実装されている。もともとPowerShell 7が提供する補完機能は「Tab」キーを押すと表示候補を1つずつ表示するというものだった。PSReadLineモジュールでは「Ctrl」+「@」または「Ctrl」+「Shift」にさらに強化された補完機能が実装されている。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[139]PowerShell 7をインタラクティブシェルとして使う - PSReadLine活用(コマンド履歴)

PowerShellがデフォルトで読み込むようになったPSReadLineモジュールにはコマンド履歴機能が搭載されている。同機能を使えば、過去の入力を利用してタイプミスを減らし、タイプの手間も減らすことができる。覚えるキーは少ないので、ぜひとも活用していただきたい。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[138]PowerShell 7をインタラクティブシェルとして使う - PSReadLine活用(基本編集)

新しいPowerShellには最初からPSReadLineモジュールが同梱されているのでbashのようなショートカット操作ができるようになっている。このモジュールの提供する基本機能をマスターしておくと、PowerShellをインタラクティブシェルとして使う上で作業がはかどるのだ。今回はPSReadLineモジュールが提供する機能の中から、特に基本的な編集機能で知っておくとよいものをピックアップして紹介する。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[137]PowerShell 7をインタラクティブシェルとして使う - PSReadLineでbash的機能を獲得

本連載の第134回でPowerShellのショートカットキーについて取り上げた。だが実は、比較的新しいバージョンのPowerShellには「PSReadLine」というbashのようなショートカットキーを使えるモジュールが最初から取り込まれている。今回はこのPSReadLineについて解説しよう。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[136]PowerShell 7をインタラクティブシェルとして使う - Windows Terminal 1.6

Windows Terminal 1.6で設定UIが導入された。まだ開発段階で足りない項目も多い。しかし、Windows Terminalでどういった設定UIが提供されることになるのか知る上でよいバージョンである。Windows Terminal 1系でデフォルト有効になるかはわからないが、少なくともWindows Terminal 2.0からは設定UIが最初から使用できる状況になるものと見られる。今回はWindows Terminalでどのような設定UIが提供されることになるのか取り上げる。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[135]PowerShell 7をインタラクティブシェルとして使う - Windows Terminal 1.1〜1.5

owerShellをインタラクティブシェルとして使うには、当然ながらPowerShellを実行するためのターミナルアプリケーションが必要だ。今なら「Windows Terminal」が第一候補になるだろう。本連載でも時折Windows Terminalについて取り上げているが、1.0を取り上げてから少し時間が空いた。現在の安定版は1.5なので、前回取り上げてから5回のリリースが行われたことになる。追加された機能はたくさんあるが、今回はその中でも特に日々の操作に影響しそうな新機能を取り上げる。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[134]PowerShell 7をインタラクティブシェルとして使う - 移動と削除のショートカットキー

PowerShellが提供しているインタラクティブ機能はかなり少ないのだが、それでもいくつかのショートカットキーは最初から用意されている。今回は、この辺りの機能を紹介しよう。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[133]PowerShell 7をインタラクティブシェルとして使う - コマンドの短縮

UNIX系のインタラクティブシェルでは、エイリアスでコマンドのショートカット利用のような設定を行う。PowerShellにもエイリアスの機能はあるが、UNIX系インタラクティブシェルのエイリアスとは機能が異なるため、同じような使い方をすることはできない。PowerShellで同様の処理を行いたい場合は、関数で実装できる。今回はそうした使い方のサンプルを紹介する。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[132]PowerShell 7をインタラクティブシェルとして使う - cdのショートカット設定(その2)

前回はディレクトリに移動する処理(cd)をショートカット的に行う方法を取り上げた。ディレクトリ名が日付の場合、最も新しい日付に移動する処理をcd1、その1つ前の日付のディレクトリに移動する処理をcd2に、といった具合だ。今回はこれをもっとシンプル化したものを取り上げる。自分でカスタマイズする際の参考にしていただきたい。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[131]PowerShell 7をインタラクティブシェルとして使う - cdのショートカット設定

UNIX系のインタラクティブシェルでは特定のパスに移動する操作にエイリアスを設定することがある。実は、PowerShellでも関数を設定することで、同様のことができる。今回はそうした設定の例を紹介しよう。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[130]PowerShell 7.2プレビュー2登場

2020年11月15日(米国時間)、次のメジャーアップデートへ向けたプレビュー版となる「PowerShell 7.2 Preview 2」が公開された。PowerShell 7.2プレビュー2ではいくつかのバグが修正されているほか、パフォーマンスの向上、コードのクリーンナップ、-PipelineVariable共通パラメータの扱いの変更、新機能の追加などが行われている。新しく追加された$PSStyleはなかなかおもしろい。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[129]ネイティブコマンドをPowerShell化するというアプローチ

「PowerShell Crescendo」はネイティブコマンドをコマンドレットに置き換える機能を提供する。これまで本連載で取り組んできた内容とは逆の発想だが、PowerShellとしてはネイティブコマンドをコマンドレットにラッピングするほうが自然であり、PowerShell Crescendoはそれを実現するものとされている。今回はこのモジュールを追ってみよう。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[128]PowerShell 7.1 - ヌル条件演算子

PowerShell 7.0の段階で実験的機能としてヌル条件演算子が導入された。配列に対する表記方法は変更となったようだが、PowerShell 7.1ではこの機能が実験的機能から正式な機能へと格上げされている。これにより、従来のコーディングに影響を与えることなく、かつ、より短く簡潔な書き方が可能になる。今回は正式な機能となったヌル条件演算子を見てみよう。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[127]PowerShell 7.1に導入された実験機能 - PSNativePSPathResolution

PowerShell 7.1自体は漸進的なリリースとなっており、細かい変更や改善などを取り込んだバージョンだ。今回はPowerShell 7.1に正式に導入された実験機能から「PSNativePSPathResolution」を取り上げよう。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[126]PowerShell 7.1がMicrosoft Storeに登場

前回はWindowsとMacでPowerShellをインストール/アップデートする方法を取り上げた。現在利用するバージョンをアンインストールした後、GitHub.comからダウンロードしたパッケージをインストールする方法だ。実は、PowerShell 7.1からはMicrosoft Storeからもllがインストールできるようになった。その場合、自動アップデートが可能になる。今回は、この方法について説明しよう。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[125]PowerShell 7.1へアップデートする方法

PowerShell 7系の初のメジャーアップデートバージョンとなる「PowerShell 7.1.0」が公開された。今回は、Windows、Mac、LinuxでPowerShell 7.1にアップデートする方法について説明していこう。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[124]PowerShell 7をインタラクティブシェルとして使う - less以外のページャも使う(バグ修正)

前回はページャとして「less」に加えて「lv」も使うために、処理を汎用的な関数にまとめる方法を解説した。しかし、実際には前回の設定にはいくつかの問題がある。今回はその問題を解決していこう。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[123]PowerShell 7をインタラクティブシェルとして使う - less以外のページャも使う

Linuxにおいてページャは頻用するコマンドの一つだ。しかし、wsl経由でページャを使う方法は一筋縄ではいかない。本連載ではless専用に関数(less関数)を作成して$PROFILEに追加することでページャが動作するようにしてきたが、ページャごとに同じことをしていては$PROFILEがどんどん肥大化しまう。そこで今回は、less関数を汎用的に使えるように変更していく。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[122]PowerShell 7をインタラクティブシェルとして使う - Linuxをアップデートする

前回までに作ってきた$PROFILEによって、PowerShellからWSLで動作しているLinuxディストリビューションのコマンドをネイティブコマンドのように利用できるようになった。これまでの調整で、大きな問題点はほぼ解決されているはずだ。今回はその成果を確認しつつ、PowerShellからLinuxディストリビューションをアップデートする方法を取り上げる。PowerShellとLinuxが融合したような動作に見えるところが面白い。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[121]PowerShell 7をインタラクティブシェルとして使う - Linuxコマンドの複数引数に対応

本連載では、LinuxコマンドをPowerShellからネイティブコマンドのように使うための$PROFILEの作成を進めている。これまでに作成した$PROFILEでは、Linuxコマンドに2つ以上の引数が指定された場合に正しく動作しないことがわかった。今回は、この部分を修正する方法を取り上げる。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[120]PowerShell 7をインタラクティブシェルとして使う - lessをLinuxネイティブへ変更

前々回、WSLで動作するlessコマンドはパイプラインで接続するとPowerShellからはうまく使えないことを取り上げた。今回は、パイプラインを使う場合もLinuxのlessコマンドが利用できるように変更してみよう。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[119]PowerShell 7をインタラクティブシェルとして使う - 文字化けを解消

現在ではだいぶ減ってきているが、PowerShellとWSLを組み合わせて使っていると、ときどき文字化けが発生する。ASCIIの範囲内でしか使わない英語圏の方などはまるで問題にならないのだが、日本語の場合はそうもいかない。今回は文字化けが出る例を挙げ、それを解消するための設定方法について説明しよう。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[118]PowerShell 7をインタラクティブシェルとして使う - manとlessのイラつきを解消

前回までに作成した$PROFILEで、WSLで動作するLinuxのコマンドの大半をWindowsのPowerShellからシームレスに利用できるようになった。しかし、まだいくつか不満点が残る。それぞれはささいな操作なのだが、これが放置されていると使うたびに実にイラッとするからだ。こうしたちょっとした部分を調整していくことで、PowerShellはさらに使いやすいものになる。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[117]PowerShell 7をインタラクティブシェルとして使う - PATH周りを改善(その2)

前回は、Linuxの環境変数PATHに収められているコマンドをフルパスのリストとして得られるようにした。これは、Linuxの環境変数PATHが本来持っている検索の優先順位を反映させるためだ。それまでの実装はコマンド名のリストだけを取得して関数を作成しており、結果的にLinuxの環境変数PATHを反映したコマンドが実行されていたわけだが、もう少しPowerShell側で制御できるようにしておきたい。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[116]PowerShell 7をインタラクティブシェルとして使う - PATH周りの改善

前回までに、Linuxのコマンドをごっそり関数化してPowerShellから利用できるようにした。Linuxの環境変数PATHに含まれているコマンドを自動的に関数化したので、ほぼ全てのコマンドに対応した点がポイントだ。しかし、感の鋭い方ならすでに気がついていると思うが、前回の方法は環境変数PATHの優先順位を考慮していない。今回は、この部分をきちんと考慮して処理するように書き換えていく。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[115]PowerShell 7をインタラクティブシェルとして使う - パイプあり/なしへの対応

前回までの設定でWindowsからLinuxのコマンドのほとんどをネイティブコマンドのように呼び出すことができるようになった(ように見せかけていた)。だが、実はそれらの変更によって逆に動作しなくなったコマンドがある。これは、設定変更によってパイプラインがつながれたことが原因だ。今回はこの問題を解決して、パイプラインを使う場合も使わない場合も、問題なく動作させるための方法を紹介する。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[114]PowerShell 7をインタラクティブシェルとして使う - コマンドパスもLinuxから自動設定

前々回の設定で、Linuxの大半のコマンドをPowerShellからネイティブコマンドのように使うための設定を方法を取り上げた。そのときは対象となるディレクトリパスを手動で設定していたが、その部分も自動で設定されるように変更してみよう。

開発ソフトウェア

【連載】PowerShell Core入門 - 基本コマンドの使い方[113]PowerShell 7をインタラクティブシェルとして使う - Linuxのlsを使うように変更

前回の処理で、「ls」にはLinuxのlsコマンドが関数として定義されているのだが、「ls」を実行するとGet-ChildItemコマンドレットの実行結果が出力される。これは、PowerShell 7では「ls」はGet-ChildItemへのエイリアスになっており、エイリアスのほうが優先されるためだ。ただし、定義されているエイリアスは削除することができる。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[112]PowerShell 7をインタラクティブシェルとして使う - Linuxコマンドをまるごと関数化

前回はLinuxコマンドを汎用的にWindows 10から利用できるようにする方法を取り上げた。しかし、人間とはどんどん堕落していくもので、新しくインストールしたコマンドも含めて自動的に利用できるようになってくれないかな、と思うようになる。今回はその思いをかなえる方法を取り上げよう。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[111]PowerShell 7をインタラクティブシェルとして使う - コマンド関数定義を自動化

前回までに、Windows 10でLinuxコマンドを利用するための関数を定義する方法を取り上げた。使いたいコマンドが少ないうちはそのやり方でよいのだが、増える度に追加しているとこの部分が何百行にもなってしまう。今回はこの部分のコードを少し書き換えて、自動的に関数定義を行うように変更する。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[110]PowerShell 7をインタラクティブシェルとして使う - 関数でLinuxコマンドをネイティブ風に

前回、関数を使ってLinuxのコマンドをWindowsのコマンド風に使う方法を紹介した。その設定($PROFILE)はシンプルなものだったが、今回はこの設定ファイルをもうちょっとアップデートしてみよう。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[109]PowerShell 7をインタラクティブシェルとして使う- 関数で強力エイリアス

PowerShellでも、関数を使えばLinux系インタラクティブシェルと似たようなことは実現できる。前回はその例として関数を使った方法を紹介した。今回はもう一歩踏み込んだ使い方を取り上げよう。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[108]PowerShell 7をインタラクティブシェルとして使う - 関数で短縮入力

PowerShellのエイリアスは名前だけを置き換えるものだ。エイリアスにオプションを含ませたり、引数を持たせるといったことはできない。しかし、実際にはオプションや引数も含めて別のコマンド(エイリアス)に割り当てたい。そんな場合には「関数」を使おう。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[107]PowerShell 7をインタラクティブシェルとして使う - アプリの本体を調べる

前回はPowerShellからのアプリケーション起動を簡単にする方法として「エイリアス」を取り上げた。その設定を行うには、動作しているアプリケーションの本体となるファイルを知っている必要がある。そこで今回は、アプリケーションの本体を調べる方法を紹介する。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[106]PowerShell 7をインタラクティブシェルとして使う - エイリアス

PowerShellには「エイリアス」と呼ばれる機能が用意されているのだが、UNIX系のインタラクティブシェルで使われているエイリアスとはかなり趣向が異なっている。UNIX系インタラクティブシェルのエイリアスのように自由な置き換えはできず、かなり限定的な機能だが、使いこなせるようになると便利なものだ。今回は、このエイリアス機能を紹介しよう。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[105]PowerShell 7をインタラクティブシェルとして使う - 設定ファイル

インタラクティブシェルはデフォルト設定のまま使い続けることもあるが、エイリアスや関数を用意して変更することもあるだろう。カスタマイズするとしないのとでは作業効率に差が出るし、ストレスのかかり方も変わってくる。今回は、このカスタマイズを容易にしてくれる設定ファイルの使用方法を紹介しよう。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[104]PowerShell 7をインタラクティブシェルとして使う - Windows Terminal編

本連載ではPowerShell 7をインタラクティブシェルとして使う前提で話を進めていくが、ターミナルエミュレータにはWindows Terminalを使用する。Windows Terminalは従来のWindows PowerShellのウィンドウアプリケーションとは使い勝手がかなり異なるので、まずはその違いを把握しよう。起動方法、タブ、パネルは最低限押さえておきたい。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[103]PowerShell 7をインタラクティブシェルとして使う

多くの方が、時代的にはPowerShellへ移行するべきなのだろうと理解しつつも、結局使い慣れたコマンドプロンプトを使っているというのが実情だろう。だが、Windows Terminal 1.0もリリースされた今こそ、新しい環境へ移行する好機である。しばらくは「PowerShell 7をインタラクティブシェルとして使う」という視点から連載を進めていく。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[102]PowerShell 7.1開発:PSScriptAnalyzerモジュール

PowerShell 7.1 Preview 3はプレビュー版としてリリースされたにもかかわらず、変更内容は小粒だ。実はPowerShell 7.1の開発はPowerShell 7.1本体よりも、外部モジュールに対して行われている。外部モジュールで行われている開発はまだ本体にはマージされていない(または同梱されていない)のだ。今回はそうした機能の1つとして「PSScriptAnalyzer」を取り上げる。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[101]PowerShell 7.0.0から7.0.1へのアップグレード方法

2020年5月14日(米国時間)、PowerShell 7の初のマイナーアップデートバージョンとなる「PowerShell 7.0.1」が公開された。PowerShell 7を使っているのであれば、このリリースに薄々気がついていたのではないだろうか。PowerShell 7.0.0の起動時に、リリースを知らせる通知メッセージが表示されるようになっていたからだ。今回は、このアップグレード方法について説明する。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[100]PowerShell 7.1 Preview 3新機能 - PSDriveと「~」のネイティブコマンド対応

Microsoftは2020年5月19日(米国時間)、「PowerShell Team May 2020 Update | PowerShell」において、次期PowerShell 7.1へ向けた3つ目のプレビュー版となる「PowerShell 7.1 Preview 3」の公開を伝えた。PowerShell 7.1 Preview 3にはPSDriveに関する実験的な機能が取り込まれている。今回は同機能について取り上げる。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[99]PowerShell 7の学習用YouTubeリンク集

Microsoftは2020年5月11日(米国時間)、「PowerShell 7 Video Series | PowerShell」において、PowerShell 7の新機能や変更点などを説明した動画を公開した。PowerShell 7をめぐる新機能や変更点のうち、特に注目度が高い部分に絞って説明が行われている。今回は、それぞれの動画で取り上げている内容を簡単に説明しよう。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[98]PowerShellGet 3.0 Preview 2 - インストール/アップデート方法

MicrosoftのPowerShellチームは2020年4月30日(米国時間)、「PowerShellGet 3.0 Preview 2 | PowerShell」において、現在開発段階にあるPowerShellGetの2つ目のプレビュー版の公開を伝えた。今回はこの新しいプレビュー版へアップデートする方法(またはインストールする方法)を説明する。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[97]PowerShellGet 3.0 - 使用サンプル

PowerShellGetや現在開発が進められているPowerShellGet 3.0については、これまで紹介してきた通りだ。まだそのまま使えるところまで仕上がっているとは言えないが、この秋以降にリリースが予定されている正式版の狙いは見えてきたのではないだろうか。そこで今回は、実際の使い方について簡単に紹介しておきたい。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[96]PowerShellGet 3.0 - インストール方法

PowerShell 7.0.0にはすでに「PowerShellGet 2.2.3」がインストールされている。このため、現在開発が進められているPowerShellGet 3.0プレビュー版を試用するのは難しいと考えるかもしれないが、実は「PowerShellGet 2.2.3」と「PowerShellGet 3.0 Preview 1」は両方同時に使うことができる。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[95]PowerShellGet 3.0が目指すもの

Microsoftは2020年3月30日(米国時間)、「PowerShellGet 3.0 Preview 1|PowerShell」において、PowerShellGetの次期バージョンへ向けた初のプレビュー版となる「PowerShellGet 3.0 Preview 1」の公開を伝えた。今回はこの新しいプレビュー版が最終的にどのような機能を実現することを目指しているかについて取り上げようと思う。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[94]PowerShellGet 3.0 Preview 1登場

PowerShellGet 3.0はPowerShellGetにとって重要度の高いバージョンになる。PackageManagementおよびNuGetプロバイダに依存している現在のコードを削除するとともに、コードベースをPowerShellスクリプトからC#に変更する開発を進めている。これによってメンテナンスが従来よりも簡単になる見通しだ。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[93]PowerShell 7.1 Preview 1登場

PowerShell 7が公開されたばかりなのだが、Microsoftは2020年3月26日(米国時間)、PowerShell 7の次のバージョンとなる「PowerShell 7.1」へ向けた最初のプレビュー版「PowreShell 7.1 Preview 1」の公開を伝えた。Microsoftは早めに次のバージョンのプレビュー版を公開し、開発を進めていきたい意向を示している。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[92]PowerShell 7 インストール方法(Windows、macOS、Ubuntu)

Microsoftは2020年3月4日(米国時間)、「Announcing PowerShell 7.0」においてWindows PowerShellの後継プロダクトとなる「PowerShell 7.0」の公開を発表した。今後同社は、Windows 10で使用する正式なPowerShell実装系としてPowerShell 7を使うことになる。このタイミングでもう一度インストール方法についてまとめておく。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[91]Visual Studio Code、PowerShell 7に対応

Microsoftは2020年3月5日(米国時間)、「Visual Studio Code for PowerShell 7」において、Visual Studio Code向けのPowerShell拡張機能のメジャーアップデート版を公開したと伝えた。同版は、アーキテクチャの刷新やバグ修正などを含んでいるほか、先日公開された「PowerShell 7.0」に対応している。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[90]PowerShell 7.0登場

Microsoftは2020年3月4日(米国時間)、Windows PowerShellの正式な後継バージョンとなるPowerShell 7系の初の一般公開リリース「PowerShell 7.0」の公開を発表した。本連載ではPowerShell 7.0の新機能について長らく取り上げてきたが、今回はMicrosoftがアナウンスの中で挙げた新機能を改めて取り上げておこう。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[89]PowerShell 7.0.0 Preview1-RC3 ベンチマーク(Windows 10)

PowerShell 7.0.0 RC3までは公開されたものの、正式版の公開までは後1、2カ月かかりそうだ。せっかくプレビューが6個、候補リリースが3個公開されているので、その過程でPowerShell 7のパフォーマンスに変化があったのかどうか、調べてみようと思う。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[88]PowerShell 7.0.0 - 長引く候補リリース

Microsoftは、2019年12月17日(米国時間)に「PowerShell 7.0.0 Release Candidate 1」を公開した。同社は当初、この候補リリースが正式公開前の最後のリリースになるだろうと説明しており、2020年1月には正式版となる「PowerShell 7.0.0 GA」を公開する予定にしていた。しかし、実際には2月末になった現在も正式版は公開されていない。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[87]PowerShell 7.0.0 Preview6新機能 - ネットワーク接続テストほか

PowerShell 7.0.0 Preview6で導入された新機能や変更点について取り上げるのは、今回が最後になる。正式リリース前のプレビュー版だが、これまでに紹介したようにPreview6には多数の新機能追加や機能改善が行われている。Windows PowerShellの後継プロダクトに位置づけるための変更が急ピッチで行われた印象だ。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[86]PowerShell 7.0.0 Preview6新機能 - プリンタとゴミ箱

MicrosoftはPowerShell 7をWindows PowerShellの正式な後継プロダクトと位置付けた。このため、PowerShell Core 6としてオープンソース化する段階でそげ落とした機能の復活が続けられている。今回はそうした機能の1つとして印刷機能とゴミ箱のクリア機能を取り上げる。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[85]PowerShell 7.0.0 Preview6新機能 - GUIサポート

Windows PowerShellにはもともとGUI系のコマンドレットが存在している。これは.NETがWPFをサポートしているためだ。しかし、.NET CoreからはWPFのサポートが廃止された。そのため、PowerShell CoreからもGUI系のコマンドレット機能が削除されている。今回、.NET Core 3.0にWPFのサポートが戻ってきた。今回はこれによって復活した機能について紹介する。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[84]PowerShell 7.0.0 Preview6新機能 - パフォーマンスカウンター

パフォーマンスモニターが表示するデータはWindows PowerShellからも取得することができるのだが、PowerShell CoreというOSSになった段階で利用することができなくなった。しかし、PowerShell 7.0.0 Preview6から、このWindowsのパフォーマンスカウンター情報に再度アクセスできるようになった。今回はこのデータを取得する方法を紹介する。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[83]PowerShell 7.0.0 Preview6新機能 - Clipboardコマンドレット

PowerShell 7.0.0 Preview 6には、PowerShell Coreとして公開された段階で削除されたコマンドレットのいくつかが復活している。そのなかから今回は、クリップボートとデータのやり取りを行うGet-ClipboardコマンドレットとSet-Clipboardコマンドレットを取り上げる。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[82]PowerShell 7.0.0 Preview6新機能 - LinuxとmacOSでファイルシステム情報改善

PowerShellがもともとWindowsプラットフォームで開発されているためか、UNIX系ファイルシステムのアクセス保護/リソース保護の情報がうまく扱われていなかった。例えばdir (Get-ChildItem)でLinuxのファイルやディレクトリの情報を表示させると、Windows風のファイルシステム情報が表示されてしまう。これはLinuxやmacOS側からすると、管理向けのシェルとして使うには結構な問題だ。PowerShell 7.0.0 Preview 6ではこの部分が改善されている。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[81]PowerShell 7.0.0 Preview6新機能 - ヌル条件演算子

PowerShell 7.0.0 Preview6にヌル系の機能として新しく「ヌル条件演算子」という機能が取り込まれた。現段階ではまだ実験的な機能として導入されているが、このままいくとそう遠くない段階で正式な機能として有効化されることが見込まれる。今、このタイミングで取り上げておくのはよい頃合いだろう。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[80]PowerShell 7.0.0 Preview6新機能 - Webコマンドレットにおけるエラーチェック回避機能

PowerShell 7.0.0 Preview6の新機能を紹介する前にPowerShell 7.0.0 RCが公開されてしまったため、順序が逆になってしまったが、PowerShell 7.0.0 Preview6で導入された新機能を順次紹介していこうと思う。PowerShell 7.0.0 RCはすでにリリースへ向けたバグ修正などしか行われていないので、正式版がリリースされるまではPreview6で導入された機能を紹介したほうがよいだろう。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[79]PowerShell 7.0.0 リリース候補登場

Microsoftは2019年12月16日(米国時間)、「Announcing the PowerShell 7.0 Release Candidate | PowerShell」において、PowerShell 7の最新リリース候補版(RC: Release Candidate)となる「PowerShell 7.0.0 Release Candidate」の公開を伝えた。このバージョンは『Go Live』リリースとされており、2020年1月に一般公開版(GA: General Availability)が公開されるまで、正式に運用環境がサポートされることになる。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[78]PowerShell 7.0.0 Preview6登場 - 新機能追加最後のバージョン

MicrosoftからPowerShell 7のリリースへ向けた最新プレビュー版となる「PowerShell 7.0.0 Preview6」が公開された。Microsoftはこのリリースを最後のプレビューリリースにするとしており、新機能が追加される最後のバージョンとなる。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[77]PowerShell 7.0.0 Preview5新機能 - 見やすくなったエラーメッセージ

PowerShellでは誤った処理を行うと赤い文字でエラーメッセージが表示される。これは、「$ErrorView」の値を変更することで変えられるのだが、PowerShell 7.0.0-preview5では、その設定値として新たに「ConciseView」が追加され、デフォルトになっている。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[76]PowerShell 7.0.0 Preview5新機能 - 見やすくなったSelect-String

PowerShell 7.0.0-preview5ではSelect-Stringコマンドレットにもちょっとした工夫が取り込まれている。Select-StringコマンドレットはUNIXのコマンドで言えば、grepコマンドに相当する機能で、指定したキーワードを含む行だけを抽出するといった処理を可能にしてくれる。テキストデータを処理することが多いとSelect-Stringコマンドレットは利用することが多い。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[75]PowerShell Core入門 - 基本コマンドの使い方

PowerShellにはデータを16進数でダンプするコマンドレットとして「Format-Hex」が用意されている。このコマンドレットを使うと、パイプラインを流れてくるオブジェクトの中身を16進数で表示できる。データ分析やコマンド開発をしていて、あるデータがどういう形式のデータとして送られてきているかをチェックしたいことがあるが、そういった場合に利用できるコマンドレットだ。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[74]PowerShell 7.0.0 Preview5新機能 - 強化されたタブ補完機能

「PowerShell 7 Preview 5」にはプログラミング言語としての新機能も追加されているが、インタラクティブシェルとしての利用においての利便性も向上している。特に注目したいのがタブ補完機能の強化だ。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[73]PowerShell 7.0.0 Preview5新機能 - ヌル合体演算子/ヌル合体代入演算子

「PowerShell 7 Preview 5」に導入された新機能を紹介する。今回紹介するのはヌル合体演算子とヌル合体代入演算子だ。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[72]PowerShell 7.0.0 Preview5新機能 - パイプラインチェイン演算子

PowerShell 7はそろそろ正式リリースへ向けたバグ修正や互換性向上、安定性改善、パフォーマンス向上などに取り組むべきタイミングに来ているが、先日公開された「PowerShell 7 Preview 5」にはいくつもの新機能が追加されている。どの機能も興味深いが、UNIX系のシェルに慣れたユーザーにとっては新しく追加された「パイプラインチェイン演算子」が特に興味深いはずだ。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[71]PowerShell 7.0.0 Preview5登場

Microsoftは2019年10月23日(米国時間)、「PowerShell 7.0.0 Preview5」において、PowerShell 7.0.0へ向けた5つ目のプレビュー版となる「PowerShell 7.0.0 Preview5」の公開を伝えた。Microsoftは2019年11月に「PowerShell 7.0.0 Preview6」の公開を予定しており、2019年12月にはリリース候補版の提供が予定されている。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[70]PowerShell 7.0.0 Preview4新機能 ForEach-Object並列処理(3)

ForEach-Objectコマンドレットの並列処理性能は、PowerShell 7.0.0 Preview4でわずかに改善した。PowerShell 7.0.0 Preview3の段階のForEach-Objectコマンドレットは、同時に実行される実行スペース(runspace)の数が多くなるとパフォーマンスが悪化するという問題があったのだが、これが修正されたのだ。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[69]Windows PowerShell 5.1のヘルプを更新する方法

PowerShellはPowerShell 3.0のときにヘルプドキュメントを更新可能な仕組みへ変更した。ヘルプドキュメントは自分でも更新することが可能だ。今回はその方法を紹介する。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[68]PowerShell 7.0.0 Preview4登場

今回は、2019年9月19日(米国時間)に公開された「PowerShell 7.0.0 Preview3」の変更点や新規を取り上げる。プレビュー版はバグ修正が主な目的とされているが、それでもいくつかの新機能が導入されている。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[67]PowerShell 7.0.0 Preview3新機能 ForEach-Object並列処理 (2)

前回はPowerShell 7.0.0 Preview 3に新しく追加されたForEach-Objectコマンドレットの並列処理機能(-Parallel)について紹介した。今回はこの機能の利点や欠点についてもうちょっと突っ込んで説明しておこう。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[66]PowerShell 7.0.0 Preview3新機能 ForEach-Object並列処理

「PowerShell 7.0.0 Preview 3」の新機能の中でプレビュー3で特に注目されるのは、ForEach-Objectコマンドレットに新しく「-Parallel」というパラメータが追加されたことだ。この機能は名前のとおり、ForEach-Objectの処理を並列処理に変更するための指定になっている。多少癖はあるが、今回はこの機能の使い方を紹介する。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[65]Visual Studio Code 使用方法 (4)

Visual Studio Codeを使う場合、PowerShell CoreのインタラクティブシェルやPowerShell Coreシェルスクリプトと同じことを実行するには、そのための設定が必要になる。今回はそういった細かいティップスを紹介しよう。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[64]Visual Studio Code 使用方法(3)

今回は、Visual Studio CodeでPowerShell Coreスクリプトを作成する方法に戻ろう。ある程度操作方法に慣れてくれば、PowerShell Coreシェルでコーディングしていくよりも、Visual Studio Codeでコーディングしながら実行していく方が楽になっていく。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[63]PowerShell 7.0.0 Preview3登場

先日、「PowerShell 7.0.0-Preview.3」が公開された。本連載では、Visual Studio Codeの解説を進めているが、一旦中断して、アップデート方法と変更点を紹介しておこう。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[62]Visual Studio Code 使用方法(2)

前回はVisual Studio CodeでPowerShellエクステンションを使うことでコーディング支援機能が動作し、リッチな編集が可能になることを取り上げた。今回は、ファイルを作成して一からコーディングしていく場合にどういった操作が行われるのか、紹介する。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[61]Visual Studio Code 使用方法(1)

前回はVisual Studio CodeのインストールとPowerShellエクステンションをインストールする方法を取り上げた。今回はPowerShellエクステンションがどのような機能を提供しているのかを紹介しよう。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[60]Visual Studio Codeの準備

これからはPowerShell Coreをシェルスクリプトの形で利用するスタイルも取り上げていくう。そういった場合にはエディタというか開発環境が欲しくなってくるのだが、ここでは最近特に人気のある「Visual Studio Code」を取り上げよう。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[59]PowerShell Core 6にセキュリティ脆弱性、アップデートを

Microsoftは2019年7月17日、PowerShell Core 6.1およびPowerShell Core 6.2にセキュリティ脆弱性が存在すると伝えた。今回はアップデートの方法をご紹介する。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[58]Windows Terminal 設定方法

Windows Terminalは最近のアプリケーションっぽく、設定変更するにはJSONファイルを編集するかたちになっている。今回はその設定方法を紹介する。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[57]Windows Terminal アップデート

しばらくの間Windows Terminalは細かくアップデートを繰り返しながら使うことになる。Windows Terminalのプレビュー版はMicrosoft Store経由で入手できるようになっており、Microsoft Store経由でインストールした場合にはMicrosoft Store経由でアップデートを実施することになる。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[56]Windows Terminal

Windowsのコンソール事情が変わろうとしている。MicrosoftはコマンドプロンプトやWindows PowerShellといったコンソールアプリケーションをオープンソースソフトウェアとして公開するとともに、「Windows Terminal」というアプリケーションの開発に着手した。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[55]PowerShell 7.0.0 Preview1 パフォーマンス比較 その3

「PowerShell 7.0.0 Preview1」はパフォーマンスが大幅に向上しているとされている。実際にどの程度性能に差があるのか確認するためにさまざまな環境でベンチマークテストを実行しているが、今回はUbuntu 18.04で試してみよう。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[54]PowerShell 7.0.0 Preview1 パフォーマンス比較 その2

PowerShell 7.0.0 Preview1のパフォーマンスを測定した結果、前回のベンチマークでは逆に悪化する結果となったわけだが、これはmacOS環境に由来するものとも考えられる。今回は、Windows 10で同じベンチマークを実行してみよう。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[53]PowerShell 7.0.0 Preview1 パフォーマンス比較

PowerShell 7.0.0 Preview1の最大の特徴は、ベースとなる.NET Coreのバージョンが.NET Core 2.1から.NET Core 3.0へ移行したことにある。パフォーマンスが向上したのかベンチマークで試してみよう。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[52]PowerShell 7.0.0 Preview1登場

PowerShellチームは2019年5月30日(米国時間)、「PowerShell 7 Road Map|PowerShell」において、PowerShell 7の初のプレビュー版となる「PowerShell 7.0.0 Preview1」の公開を伝えた。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[51]型演算子

今回は型演算子を取り上げる。特徴的な機能であり本格的にコーディングに取り組む際には知っておきたい機能だ。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[50]リダイレクト演算子

UNIX系のシェルを扱う方なら、リダイレクトを使ったことがあるだろう。PowerShellでも同様の操作でリダイレクトが可能だが、ストリームの種類が豊富という特徴がある。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[49]比較演算子

PowerShell Coreの比較演算子は、現在主流のプログラミング言語と比べるとかなり特徴的だ。ハイフンからはじまる文字列が比較演算子になっている。今回はこの比較演算子について取り上げる。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[48]PowerShell Core 6.2の次は「PowerShell 7」

先日最新版となる「PowerShell Core 6.2」が公開されたばかりだが、すぐに次のニュースが飛び込んできた。MicrosoftがPowerShell Core 6.2の次のバージョンを「PowerShell 7」として公開すると発表したのだ。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[47]PowerShell Core 6.2 実験的新機能 - typo判定ほか

先日公開された「PowerShell Core 6.2」は、ユーザから寄せられた使い勝手に関する機能の導入や、バグ修正などが中心だ。しかし、実験的機能という位置づけで、いくつか興味深いものが追加されている。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[46]PowerShell Core 6.2登場

Microsoftは2019年3月28日(米国時間)、「General Availability of PowerShell Core 6.2 | PowerShell」において、PowerShell Coreの最新版となる「PowerShell Core 6.2」の公開を伝えた。今回のバージョンは利便性の向上に焦点が当てられている。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[45]代入演算子

今回は代入演算子をしっかりと取り上げておこう。もっとも代表的な代入演算子は=だ。=の右側を先に評価し、その結果を左側の変数などに代入するというのがよく使われる方法だ。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[44]算術演算子

今回からはもう少し詳しくPowerShell Coreの機能を取り上げていく。今回は算術演算子だ。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[43]関数 ヘルプのドキュメント

PowerShell Coreでは関数内部または関数の直前にヘルプで表示されるドキュメントをコメントとして書けるようになっている。ある程度関数を使うようになったら習慣づけたい。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[42]関数 関数ドライブ

前回より関数について掘り下げているが、PowerShell Coreの関数は、関数ドライブという点からアクセスする方法も用意されている。今回はその関数ドライブを取り上げる。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[41]関数 スコープ

PowerShell Coreで関数を扱い始めたからには、そろそろスコープについても理解しておかなければならない。スコープとはアクセスできる範囲のようなものだ。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[40]関数 オブジェクト渡しとフィルタ

UNIXのシェルではパイプラインを流れるデータは一方通行であり、かつ、データはそのままデータとして流れていく。一方、PowerShell Coreではパイプラインを流れていくのはオブジェクトであり、複数のオブジェクトを流すことができる。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[39]関数 ポジションパラメータ、スイッチパラメータ、パラメータ渡し

前回紹介したのは名前付きパラメータと呼ばれる機能で、たとえば「-Offset 10」のように、パラメータ名とその引数で構成されたものだった。PowerShellではこれ以外に引数を取らないパラメータも指定できるし、そもそもパラメータではなく引数に値だけを列挙するといった使い方もできる。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[38]関数 関数名とパラメータ

制御構文とデータ格納については基本的なところを網羅したので、今回からは関数を取り上げていく。スクリプト言語やプログラミング言語としてPowerShell Coreを使おうと思ったら欠かすことのできない機能だ。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[37]do制御構文

while制御構文と似たものにdoがある。PowerShell Coreのdo制御構文は次のようにdo-whileまたはdo-untilの形式で使用する。条件が満たされている場合は繰り返す、または、条件が満たされるまでは繰り返す、という動作を実現する。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[36]trap制御構文

try-catch制御構文と似ような機能にtrap制御構文がある。この機能もPowerShell Coreのシェルスクリプトで使われているので、使い方や動作の内容を理解しておく必要がある。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[35]throw文

前回、いわゆる例外処理を行うためのtry-catch制御構文を紹介した。これに関連する機能として今回はthrow文を取り上げる。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[34]try-catch制御構文

PowerShell Coreは、シェルとして開発されているが、オブジェクト指向のプログラミング言語としての側面を備えており、制御構文としてtry-catchを使用することができる。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[33]foreach制御構文

これまで繰り返し制御構文としてfor制御構文とwhile制御構文を取り上げた。今回は別の繰り返し制御構文としてforeach制御構文を紹介する。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[32]for制御構文

繰り返し構文で代表的なもののひとつがfor制御構文だ。for制御構文でできることはwhile制御構文でできることとほとんど同じ。for制御構文とwhile制御構文は書き方が違うといった捉え方をしておくと良いかも知れない。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[31]while制御構文

今回はPowerShell Coreの中でももっともシンプルなwhile制御構文を取り上げる。while制御構文は条件に一致する限りブロックの中の処理を繰り返すというものだ。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[30]switch制御構文

今回はif制御構文と同じような処理を行う方法としてswitch制御構文を取り上げる。if制御構文もswitch制御構文も行う内容は同じだが、書き方が異なる。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[29]if制御構文

PowerShellをシェルスクリプトとして使うようになってくると、if制御構文が欠かせなくなる。今回はこの制御構文について説明する。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[28]PowerShell Core 6.1新機能 Type Accelerators、MSIインストールパスほか

PowerShell Core 6.1には新機能の追加以外にもWindowsプラットフォームに特化した変更や新しい機能の追加などが実施されている。細かい機能追加なども含めて紹介しよう。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[27]PowerShell Core 6.1新機能 Update-Helpほか

PowerShell Core 6.1ではコマンドレットごとに細かい機能追加や改善も実施されている。今回はそうしたコマンドレットのうちUpdate-Help、Where-Object、New-ModuleManifest、Measure-Objectを取り上げる。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[26]PowerShell Core 6.1新機能 接続テストコマンドレット

PowerShell Core 6.1には新しくTest-Connectionコマンドレットが移植されている。いわゆるpingのPowerShell Core版というもので、これを使うと、対象のホストが到達可能である場合にはこの処理を行い、そうでない場合にはこちらの処理を行う、といった切り分けを記述できる。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[25]PowerShell Core 6.1新機能 - コンテキストメニューとcd

PowerShell Core 6.1ではプログラミング言語としての機能以外にも、Windowsプラットフォーム向けの改善も取り込まれている。使いやすい新機能のひとつはコンテキストメニューだ。ファイルエクスプローラを使っている最中に、閲覧しているフォルダからPowerShell Core 6.1を起動することが可能になった。ショートカットジャンプリストやcdコマンドのちょっとした改善にも注目しておきたい。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[24]PowerShell Core 6.1新機能 SSHリモート

PowerShell Core 6.0よりリモートセッションプロトコルにSSHが利用できたが、PowerShell Core 6.1では指定方法がよりsshに近いものになっている。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[23]PowerShell Core 6.1新機能 Markdownコマンドレット

PowerShell Core 6.1では新しいコマンドレットとしてMarkdown関連が導入された。Markdownは、HTMLなどに変換することを前提としたシンプルなマークアップ言語で、さまざまなCMSでも使われている。便利なので紹介しておこう。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[22]PowerShell Core 6.1のパフォーマンスを試す

連載当初はPowerShell Core 6.0.2を使っていた。「What's New in PowerShell Core 6.1 | Microsoft Docs」にパフォーマンスが向上したことを示すわかりやすいベンチマーク方法が掲載されているので、これをmacOSで6.0.2と6.1を比較した結果を参考までに取り上げよう。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[21]PowerShell Core 6.1アップデート/インストール

2018年9月13日(米国時間)、PowerShell Coreの最新版となる「PowerShell Core 6.1」が公開された。今回のバージョンでは新機能の追加やパフォーマンスの向上のほか、Windowsの組み込みモジュールとの互換性が向上している。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[20]DATAセクション

配列やハッシュテーブルのようにデータを格納する方法ではないが、PowerShell Coreのスクリプトを読む上で欠かすことのできない「DATAセクション」という機能を紹介しておく。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[19]列挙型

前々回と前回でデータを格納する方法として配列とハッシュテーブルについて取り上げた。今回はデータを格納する目的ではないが、PowerShell Coreでスクリプトを作成するにあたって重要になってくる列挙型について取り上げる。列挙型はプログラミングをしたことがない場合には存在意義がよくわからない機能のひとつだが、とても便利な機能なので早めに馴れておいた方がよい。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[18]ハッシュテーブル

PowerShell Coreには「ハッシュテーブル」と呼ばれるデータ格納方法が用意されている。ハッシュテーブルにはインデックスがなく、その替わりに鍵を指定する。。ハッシュテーブルはPowerShell Coreにおけるデータ格納方法として基本的なもののひとつであり、使い方を知っておく必要がある。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[17]配列

PowerShell Coreはデータ型として配列を提供している。配列を作るにはカンマ区切りで並べて変数を定義すればよいが、要素数1個や0個の配列を作るには専用の定義方法が必要になる。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[16]自動変数

PowerShell Coreには実行中にPowerShell Coreによって生成される「自動変数」がある。自動変数はすべて覚える必要はなく、利用頻度の高いものを覚えておけばよい。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[15]ユーザ設定変数

PowerShell Coreにはユーザ設定変数(Preference Variable)と呼ばれる変数が存在している。これはPowerShell Coreの挙動に影響を与える変数で、PowerShell Coreを起動してから終了するまで使われている。ユーザはこの値を変更することが可能で、必要に応じてPowerShell Coreの挙動を変更することができる。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[14]環境変数とは

PowerShellの変数には特別な用途で使われる変数がある。環境変数、自動変数、ユーザ定義変数などがそれにあたるが、今回はその中から環境変数を取り上げて紹介する。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[13]変数の使い方

これまでコマンドレットを中心にその使い方を紹介してきた。PowerShellをより使いこなしていくには、コマンドレットだけではなくプログラミング言語としての側面について知っておく必要がある。今回はPowerShellにおける基本のひとつである変数について説明する。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[12]オブジェクトのプロパティを表示 Format-List

シェルの場合パイプラインを流れるのは見たままのデータなのだが、PowerShell Coreではパイプラインの間を移動していくのはオブジェクトで、表示されているデータそのものではないことはこれまで何度かふれてきた。そうなると、そもそもそのオブジェクトとは何だということになるわけだが、今回はそれを体感しやすくするコマンドレットとしてFormat-Listについて紹介しようと思う。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[11]日付を演算 Get-Date

Get-Dateコマンドレットで取得できる日付データ(日付オブジェクト)はデータ間で演算することができる。こうした機能を利用することで比較対象となったデータが指定した日時内に含まれてるかどうかといった判断を行うことができる。日付に関する処理は自動化することの多い部分なので、基本的な使い方はマスターしておきたい。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[10]日付を表示 Get-Date

PowerShell Coreでは日付をただの文字列としてではなく、日付データとして柔軟に利用できる。まずは、Get-Dateコマンドレットの基本的な使い方を覚えてしまおう。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[9]ファイルの中身を表示 Get-Content、Out-Host

今回はファイルの中身を確認することができるコマンドレットGet-Contentの基本的な使い方を紹介する。ページャ的な見方をする方法、先頭だけを表示する方法、末尾だけを表示する方法、ログファイルのように逐次データが追加されるようなファイルをモニタリングする方法などを説明する。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[8]文字列の一致検索 Select-String、Out-String

シェルにおいて最も頻繁に利用するコマンドの一つがgrepだ。しかし、Windowsではgrepが利用できない。今回はSelect-StringとOut-Stringコマンドレットを使ってgrepのような処理を実現する方法を紹介する。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[7]ファイルやディレクトリの作成、削除、コピー、移動

ファイルやディレクトリ(フォルダ)の作成、名前の変更、移動、コピーなどもシステム管理の基本だ。こうした機能ももちろんPowerShell Coreにおいて提供されている。今回はそうした処理を行うコマンドレットNew-Item、Remove-Item、Copy-Item、Move-Itemコマンドレットを紹介する。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[6]ファイルやディレクトリの表示 Get-Item、Get-ChildItem、Format-List

システム管理でもっとも基本となる操作はディレクトリ(フォルダ)の 移動とファイルやディレクトリの一覧表示だ。今回はGet-ItemとGet-hildItemというコマンドレットを取り上げたい。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[5]PowerShellコマンドレットを覚える優先順位

PowerShellのすべてのコマンドレットとその使い方を覚えるのは不可能だ。覚えるにあたっては利用頻度が高いものを選んだ方がよいわけだが、そのひとつの指針としてエイリアスの用意されているコマンドレットに注目するという方法がある。エイリアスが用意されているということは、それだけ使用頻度の高いコマンドレットだからだ。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[4]プロファイルを活用しよう

PowerShell Coreをしばらくインタラクティブシェルとして使っていると感じると思うが、コマンドレットや関数の名前が長くて打つのが面倒くさい。今回はこうした面倒臭さを低減するためにプロファイルを利用する方法を紹介する。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[3]コマンドとは? - コマンドレット、関数、エイリアス、アプリケーションの違い

PowerShell Coreを使い始める最初の段階では、まず「コマンド」について理解しておく必要がある。PowerShell Coreには、代表的なコマンドとしてコマンドレット、関数、エイリアス、アプリケーションが用意されているので、これらの違いを把握しておこう。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[2]PowerShell Coreのインストール

PowerShell Coreは2018年1月に最新版となる「PowerShell 6.0」が公開されたばかりのソフトウェア。まだMicrosoftストアには登録されていないし、Linuxディストリビューションのパッケージ管理システムにも登録されていない。今回はWindows 10、macOS、Ubuntu 16.04にインストールする方法を紹介する。

サーバ/ストレージ

【連載】PowerShell Core入門 - 基本コマンドの使い方[1]PowerShell Coreとは

Microsoftはこのほど、これまで10年間に渡ってWindowsに同梱してきたPowerShellをリファクタリングし、オープンソースソフトウェアとしてmacOSやLinuxでも利用できるようにした「PowerShell Core」を公開した。これまでWindows専用だった方のPowerShellの開発は終了し、今後はPowerShell Coreを開発していく計画だ。本連載ではこの新しいスタンダード「PowerShell Core」を紹介していく。

開発ソフトウェア

注目の特集/連載
[解説動画] Googleアナリティクス分析&活用講座 - Webサイト改善の正しい考え方
Slackで始める新しいオフィス様式
Google Workspaceをビジネスで活用する
ニューノーマル時代のオウンドメディア戦略
ミッションステートメント
次世代YouTubeクリエイターの成長戦略
IoTでできることを見つけるための発想トレーニング
教えてカナコさん! これならわかるAI入門
AWSではじめる機械学習 ~サービスを知り、実装を学ぶ~
Kubernetes入門
SAFeでつくる「DXに強い組織」~企業の課題を解決する13のアプローチ~
マイクロサービス時代に活きるフレームワーク Spring WebFlux入門
AWSで作るマイクロサービス
マイナビニュース スペシャルセミナー 講演レポート/当日講演資料 まとめ
セキュリティアワード特設ページ

一覧はこちら

今注目のIT用語の意味を事典でチェック!

一覧はこちら

会員登録(無料)

ページの先頭に戻る