WindowsServer 2025 総合ガイド 第02回

記事内に広告が含まれています。

WindowsServer 2025 総合ガイド 第2回
PowerShell 7.4 入門 ― モダンなサーバー管理の第一歩

第1回では、Windows Server 2025の学習環境を構築し、リモートデスクトップ接続でサーバーにログインできる状態になりました。第2回となる今回は、サーバー管理の中核となるツール「PowerShell」について学びます。PowerShell 7.4をインストールし、基本的な操作方法を習得しましょう。

2.1 この記事で学ぶこと

  • PowerShell 7.4をインストールできる
  • 基本的なコマンドレットを実行できる
  • ヘルプの参照方法を習得する

2.2 前提条件

  • 第1回完了(VPS環境へのログインが可能)
  • Windows Server 2025にリモートデスクトップ接続できる状態

2.3 なぜPowerShellを学ぶのか

2.3.1 GUIとCLIの使い分け

Windows Serverの管理には、大きく分けて2つの方法があります。

方法 説明 代表的なツール
GUI(Graphical User Interface) マウスやキーボードで画面上のボタンやメニューを操作 サーバーマネージャー、設定画面
CLI(Command Line Interface) コマンド(テキスト)を入力して操作 PowerShell、コマンドプロンプト

GUIは直感的で分かりやすいというメリットがあります。しかし、サーバー管理においてはCLI操作、特にPowerShellの習得が重要です。その理由を次のセクションで説明します。

2.3.2 CLI操作のメリット

サーバー管理でCLI(PowerShell)を使う主なメリットは以下の4点です。

再現性(同じ操作を正確に繰り返せる)

GUIでの操作は「このボタンをクリックして、次にこの項目を選択して…」という手順になります。この手順を正確に記録し、再現するのは困難です。一方、PowerShellのコマンドはテキストとして記録できます。同じコマンドを実行すれば、同じ結果が得られます。

自動化(スクリプト化が可能)

PowerShellのコマンドは、スクリプトファイル(.ps1)として保存できます。スクリプトを実行すれば、複数のコマンドを一括で実行できます。定期的なメンテナンス作業や、複数のサーバーへの設定適用などを自動化できます。

効率性(大量の操作を一括処理)

たとえば、100人分のユーザーアカウントを作成する場合を考えてみましょう。GUIでは1人ずつ手作業で作成する必要がありますが、PowerShellなら数行のスクリプトで一括作成できます。

リモート管理(GUIなしでも操作可能)

サーバーにはServer Core(GUI なし)というインストールオプションがあります。Server CoreではGUIが使えないため、PowerShellでの管理が必須となります。また、ネットワーク越しに複数のサーバーを一括管理する場合も、PowerShellが威力を発揮します。

2.3.3 サーバー管理における標準ツールとしての位置づけ

PowerShellは、Windows Serverの管理における事実上の標準ツールです。Microsoftが提供する多くの製品(Active Directory、Exchange Server、Azure など)は、PowerShellによる管理をサポートしています。

また、近年のインフラ管理では「Infrastructure as Code(IaC)」という考え方が重要視されています。これは、インフラの構成をコードとして管理するアプローチです。本シリーズの応用編で学ぶ「DSC v3」も、PowerShellをベースとした構成管理ツールです。

PowerShellを習得することは、Windows Serverエンジニアとしての基礎を固めることにつながります。

2.4 PowerShellのバージョンについて

2.4.1 Windows PowerShell 5.1とPowerShell 7.xの違い

「PowerShell」と一口に言っても、実は複数のバージョンが存在します。主要なものは以下の2系統です。

名称 バージョン 実行ファイル 特徴
Windows PowerShell 5.1 powershell.exe Windows標準搭載。.NET Frameworkベース
PowerShell 7.x pwsh.exe(またはpwsh) 別途インストールが必要。.NETベース。クロスプラットフォーム対応

Windows Server 2025には、Windows PowerShell 5.1が標準搭載されています。第1回で使用したのも、この Windows PowerShell 5.1 でした。

しかし、Windows PowerShell 5.1は2016年にリリースされたバージョンであり、新機能の追加は行われていません。一方、PowerShell 7.x は継続的に開発が進められており、新しい機能やパフォーマンスの改善が含まれています。

