
単純なファイル転送やExcelレポートの生成にまだカスタムPowerShellスクリプトを使っているなら、ワークフローを効率化しましょう。あらかじめ構築されたPowerShellモジュールを使えば、ほとんどの定型タスクを手動でスクリプト化するよりもはるかに効率的に処理できます。
これらのモジュールを使用するには、PowerShell 5.1以降を実行していることを確認してください。多くのモジュールは様々なプラットフォームでPowerShell 7と互換性がありますが、一部のモジュールはWindowsのみで動作する場合があります。また、以下の手順で実行ポリシーを調整してスクリプトの実行を有効にすることも重要です。
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned -Force
モジュールをインストールするときは、管理者権限が必要ないように、常に-Scope CurrentUserパラメータを使用します。
6 PSReadLine
PowerShellにデフォルトで含まれるPSReadLineは、熟練ユーザーでさえも十分に活用されていないことがよくあります。このモジュールは、構文の強調表示、複数行編集、予測インテリセンス機能などの機能により、コマンドラインエクスペリエンスを向上させます。

PSReadLine の最新バージョンを取得するには、次のコマンドを使用します。
Install-Module -Name PSReadLine -Scope CurrentUser -Force
IntelliSense を有効にすると、コマンド履歴が拡張され、入力時に候補が表示されます。以下のコマンドで有効にできます。
Set-PSReadLineOption -PredictionSource HistorySet-PSReadLineOption -PredictionViewStyle ListView
ipconfigやGet-Serviceなどのコマンドを事前にいくつか実行しておくと、入力を開始するとIntelliSenseが履歴から候補を表示します。候補は上下矢印キーで移動でき、 Enterキーで確定できます。
5 Excelのインポート
1, 400 万回以上ダウンロードされている ImportExcel は、Excel 自体を必要とせずに Excel スプレッドシートを作成したいユーザーに人気があり、サーバー環境や自動化スクリプトに最適です。

ImportExcel をインストールするには、次のコマンドを入力します。
Install-Module -Name ImportExcel -Scope CurrentUser
このモジュールは、基本的なエクスポートから、ピボットテーブルや条件付き書式設定といったより複雑な機能まで、幅広いタスクを実行できます。例えば、実行中のプロセスに関する情報をフォーマットされたスプレッドシートにエクスポートするには、次のようにします。
Get-Service | Where-Object {$_.Status -eq "Running"} |Export-Excel -Path "ServiceReport.xlsx" -AutoSize -TableStyle Medium9 -FreezeTopRow
このコマンドは、すべてのアクティブなサービスを収集し、Excel ファイルにエクスポートします。列をコンテンツに合わせてフォーマットし、便宜上ヘッダー行を固定します。

4 PSWriteHTML
PSWriteHTML を使用すると、HTML コーディングに関する事前の知識がなくても、PowerShell の出力を表やグラフを含む HTML レポートに変換できます。

次のコマンドでモジュールをインストールします。
Install-Module -Name PSWriteHTML -Scope CurrentUser
CPU 使用率上位 10 個のプロセスを強調表示するシステム レポートを作成するには、次のコマンドを使用します。
Import-Module PSWriteHTML;$procs = Get-Process | Select-Object Name, CPU, WorkingSet -First 10New-HTML -TitleText "System Report" -FilePath "Report.html" -ShowHTML {New-HTMLSection -HeaderText "Process Information" {New-HTMLTable -DataTable $procs -Filtering -Buttons @('copyHtml5', 'excelHtml5')}}
生成された HTML には、JavaScript による並べ替え、フィルタリング、エクスポート機能が備わっています。

3 PSWindowsUpdate
PowerShell ギャラリーで 3, 300 万回以上ダウンロードされている最も人気のあるモジュールである PSWindowsUpdate は、Windows Update クライアントを管理するために特別に設計されたコマンドレットを提供します。

