本連載は、PowerShellコマンドレットについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は「Remove-SmbShare」コマンドレットを解説します。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
本連載では、Windows PowerShellの基本的なコマンドレットについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、コンピュータに設定された共有フォルダ設定を削除する「Remove-SmbShare」コマンドレットです。
Windows環境で複数のユーザーがファイルを共有する場合は、Windowsの標準機能で利用できる「共有フォルダ」の設定が不可欠です。しかし、利用することのなくなった共有フォルダを放置したままにしておくと、それが思わぬセキュリティリスクになったり、不必要な共有設定がコンピュータのリソースを少なからず消費したりします。これは決して望ましい状態であるとはいえません。
Remove-SmbShareは、コンピュータの共有フォルダ設定を削除するコマンドレットです。なお、本コマンドレットは共有フォルダ設定を削除するだけで、フォルダの実体は削除しません。フォルダの実体を削除する場合は、本連載第4回で紹介した「Remove-Item」コマンドレットを使用します。
オプション | 意味 |
---|---|
-Name | 削除したい共有フォルダの共有名を指定する。必須 |
-Force | 実行時に確認なしで削除したい場合に指定する。省略可能 |
削除対象の共有名を「-Name」オプションで指定してRemove-SmbShareコマンドレットを実行することで、指定した共有名の共有設定を削除します(画面1)。なお、Remove-SmbShareコマンドレットは管理者権限で実行する必要があります。
Remove-SmbShare -Name "IT_Folder"
Remove-SmbShareコマンドレット実行前後に本連載第63回で紹介した「Get-SmbShare」コマンドレットを実行し、共有フォルダの存在を確認していますが、共有名「IT_Folder」の共有が消えていることが分かります。
また、Remove-SmbShareコマンドレット実行時には共有設定を削除してよいかどうかの確認プロンプトが表示されます。[y]キーで応答することで削除が実行されます。削除コマンドレットの実行は、慎重を期すべきなのでこのような応答は必要と考えます。
なお、スクリプト中で共有設定を削除する場合は、応答が必要になることでスクリプトが中断されてしまい、自動化しているにもかかわらず手動介入が必要になってしまいます。その場合には「-Force」オプションを指定することで、確認プロンプトを返すことなく削除が実行されます(画面2)。
Remove-SmbShare -Name "IT_Folder" -Force
複数のフォルダの共有設定を削除したい場合は、Get-SmbShareコマンドレットで削除対象の共有名を絞り込み、パイプ(|)でRemove-SmbShareコマンドレットにつなぐことで一括削除できます(画面3)。
Get-SmbShare | Where-Object { $_.Name -like "*Folder"} | Remove-SmbShare -Force
Remove-SmbShareコマンドレットを実行してもフォルダの実体は削除されませんが、共有設定を削除しないままフォルダの実体を削除した場合は、どのような挙動になるのでしょうか(画面4)。
画面4のように、フォルダを削除しても共有設定は残ったままになります。実際に「エクスプローラー」からアクセスしてみると、共有フォルダは存在したままになっています。
この状態で共有フォルダにアクセスしてみると「デバイスの準備ができていません」というエラーが表示され、当然のことながらアクセスすることはできません(画面5)。
フォルダを削除すると一緒に共有設定も削除されると思いがちですが、実際には共有設定が残ったままになります。従って、共有設定とフォルダの実体、両方の削除と確認が必要です。
Microsoft MVP for Cloud and Datacenter Management(2012-2023)。現業の傍ら、コミュニティーイベントでの登壇や著作にてMicrosoftテクノロジーに関する技術情報の発信、共有を続けている。ネットワークやハードウェアといった物理層に近いところが大好きな、昔ながらのインフラ屋さん。得意技はケーブル整線。近著は『詳解! Windows Server仮想ネットワーク』(日経BP社)。
Copyright © ITmedia, Inc. All Rights Reserved.