2.4.2 本シリーズでPowerShell 7.4を使用する理由

本シリーズでは、PowerShell 7.4(LTS版)を使用します。その理由は以下の3点です。

DSC v3対応

本シリーズの応用編で学ぶ「DSC v3(Desired State Configuration version 3)」は、PowerShell 7.2以降が必要です。PowerShell 7.4はこの要件を満たしています。

LTS(長期サポート)版

PowerShellには「LTS(Long Term Support)版」と「STS(Standard Term Support)版」があります。LTS版は3年間のサポートが提供される安定バージョンです。PowerShell 7.4はLTS版であり、2026年11月までサポートされます。

補足:2026年1月時点では、PowerShell 7.5.x(STS版)も利用可能です。7.5はより新しい機能を含みますが、サポート期間が短いため、本シリーズでは安定性を重視してLTS版の7.4を使用します。

クロスプラットフォーム対応

PowerShell 7.x は Windows だけでなく、Linux や macOS でも動作します。将来的にマルチプラットフォーム環境を扱う可能性を考えると、PowerShell 7.x のスキルは幅広く活用できます。

2.5 PowerShell 7.4のインストール

2.5.1 wingetによるインストール手順

Windows Server 2025 Desktop Experience には、パッケージマネージャー「winget」が標準搭載されています。wingetを使用して、PowerShell 7.4をインストールします。

まず、Windows PowerShell 5.1を管理者として起動します。

  1. タスクバーの検索アイコンをクリックします
  2. 「PowerShell」と入力します
  3. 「Windows PowerShell」を右クリックし、「管理者として実行」を選択します

以下のコマンドを実行して、PowerShell 7.4(LTS版)をインストールします。

[実行環境: Windows PowerShell 5.1 (管理者)]

# PowerShell 7(LTS版)をインストール
winget install --id Microsoft.PowerShell --source winget

実行すると、以下のような出力が表示されます。

見つかりました PowerShell [Microsoft.PowerShell] バージョン 7.4.7.0
このアプリケーションは所有者からライセンス供与されます。
Microsoft はサードパーティのパッケージに対して責任を負わず、ライセンスも付与しません。
ダウンロード中 https://github.com/PowerShell/PowerShell/releases/download/v7.4.7/PowerShell-7.4.7-win-x64.msi
  ██████████████████████████████  103 MB / 103 MB
インストーラーハッシュが正常に検証されました
パッケージのインストールを開始しています...
インストールが完了しました

注意:バージョン番号は実行時点での最新版が表示されます。7.4.x であれば問題ありません。

2.5.2 インストール確認

インストールが完了したら、バージョンを確認します。

[実行環境: Windows PowerShell 5.1 (管理者)]

# インストールされたPowerShell 7のバージョンを確認
pwsh --version

実行結果の例:

PowerShell 7.4.7

「PowerShell 7.4.x」と表示されれば、インストール成功です。

2.5.3 pwsh の起動方法

PowerShell 7.4を起動するには、以下の方法があります。

方法1:スタートメニューから起動

  1. スタートメニューを開きます
  2. 「PowerShell 7」と入力して検索します
  3. 「PowerShell 7 (x64)」を右クリックし、「管理者として実行」を選択します

方法2:コマンドラインから起動

Windows PowerShell 5.1 や コマンドプロンプトから、以下のコマンドで起動できます。

# PowerShell 7を起動
pwsh

PowerShell 7.4が起動すると、プロンプトが以下のように変わります。

PowerShell 7.4.7
PS C:\Users\Administrator>

先頭に「PowerShell 7.4.x」とバージョンが表示され、プロンプトが「PS」で始まっていることを確認してください。

重要:本シリーズでは、特に断りがない限りPowerShell 7.4pwsh)を使用します。コマンド実行前に、PowerShell 7.4を管理者として起動していることを確認してください。

2.5.4 Windows Terminalでの設定(任意)

Windows Terminalは、複数のシェル(PowerShell、コマンドプロンプト、WSLなど)をタブで切り替えて使用できる高機能なターミナルアプリケーションです。Windows Server 2025でもwingetを使ってインストールできます。