次のコマンドを使用してインストールします。
Install-Module -Name PSWindowsUpdate -Scope CurrentUser
このモジュールは、包括的なWindows Update管理のためのコマンドレットを提供します。タスクの自動化に最適です。複数のサーバーで保留中の更新プログラムを同時に確認するには、以下のコマンドを使用します。
$Servers = 'SERVER01', 'SERVER02', 'SERVER03'Invoke-Command -ComputerName $Servers -ScriptBlock {Import-Module PSWindowsUpdate<|image_sentinel|>Get-WindowsUpdate -MicrosoftUpdate | Select-Object @{n='Computer';e={$env:COMPUTERNAME}}, KB, Title, Size, IsDownloaded, IsInstalled, RebootRequired} | Sort-Object Computer, KB | Format-Table -AutoSize
サーバー全体で保留中のアップデートを素早く表示します。特定のアップデートをインストールしたり、問題のあるアップデートを非表示にしたり、インストールのスケジュールを設定したりできます。-AcceptAllパラメータを使用すると、確認プロンプトを省略できます。
2つのターミナルアイコン
ターミナルアイコンでPowerShellターミナルのエクスペリエンスを刷新しましょう。ディレクトリ一覧のファイルに分かりやすいアイコンが追加されます。ファイルの種類ごとに固有のアイコンと色で表示されるため、視認性と操作性が向上します。

インストールするには、次を実行します:
Install-Module -Name Terminal-Icons -Scope CurrentUser
このモジュールはGet-ChildItemの出力を拡張します。インストール後、アイコンを表示するには以下を使用します。
Import-Module Terminal-Icons
その後、 Get-ChildItemまたはそのエイリアスを実行すると、各ファイルの種類にそれぞれのアイコンと色が表示されます。PowerShell スクリプトには PowerShell ロゴが表示され、フォルダーには指定されたフォルダーアイコンが表示されます。この美観向上により、ターミナルの外観が向上するだけでなく、タブ間を移動する際にファイルを素早く識別するのにも役立ちます。アイコンを正しく表示するには、Nerd Font のインストールが必要ですのでご注意ください。

1トランスファーレット
Transferetto は、FTP、FTPS、SFTP とのやり取りを簡素化するために設計された PowerShell モジュールです。.NET クラスを詳しく調べたり、サードパーティ製のツールを使用したりすることなく、直感的な PowerShell ネイティブのコマンドレットを提供します。

Transferetto をインストールするには、次を使用します。
Install-Module -Name Transferetto -Scope CurrentUser
ワークフローは、データベース モジュールのワークフローとほぼ同じです。接続、タスクの実行、切断です。
$Client = Connect-FTP -Server "ftp.example.com" -Credential (Get-Credential)Send-FTPFile -Client $Client -LocalPath "C:\Reports\Report1.xlsx" -RemotePath "/uploads/"Disconnect-FTP -Client $Client
Transferetto は、基本的な機能に加えて、SSL 構成、暗号化方式、証明書検証オプション、およびサーバー接続設定を自動的にテストできるRequest-FTPConfigurationコマンドにも対応しています。
さらに、単一のファイルに限定されません。Send -FTPDirectoryを使用してディレクトリ全体をアップロードしたり、FXP 転送(サーバー間ファイルコピー)を実行したりすることも可能です。SFTP と SSH をサポートしているため、ファイル転送と連動してリモートコマンドを実行することもできます。
Transferetto は Windows PowerShell 5.1 と PowerShell 7+ の両方で動作するため、スクリプトは変更を加えることなく Windows、Linux、macOS プラットフォーム間で機能し続けます。
PowerShell の使用が基本的なタスクに限られている場合でも、いくつかのモジュールに慣れることで効率性が大幅に向上します。PSReadLine などのモジュールは予測入力を高速化し、ImportExcel は Excel を使わずに簡単にスプレッドシートを管理でき、Terminal-Icons はターミナルインターフェースの読みやすさを向上させます。
PowerShell ギャラリーには、豊富なモジュールが用意されています。インストール前に、互換性と更新履歴を必ずご確認ください。まずは、最も緊急のニーズに直接対応するモジュールを1つか2つから始め、慣れてきたらツールキットを徐々に拡張してください。
コメントを残す