【 Set-Disk 】コマンドレット――コンピュータのディスク設定を変更するWindows PowerShell基本Tips(91)

本連載は、PowerShellコマンドレットについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は「Set-Disk」コマンドレットを解説します。

» 2023年11月30日 05時00分 公開
[後藤諭史@IT]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

「Windows PowerShell基本Tips」のインデックス

連載目次

 本連載では、Windows PowerShellの基本的なコマンドレットについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、コンピュータに接続されたディスクの設定を変更する「Set-Disk」コマンドレットです。

Set-Diskコマンドレットとは?

 「Set-Disk」は、コンピュータに接続されたディスクの設定を変更するコマンドレットです。

 ディスクの設定を変更するシナリオはあまりないと思いますが、例えば「ファイルシステムのアクセス制御に頼らず、ディスク全体を“読み取り専用”にしたい」であるとか、「ディスク保全を目的として緊急的にディスクをオフラインにしたい」といった対応を取らざるを得ない場合に、非常に有用なコマンドレットになります。

Set-Diskコマンドレットの書式

Set-Disk [オプション]


Set-Diskコマンドレットの主なオプション

オプション 意味
-Number 設定を変更したいディスクの番号を指定する。「-UniqueId」オプション指定時には省略可能
-UniqueId 設定を変更したいディスクのユニークIDを指定する。「-Number」オプション指定時には省略可能
-IsOffline ディスクのオフライン状態を「$true/$false」で指定する。省略可能
-IsReadOnly ディスクの読み取り専用状態を「$true/$false」で指定する。省略可能


指定したディスクをオフライン状態にする

 ディスクをオフラインにすることで、ディスク上のデータにはアクセスできなくなります。Set-Diskコマンドレットでディスクをオフライン化するには、「-IsOffline」オプションを使用します。オフラインにする場合は「$true」、オンライン(アクセス可能な状態)にする場合は「$false」を指定します(画面1)。

コマンドレット実行例

Set-Disk -Number 0 -IsOffline $true

ALT 画面1 Set-Diskコマンドレットでディスク番号「0」のディスクをオフラインにした

 必須オプションとして、設定を変更する対象ディスクを指定するために、ディスク番号(「-Number」オプションで指定)、もしくはユニークID(「-UniqueId」オプションで指定)が必要になります。これらの値は、第90回で紹介したGet-Disk」コマンドレットで取得可能です。なお、Set-Diskコマンドレットは、管理者権限での実行が必要となります。

 Set-Diskコマンドレット実行後、Get-Diskコマンドレットでディスクの状態を確認すると、指定されたディスク番号「0」のディスクの「OperationalStatus」がオフラインになっていることが分かります。

 また、GUIの管理ツール「ディスクの管理」でも、指定されたディスクがオフラインとなっていることが確認できます(画面2)。

ALT 画面2 「ディスクの管理」ツールからも、対象のディスクがオフラインになっていることが確認できる


指定したディスクを読み取り専用状態にする

 ディスクを「読み取り専用」に設定することで、管理者権限を持っていてもそのディスクに対して書き込むことができなくなります。

 読み取り専用ディスクに設定するには「-IsReadOnly」オプションを利用します。読み取り専用に設定したい場合は「$true」、読み書き可能な状態にする場合は「$false」を指定します(画面3)。

コマンドレット実行例

Set-Disk -Number 0 -IsReadOnly $true

ALT 画面3 ディスク番号「0」のディスクを読み取り専用にした

 実行例では、Set-Diskコマンドレット実行前後で対象ディスクにフォルダを作成しています。しかし、実行前には作成できたにもかかわらず、実行後は書き込みが保護されているため作成できなかった旨のメッセージが表示されていることが確認できます。

 なお、ディスクの状態はGet-Diskコマンドレットで確認可能で、画面4のように「IsReadOnly」が「True」になっていれば読み取り専用ディスクとして設定されていることになります。

ALT 画面4 ディスク番号「0」のディスクの状態をGet-Diskコマンドレットで確認。読み取り専用ディスクとして設定されていることが分かる


特定のインタフェースに接続されているディスクを操作する

 Get-Diskコマンドレットでディスクが、どのインタフェースに接続されているかを確認できることは、第90回で紹介済みですが、Get-Diskコマンドレットを併用することで、特定の属性を持つディスクに対して一律な操作を実行することも可能にあんります。

 例えば、iSCSIで接続されているディスクを全て「読み取り専用」とする場合は、以下のようなコマンドレットを実行します(画面5)。

コマンドレット実行例

Get-Disk | Where-Object {$_.BusType -Eq "iSCSI"}  | Set-Disk -IsReadOnly $true

ALT 画面5 Get-Diskコマンドレットでインタフェースを絞り込み、設定を読み取り専用ディスクに変更した

 Get-DiskコマンドレットとSet-Diskコマンドレットをパイプ(|)でつないで実行し、BusType「iSCSI」のディスク、すなわちiSCSI接続の外部ディスクを読み取り専用に設定しています。

 ディスク番号を明示的に指定した際と同様、Get-Diskコマンドレットで状態を確認すると、読み取り専用ディスクとして設定されていることが分かります。

 このようにGet-Diskコマンドレットとの併用で、複数のディスク(今回の例では2つのディスク)の設定をまとめて変更することも可能です。

筆者紹介

後藤 諭史(ごとう さとし)

Microsoft MVP for Cloud and Datacenter Management(2012-2024)。現業の傍ら、コミュニティーイベントでの登壇や著作にてMicrosoftテクノロジーに関する技術情報の発信、共有を続けている。ネットワークやハードウェアといった物理層に近いところが大好きな、昔ながらのインフラ屋さん。得意技はケーブル整線。近著は『詳解! Windows Server仮想ネットワーク』(日経BP社)。


Copyright © ITmedia, Inc. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。