[実行環境: PowerShell 7.4 (管理者)]

# Windows Terminalをインストール(任意)
winget install --id Microsoft.WindowsTerminal --source winget

Windows Terminalをインストールすると、デフォルトのプロファイルとしてPowerShell 7が設定されます。必須ではありませんが、日常的にPowerShellを使用する場合は便利です。

補足:Windows Terminalのインストールは任意です。本シリーズでは、標準のPowerShell 7ウィンドウでも問題なく学習を進められます。

2.6 PowerShellの基本操作

2.6.1 コマンドレットの命名規則(動詞-名詞)

PowerShellで実行するコマンドを「コマンドレット(Cmdlet)」と呼びます。コマンドレットは「動詞-名詞」という命名規則に従っています。

動詞-名詞
例:Get-Service(サービスを取得する)

この命名規則により、コマンドレットの機能を推測しやすくなっています。

  • Get-Service:サービスを取得する
  • Start-Service:サービスを開始する
  • Stop-Service:サービスを停止する

2.6.2 よく使う動詞(Get / Set / New / Remove / Start / Stop)

PowerShellでよく使われる動詞と、その意味を覚えておきましょう。

動詞 意味
Get 取得する・表示する Get-Service(サービス一覧を取得)
Set 設定する・変更する Set-Service(サービス設定を変更)
New 新規作成する New-Item(ファイルやフォルダを作成)
Remove 削除する Remove-Item(ファイルやフォルダを削除)
Start 開始する Start-Service(サービスを開始)
Stop 停止する Stop-Service(サービスを停止)

これらの動詞を覚えておくと、「○○を取得したい」→「Get-○○」、「○○を作成したい」→「New-○○」というように、必要なコマンドレットを推測できるようになります。

2.6.3 基本コマンドレット

まずは、PowerShellを使いこなすための基本となる3つのコマンドレットを覚えましょう。

Get-Command:コマンドの検索

Get-Commandは、利用可能なコマンドレットを検索するためのコマンドレットです。

[実行環境: PowerShell 7.4 (管理者)]

# 「Service」を含むコマンドレットを検索
Get-Command -Name *Service*

実行結果の例:

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Cmdlet          Get-Service                                        7.0.0.0    Microsoft.PowerShell.Management
Cmdlet          New-Service                                        7.0.0.0    Microsoft.PowerShell.Management
Cmdlet          Remove-Service                                     7.0.0.0    Microsoft.PowerShell.Management
Cmdlet          Restart-Service                                    7.0.0.0    Microsoft.PowerShell.Management
Cmdlet          Resume-Service                                     7.0.0.0    Microsoft.PowerShell.Management
Cmdlet          Set-Service                                        7.0.0.0    Microsoft.PowerShell.Management
Cmdlet          Start-Service                                      7.0.0.0    Microsoft.PowerShell.Management
Cmdlet          Stop-Service                                       7.0.0.0    Microsoft.PowerShell.Management
Cmdlet          Suspend-Service                                    7.0.0.0    Microsoft.PowerShell.Management

「Service」という文字を含むコマンドレットが一覧表示されます。*(アスタリスク)はワイルドカードで、「任意の文字列」を意味します。

特定の動詞を持つコマンドレットを検索することもできます。

# 「Get」動詞を持つコマンドレットを検索(最初の10件)
Get-Command -Verb Get | Select-Object -First 10

実行結果の例:

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Cmdlet          Get-Acl                                            7.0.0.0    Microsoft.PowerShell.Security
Cmdlet          Get-Alias                                          7.0.0.0    Microsoft.PowerShell.Utility
Cmdlet          Get-ChildItem                                      7.0.0.0    Microsoft.PowerShell.Management
Cmdlet          Get-CimAssociatedInstance                          7.0.0.0    CimCmdlets
Cmdlet          Get-CimClass                                       7.0.0.0    CimCmdlets
Cmdlet          Get-CimInstance                                    7.0.0.0    CimCmdlets
Cmdlet          Get-CimSession                                     7.0.0.0    CimCmdlets
Cmdlet          Get-Clipboard                                      7.0.0.0    Microsoft.PowerShell.Management
Cmdlet          Get-Command                                        7.0.0.0    Microsoft.PowerShell.Core
Cmdlet          Get-ComputerInfo                                   7.0.0.0    Microsoft.PowerShell.Management

