powershell 指令刪除已掛載的網路磁碟機

在使用 powershell 時,了解如何刪除已掛載的網路磁碟機是非常重要的。這對於清理不再需要的資源以及確保系統資源的有效利用至關重要。本文將詳細介紹不同取得網路磁碟機的方法,並提供每種方法的步驟和示例。

取得磁碟機資訊

取得所有掛載的磁碟機代號

PS Z:\> Get-PSDrive -PSProvider FileSystem 

Name Used (GB)     Free (GB) Provider      Root                       CurrentLocation
---- ---------     --------- --------      ----                       ---------------
C       211.08         23.35 FileSystem    C:\                                                                                                                 
D        99.47        141.74 FileSystem    D:\                                                                                                                 
E                            FileSystem    E:\                                                                                                                 
O        60.55         89.34 FileSystem    \\172.16.1.22\ErpOrder                                                                                              
P         1.73        198.25 FileSystem    \\kp-fs\printerScan                                                                                                 
Q      4415.37       2752.61 FileSystem    \\KP-FS1\DepartData                                                                                                 
R      4326.77        793.21 FileSystem    \\KP-FS1\DepartData2                                                                                                
S      1553.44        494.55 FileSystem    \\KP-FS1\ShareData                                                                                                  
T      1553.44        494.55 FileSystem    \\KP-FS1\TempData                                                                                                                                                                                                                    
Z      1553.44        494.55 FileSystem    \\kp-fs1\UserData\MIS\kp62 

篩選出網路磁碟

Get-PSDrive -PSProvider FileSystem | Where-Object { $_.Root -like '\\*' }

說明:

  1. 先取得所有檔案系統的磁碟機 (-PSProvider FileSystem)
  2. 然後用 Where-Object 過濾出 Root 屬性以 \\ 開頭的項目 (-like '\\*')

如果你只需要顯示磁碟機代號,可以再加上 Select-Object

Get-PSDrive -PSProvider FileSystem | Where-Object { $_.Root -like '\\*' } | Select-Object -Property Name

或者簡單地只顯示名稱:

(Get-PSDrive -PSProvider FileSystem | Where-Object { $_.Root -like '\\*' }).Name

如果 Get-PSDrive -PSProvider FileSystem | Where-Object { $_.Root -like '\\*' } 返回空值,可能是因為:

  1. 沒有掛載網路磁碟Root 開頭是 \\ 的磁碟)。
  2. 網路磁碟的 Root 格式可能不是 \\ 開頭(例如,可能是 \\server\share 或已映射為其他形式)。
  3. PSProvider 過濾不完全(某些網路磁碟可能不屬於 FileSystem Provider)。

修正方法:

如果發現 Get-PSDrive -PSProvider FileSystem | Where-Object { $_.Root -like '\\*' } 返回空值,這可能意味著沒有掛載網路磁碟。這種情況下,建議檢查網路連接是否正常,並確保相應的服務器正常運行。

方法 1:檢查所有可能的網路磁碟(包括非 FileSystem

Get-PSDrive | Where-Object { $_.DisplayRoot -like '\\*' -or $_.Root -like '\\*' } | Select-Object Name, Root, DisplayRoot
  • DisplayRoot 有時會儲存完整的 UNC 路徑(如 \\server\share)。
  • Root 可能只顯示磁碟代號(如 Z:\),但 DisplayRoot 會顯示來源路徑

方法 2:使用 net use 檢查網路磁碟(傳統方法)

net use

Get-WmiObject Win32_MappedLogicalDisk | Select-Object DeviceID, ProviderName

方法 3:檢查 FileSystem Provider 的磁碟,並確認 Root 或 DisplayRoot 是否包含 \\

Get-PSDrive -PSProvider FileSystem | Where-Object { $_.DisplayRoot -like '\\*' -or $_.Root -like '\\*' } | Select-Object Name, Root, DisplayRoot

正確的方式

Get-WmiObject Win32_MappedLogicalDisk | Select-Object DeviceID, ProviderName

刪除已掛載的網路磁碟

PS Z:\> Get-WmiObject Win32_MappedLogicalDisk | Select-Object DeviceID, ProviderName | ForEach-Object {    
    net use $_.DeviceID /delete /y
}

O: 已經刪除。
P: 已經刪除。
在與 Q: 的連線中,正在搜尋開啟檔案或不完整的目錄,不過一直沒有結果,持續擱置中。
Q: 已經刪除。
R: 已經刪除。
在與 S: 的連線中,正在搜尋開啟檔案或不完整的目錄,不過一直沒有結果,持續擱置中。
S: 已經刪除。
T: 已經刪除。
在與 Z: 的連線中,正在搜尋開啟檔案或不完整的目錄,不過一直沒有結果,持續擱置中。
Z: 已經刪除。

刪除網路磁碟機通常會涉及到一些常見的問題。例如,如果某個磁碟機正在被使用,則無法直接刪除。在這種情況下,使用 powershell 進行進一步操作可能會有助於解決問題。可以使用 Get-Process 命令查看哪些進程正在使用該磁碟機,然後決定如何處理這些進程。

除了使用 powershell 來刪除網路磁碟外,還可以考慮使用圖形界面來進行操作。對於不熟悉命令行的用戶來說,這可能是一個更方便的選擇。在Windows檔案總管中,右鍵單擊網路磁碟,然後選擇「斷開連線」即可。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


內容索引