本連載は、PowerShellコマンドレットについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は「Set-Disk」コマンドレットを解説します。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
本連載では、Windows PowerShellの基本的なコマンドレットについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、コンピュータに接続されたディスクの設定を変更する「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
必須オプションとして、設定を変更する対象ディスクを指定するために、ディスク番号(「-Number」オプションで指定)、もしくはユニークID(「-UniqueId」オプションで指定)が必要になります。これらの値は、第90回で紹介した「Get-Disk」コマンドレットで取得可能です。なお、Set-Diskコマンドレットは、管理者権限での実行が必要となります。
Set-Diskコマンドレット実行後、Get-Diskコマンドレットでディスクの状態を確認すると、指定されたディスク番号「0」のディスクの「OperationalStatus」がオフラインになっていることが分かります。
また、GUIの管理ツール「ディスクの管理」でも、指定されたディスクがオフラインとなっていることが確認できます(画面2)。
ディスクを「読み取り専用」に設定することで、管理者権限を持っていてもそのディスクに対して書き込むことができなくなります。
読み取り専用ディスクに設定するには「-IsReadOnly」オプションを利用します。読み取り専用に設定したい場合は「$true」、読み書き可能な状態にする場合は「$false」を指定します(画面3)。
Set-Disk -Number 0 -IsReadOnly $true
実行例では、Set-Diskコマンドレット実行前後で対象ディスクにフォルダを作成しています。しかし、実行前には作成できたにもかかわらず、実行後は書き込みが保護されているため作成できなかった旨のメッセージが表示されていることが確認できます。
なお、ディスクの状態はGet-Diskコマンドレットで確認可能で、画面4のように「IsReadOnly」が「True」になっていれば読み取り専用ディスクとして設定されていることになります。
Get-Diskコマンドレットでディスクが、どのインタフェースに接続されているかを確認できることは、第90回で紹介済みですが、Get-Diskコマンドレットを併用することで、特定の属性を持つディスクに対して一律な操作を実行することも可能にあんります。
例えば、iSCSIで接続されているディスクを全て「読み取り専用」とする場合は、以下のようなコマンドレットを実行します(画面5)。
Get-Disk | Where-Object {$_.BusType -Eq "iSCSI"} | Set-Disk -IsReadOnly $true
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.