Get-Help:ヘルプの参照

Get-Helpは、コマンドレットの使い方を調べるためのコマンドレットです。プログラミングにおける「マニュアル」や「リファレンス」に相当します。

[実行環境: PowerShell 7.4 (管理者)]

# Get-Serviceコマンドレットのヘルプを表示
Get-Help -Name Get-Service

実行結果の例:

NAME
    Get-Service

SYNOPSIS
    Gets the services on the computer.

SYNTAX
    Get-Service [[-Name] <System.String[]>] [-ComputerName <System.String[]>] [-DependentServices]
    [-Exclude <System.String[]>] [-Include <System.String[]>] [-RequiredServices] [<CommonParameters>]

    Get-Service [-ComputerName <System.String[]>] [-DependentServices] -DisplayName <System.String[]>
    [-Exclude <System.String[]>] [-Include <System.String[]>] [-RequiredServices] [<CommonParameters>]

    Get-Service [-ComputerName <System.String[]>] [-DependentServices] [-Exclude <System.String[]>]
    [-Include <System.String[]>] [-InputObject <System.ServiceProcess.ServiceController[]>]
    [-RequiredServices] [<CommonParameters>]

DESCRIPTION
    The `Get-Service` cmdlet gets objects that represent the services on a computer, including running
    and stopped services. By default, when `Get-Service` is run without parameters, all the local
    computer's services are returned.
    ...

より詳細な情報を表示するには、-Detailedパラメータを使用します。

# 詳細なヘルプを表示
Get-Help -Name Get-Service -Detailed

使用例を確認するには、-Examplesパラメータが便利です。

# 使用例を表示
Get-Help -Name Get-Service -Examples

実行結果の例:

NAME
    Get-Service

SYNOPSIS
    Gets the services on the computer.

    --------- Example 1: Get all services on the computer ---------

    Get-Service

    This command gets all of the services on the computer. It behaves as though you typed
    `Get-Service -Name *`. The default display shows the status, service name, and display name of
    each service.

    ------ Example 2: Get services that begin with a search string ------

    Get-Service -Name "wmi*"

    This command retrieves services with service names that begin with WMI (the acronym for Windows
    Management Instrumentation).
    ...

Tips:コマンドレットの後に -? を付けても、ヘルプを表示できます。例:Get-Service -?

Get-Member:オブジェクトの構造確認

PowerShellでは、コマンドレットの出力は「オブジェクト」として扱われます。オブジェクトには「プロパティ(属性)」と「メソッド(操作)」が含まれています。

Get-Memberは、オブジェクトがどのようなプロパティやメソッドを持っているかを確認するためのコマンドレットです。

[実行環境: PowerShell 7.4 (管理者)]

# Get-Serviceの出力オブジェクトの構造を確認
Get-Service | Get-Member

実行結果の例(一部抜粋):

   TypeName: System.ServiceProcess.ServiceController

Name                      MemberType    Definition
----                      ----------    ----------
Close                     Method        void Close()
Continue                  Method        void Continue()
Pause                     Method        void Pause()
Refresh                   Method        void Refresh()
Start                     Method        void Start(), void Start(string[] args)
Stop                      Method        void Stop()
CanPauseAndContinue       Property      bool CanPauseAndContinue {get;}
CanShutdown               Property      bool CanShutdown {get;}
CanStop                   Property      bool CanStop {get;}
DisplayName               Property      string DisplayName {get;set;}
MachineName               Property      string MachineName {get;set;}
ServiceName               Property      string ServiceName {get;set;}
ServicesDependedOn        Property      System.ServiceProcess.ServiceController[] ServicesDependedOn {get;}
ServiceType               Property      System.ServiceProcess.ServiceType ServiceType {get;}
StartType                 Property      System.ServiceProcess.ServiceStartMode StartType {get;}
Status                    Property      System.ServiceProcess.ServiceControllerStatus Status {get;}

この出力から、Get-Serviceの結果にはStatus(状態)、ServiceName(サービス名)、DisplayName(表示名)、StartType(スタートアップの種類)などのプロパティがあることがわかります。

これらのプロパティを使って、後述するSelect-ObjectWhere-Objectでデータを絞り込むことができます。

2.7 パイプラインの基本

2.7.1 パイプライン(|)の概念

PowerShellの強力な機能の1つが「パイプライン」です。パイプラインとは、あるコマンドレットの出力を、別のコマンドレットの入力として渡す仕組みです。

パイプラインは |(パイプ記号、縦棒)で表現します。

コマンドレット1 | コマンドレット2 | コマンドレット3

この記述は「コマンドレット1の出力を、コマンドレット2に渡し、その出力をコマンドレット3に渡す」という意味になります。

2.7.2 オブジェクトの受け渡し

重要なのは、パイプラインで渡されるのは「テキスト」ではなく「オブジェクト」だという点です。これがPowerShellの特徴であり、強みです。

たとえば、Get-Serviceの出力をパイプラインでGet-Memberに渡すと、Get-Memberはオブジェクトの構造を解析して表示します。テキストではなくオブジェクトが渡されるからこそ、この処理が可能になります。

2.7.3 Select-Object:プロパティの選択

Select-Objectは、オブジェクトから特定のプロパティだけを選択するコマンドレットです。

[実行環境: PowerShell 7.4 (管理者)]

# サービスの名前と状態だけを表示
Get-Service | Select-Object -Property Name, Status

実行結果の例(一部抜粋):

Name                                                        Status
----                                                        ------
AJRouter                                                   Stopped
ALG                                                        Stopped
AppIDSvc                                                   Stopped
Appinfo                                                    Running
AppMgmt                                                    Stopped
...

最初の5件だけを表示したい場合は、-Firstパラメータを使用します。

# 最初の5件だけを表示
Get-Service | Select-Object -Property Name, Status -First 5

実行結果の例:

Name                           Status
----                           ------
AJRouter                      Stopped
ALG                           Stopped
AppIDSvc                      Stopped
Appinfo                       Running
AppMgmt                       Stopped

2.7.4 Where-Object:フィルタリング

Where-Objectは、条件に一致するオブジェクトだけを抽出するコマンドレットです。

[実行環境: PowerShell 7.4 (管理者)]

# 実行中(Running)のサービスだけを抽出
Get-Service | Where-Object -Property Status -EQ -Value "Running"

実行結果の例(一部抜粋):

Status   Name               DisplayName
------   ----               -----------
Running  Appinfo            Application Information
Running  AudioEndpointBu... Windows Audio Endpoint Builder
Running  Audiosrv           Windows Audio
Running  BFE                Base Filtering Engine
Running  BrokerInfrastru... Background Tasks Infrastructure Ser...
...

簡略構文を使うと、より短く記述できます。

# 簡略構文(同じ結果)
Get-Service | Where-Object { $_.Status -eq "Running" }

ここで$_は「パイプラインで渡されてきた現在のオブジェクト」を表す特殊な変数です。

2.7.5 Sort-Object:並べ替え

Sort-Objectは、オブジェクトを特定のプロパティで並べ替えるコマンドレットです。

[実行環境: PowerShell 7.4 (管理者)]

# サービスを名前でアルファベット順に並べ替え
Get-Service | Sort-Object -Property Name | Select-Object -First 10

実行結果の例:

Status   Name               DisplayName
------   ----               -----------
Stopped  AJRouter           AllJoyn Router Service
Stopped  ALG                Application Layer Gateway Service
Stopped  AppIDSvc           Application Identity
Running  Appinfo            Application Information
Stopped  AppMgmt            Application Management
Stopped  AppReadiness       App Readiness
Stopped  AppVClient         Microsoft App-V Client
Stopped  AppXSvc            AppX Deployment Service (AppXSVC)
Stopped  AssignedAccessM... AssignedAccessManager Service
Running  AudioEndpointBu... Windows Audio Endpoint Builder

降順(逆順)に並べ替えるには、-Descendingパラメータを使用します。

# 降順(Z→A)に並べ替え
Get-Service | Sort-Object -Property Name -Descending | Select-Object -First 10

2.7.6 パイプラインを組み合わせた実践例

複数のコマンドレットをパイプラインで組み合わせることで、複雑な処理を実現できます。

[実行環境: PowerShell 7.4 (管理者)]

# 実行中のサービスを名前順に並べ替え、名前と状態だけを表示(最初の10件)
Get-Service |
    Where-Object { $_.Status -eq "Running" } |
    Sort-Object -Property Name |
    Select-Object -Property Name, Status -First 10

実行結果の例:

Name                           Status
----                           ------
Appinfo                       Running
AudioEndpointBuilder          Running
Audiosrv                      Running
BFE                           Running
BrokerInfrastructure          Running
CDPSvc                        Running
CDPUserSvc_xxxxx              Running
CertPropSvc                   Running
ClickToRunSvc                 Running
ClipSVC                       Running

このように、パイプラインを使うことで「取得 → フィルタリング → 並べ替え → 選択」という一連の処理を1つのコマンドとして実行できます。

2.8 実行ポリシーの理解

2.8.1 実行ポリシーとは

PowerShellには「実行ポリシー」という安全機能があります。これは、スクリプトファイル(.ps1)の実行を制御する仕組みです。

実行ポリシーは、悪意のあるスクリプトが意図せず実行されることを防ぐための機能です。ただし、これはセキュリティ境界(絶対的な防御)ではなく、あくまで「安全装置」としての位置づけです。

2.8.2 Get-ExecutionPolicyでの確認

現在の実行ポリシーを確認するには、Get-ExecutionPolicyコマンドレットを使用します。

[実行環境: PowerShell 7.4 (管理者)]

# 現在の実行ポリシーを確認
Get-ExecutionPolicy

実行結果の例:

RemoteSigned

各スコープ(適用範囲)ごとの設定を確認するには、-Listパラメータを使用します。

# 全スコープの実行ポリシーを確認
Get-ExecutionPolicy -List

実行結果の例:

        Scope ExecutionPolicy
        ----- ---------------
MachinePolicy       Undefined
   UserPolicy       Undefined
      Process       Undefined
  CurrentUser       Undefined
 LocalMachine    RemoteSigned

2.8.3 実行ポリシーの種類

主な実行ポリシーは以下のとおりです。

ポリシー 説明
Restricted スクリプトの実行を禁止(Windowsクライアントのデフォルト)
AllSigned 署名されたスクリプトのみ実行可能
RemoteSigned ローカルで作成したスクリプトは実行可能。インターネットからダウンロードしたスクリプトは署名が必要(Windows Serverのデフォルト)
Unrestricted すべてのスクリプトを実行可能(警告あり)
Bypass すべてのスクリプトを制限なく実行可能

2.8.4 Set-ExecutionPolicyでの変更

実行ポリシーを変更するには、Set-ExecutionPolicyコマンドレットを使用します。この操作には管理者権限が必要です。

[実行環境: PowerShell 7.4 (管理者)]

# 実行ポリシーをRemoteSignedに設定
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine

確認を求められたら、「Y」を入力してEnterキーを押します。

Execution Policy Change
The execution policy helps protect you from scripts that you do not trust. Changing the execution
policy might expose you to the security risks described in the about_Execution_Policies help topic
at https:/go.microsoft.com/fwlink/?LinkID=135170. Do you want to change the execution policy?
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "N"): Y

2.8.5 推奨設定(RemoteSigned)

Windows Server 2025のデフォルト設定は「RemoteSigned」です。この設定は、以下のバランスを取った推奨設定です。

  • ローカルで作成したスクリプト:署名なしで実行可能
  • インターネットからダウンロードしたスクリプト:デジタル署名が必要(またはUnblock-Fileでブロックを解除)

本シリーズでは、この「RemoteSigned」設定を使用します。特別な理由がない限り、この設定を維持することをおすすめします。

注意:UnrestrictedBypassは、セキュリティリスクを高めるため、運用環境での使用は推奨されません。

2.9 エイリアスについて

2.9.1 エイリアスの概念

PowerShellには「エイリアス」という機能があります。エイリアスとは、コマンドレットに付けられた「別名」のことです。

たとえば、lsと入力するとGet-ChildItemが実行されます。これはlsGet-ChildItemのエイリアスとして登録されているためです。

[実行環境: PowerShell 7.4 (管理者)]

# lsコマンドを実行(Get-ChildItemのエイリアス)
ls

実行結果の例:

    Directory: C:\Users\Administrator

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-r--          12/15/2024   9:30 AM                Desktop
d-r--          12/15/2024   9:30 AM                Documents
d-r--          12/15/2024   9:30 AM                Downloads
d-r--          12/15/2024   9:30 AM                Favorites
d-r--          12/15/2024   9:30 AM                Links
d-r--          12/15/2024   9:30 AM                Music
d-r--          12/15/2024   9:30 AM                Pictures
d-r--          12/15/2024   9:30 AM                Videos

2.9.2 Get-Aliasでの確認

Get-Aliasコマンドレットで、登録されているエイリアスを確認できます。

[実行環境: PowerShell 7.4 (管理者)]

# 全エイリアスを表示
Get-Alias

実行結果の例(一部抜粋):

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Alias           ? -> Where-Object
Alias           % -> ForEach-Object
Alias           cd -> Set-Location
Alias           cls -> Clear-Host
Alias           copy -> Copy-Item
Alias           del -> Remove-Item
Alias           dir -> Get-ChildItem
Alias           echo -> Write-Output
Alias           ls -> Get-ChildItem
Alias           mkdir -> New-Item
Alias           move -> Move-Item
Alias           rm -> Remove-Item
...

特定のエイリアスが何のコマンドレットを指しているかを確認することもできます。

# 「ls」が何のエイリアスか確認
Get-Alias -Name ls

実行結果の例:

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Alias           ls -> Get-ChildItem

2.9.3 本シリーズではフルネームを使用する理由

エイリアスは短くて便利ですが、本シリーズではコマンドレットのフルネームを使用します。その理由は以下のとおりです。

可読性の向上

lsよりもGet-ChildItemのほうが、「何をしているか」が明確です。特に学習段階では、フルネームを使用することでコマンドレットの機能を理解しやすくなります。

スクリプトの保守性

他のエンジニアがスクリプトを読む際、フルネームのほうが理解しやすくなります。チームでの共同作業やドキュメントとしての活用を考えると、フルネームが適しています。

動詞-名詞の命名規則の習得

フルネームを使い続けることで、PowerShellの「動詞-名詞」命名規則が自然と身につきます。これにより、新しいコマンドレットを探す際にも推測が効くようになります。

Tips:対話的な操作(その場でコマンドを実行する場合)ではエイリアスを使っても構いません。ただし、スクリプトファイルに記述する際はフルネームを使用することをおすすめします。

2.10 まとめ

第2回では、以下の内容を学びました。

  • PowerShellを学ぶ理由:再現性、自動化、効率性、リモート管理のメリットがあり、Windows Serverの管理における標準ツール
  • PowerShellのバージョン:Windows PowerShell 5.1(標準搭載)とPowerShell 7.x(別途インストール)の違いを理解し、本シリーズでは DSC v3対応・LTS版の PowerShell 7.4 を使用
  • PowerShell 7.4のインストール:wingetを使用してインストールし、pwshコマンドで起動
  • コマンドレットの基本:「動詞-名詞」の命名規則、Get-Commandでコマンドを検索、Get-Helpでヘルプを参照、Get-Memberでオブジェクト構造を確認
  • パイプライン|でコマンドレットをつなぎ、Select-Objectでプロパティ選択、Where-Objectでフィルタリング、Sort-Objectで並べ替え
  • 実行ポリシー:スクリプト実行を制御する安全機能。Windows Serverのデフォルトは「RemoteSigned」で、これが推奨設定
  • エイリアス:コマンドレットの別名。本シリーズでは可読性と学習効果のためフルネームを使用

これで、PowerShellの基本的な操作ができるようになりました。Get-Helpを活用すれば、本シリーズで紹介しないコマンドレットについても自力で調べることができます。

2.11 次回予告

第3回では「ファイルシステムとディスク管理の基礎」と題して、PowerShellを使ったファイル・フォルダ操作、ディスクとボリュームの状態確認、ローカルユーザーとグループの管理を学びます。サーバー管理に欠かせない基本操作を習得しましょう。

2.12 参考リンク

Windows Server