取得目前工作階段中的 Windows PowerShell 磁碟機。

語法

Get-PSDrive [-LiteralName] <string[]> [-PSProvider <string[]>] [-Scope <string>] [-UseTransaction] [<CommonParameters>]

Get-PSDrive [[-Name] <string[]>] [-PSProvider <string[]>] [-Scope <string>] [-UseTransaction] [<CommonParameters>]

描述

Get-PSDrive Cmdlet 會取得目前工作階段中的 Windows PowerShell 磁碟機。您可以取得主控台中的特定或所有磁碟機。

Get-PSDrive 取得下列磁碟機:

-- 電腦上的 Windows 邏輯磁碟機,包含對應到網路共用的電腦。

-- Windows PowerShell 提供者公開的磁碟機 (例如 Certificate:、Function: 與 Alias: 磁碟機) 以及 Windows PowerShell 登錄提供者公開的 HKLM: 和 HKCU: 磁碟機。

-- 您使用 New-PSDrive 所建立的磁碟機。

Get-PSDrive 不會取得在 Windows PowerShell 主控台開啟後才加入或建立的 Windows 對應磁碟機。

參數

-LiteralName <string[]>

指定 Windows PowerShell 磁碟機的名稱。

LiteralName 會使用實際輸入的內容做為參數值。任何字元均不被解譯成萬用字元。如果名稱中包含逸出字元,請將其置於單引號內。單引號係告訴 Windows PowerShell 不要將任何字元解譯成逸出序列。

必要?

true

位置?

1

預設值

接受管線輸入?

true (ByPropertyName)

接受萬用字元?

false

-Name <string[]>

只取得指定的磁碟機。先輸入磁碟機名稱或代號,不要包含冒號 (:)。

必要?

false

位置?

1

預設值

接受管線輸入?

true (ByPropertyName)

接受萬用字元?

false

-PSProvider <string[]>

只會取得指定 Windows PowerShell 提供者所支援的磁碟機。輸入提供者名稱,如 FileSystem、Registry 或 Certificate。

必要?

false

位置?

named

預設值

接受管線輸入?

true (ByPropertyName)

接受萬用字元?

false

-Scope <string>

只會取得指定範圍中的 Windows PowerShell 磁碟機。有效的值包括 "Global"、"Local"、"Script" 或相對於目前範圍的數字 (從 0 到範圍總數,其中 0 代表目前範圍,1 代表其上層)。預設值為 "Local"。如需詳細資訊,請參閱 about_Scopes。

必要?

false

位置?

named

預設值

接受管線輸入?

true (ByPropertyName)

接受萬用字元?

false

-UseTransaction

將命令加入現用交易中。此參數只有當交易進行中時才有效。如需詳細資訊,請參閱 about_Transactions。

必要?

false

位置?

named

預設值

接受管線輸入?

false

接受萬用字元?

false

<CommonParameters>

這個 Cmdlet 支援一般參數:-Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer 和 -OutVariable。如需詳細資訊,請參閱 about_Commonparameters.

輸入和輸出

輸入型別是可經由管道輸出至 Cmdlet 的物件型別。傳回型別則是 Cmdlet 所傳回的物件型別。

輸入

您無法經由管道將物件輸出至 Get-PSDrive。

輸出

System.Management.Automation.PSDriveInfo

Get-PSDrive 會傳回代表工作階段中 Windows PowerShell 磁碟機的物件。

附註

Get-PSDrive Cmdlet 設計的用意是要操作任一提供者所公開的資料。若要列出可在工作階段中使用的提供者,請輸入 "Get-PSProvider"。如需詳細資訊,請參閱 about_Providers。

範例 1

C:\PS>get-psdrive

Name       Provider      Root
----       --------      ----
Alias      Alias
C          FileSystem    C:\
cert       Certificate   \
D          FileSystem    D:\
Env        Environment
Function   Function
HKCU       Registry      HKEY_CURRENT_USER
HKLM       Registry      HKEY_LOCAL_MACHINE
Variable   Variable
X          FileSystem    X:\

描述
-----------
這個命令會取得目前工作階段中的 Windows PowerShell 磁碟機。

輸出會顯示電腦上的硬碟 (C:) 與光碟機 (D:)、Windows PowerShell 提供者公開的磁碟機 (Alias:、Cert:、Env:、Function:、HKCU:、HKLM: 與 Variable:) 及對應到網路共用區的磁碟機 (X:)。






範例 2

C:\PS>get-psdrive d

Name       Provider      Root
----       --------      ----
D          FileSystem    D:\

描述
-----------
這個命令顯示電腦上的 D: 磁碟機。請注意,磁碟機代號後面不要加上冒號 (:)。






範例 3

C:\PS>get-psdrive -psprovider filesystem

Name       Provider      Root
----       --------      ----
C          FileSystem    C:\
D          FileSystem    D:\
X          FileSystem    X:\
Y          FileSystem    \\Server01\Public
Z          FileSystem    C:\Windows\System32

描述
-----------
這個命令顯示 Windows PowerShell FileSystem 提供者支援的所有磁碟機。這包含固定磁碟機、邏輯分割、對應的網路磁碟機以及使用 New-PSDrive 所建立且對應到檔案系統磁碟機的磁碟機。

這個範例顯示 New-PSDrive 所建立的磁碟機具有 Root 屬性值中對應位置的名稱。Windows 磁碟機只有磁碟機代號的根目錄。






範例 4

C:\PS>if (!(get-psdrive X)) { 
    new-psdrive -name X -psprovider Registry -root HKLM:\Network 
}
else { write-host "The X: drive is already in use." }

描述
-----------
這個命令會檢查並確認 X 磁碟機是否已經做為 Windows PowerShell 磁碟機名稱之用。如果沒有,此命令會使用 New-PSDrive Cmdlet 建立對應至 HKLM:\Network 登錄機碼的 Windows PowerShell 磁碟機。






範例 5

C:\PS>get-psdrive -provider filesystem

C:\PS> get-psdrive -provider filesystem

Name       Provider      Root
----       --------      ----
C          FileSystem    C:\
D          FileSystem    D:\
X          FileSystem    X:\
Y          FileSystem    \\Server01\Public
Z          FileSystem    C:\Windows\System32

C:\PS> net use
New connections will be remembered.

Status       Local     Remote                    Network
-------------------------------------------------------------------------------
             X:        \\Server01\Public         Microsoft Windows Network


C:\PS> [System.IO.DriveInfo]::getdrives()

Name               : C:\
DriveType          : Fixed
DriveFormat        : NTFS
IsReady            : True
AvailableFreeSpace : 39831498752
TotalFreeSpace     : 39831498752
TotalSize          : 79900368896
RootDirectory      : C:\
VolumeLabel        :
Name               : D:\
DriveType          : CDRom
DriveFormat        :
IsReady            : False
AvailableFreeSpace :
TotalFreeSpace     :
TotalSize          :
RootDirectory      : D:\
VolumeLabel        :
Name               : X:\
DriveType          : Network
DriveFormat        : NTFS
IsReady            : True
AvailableFreeSpace : 36340559872
TotalFreeSpace     : 36340559872
TotalSize          : 36413280256
RootDirectory      : X:\
VolumeLabel        : D_Drive


C:\PS> get-wmiobject win32_logicaldisk

DeviceID     : C:
DriveType    : 3
ProviderName :
FreeSpace    : 39831252992
Size         : 79900368896
VolumeName   :
DeviceID     : D:
DriveType    : 5
ProviderName :
FreeSpace    :
Size         :
VolumeName   :
DeviceID     : X:
DriveType    : 4
ProviderName : \\server01\public
FreeSpace    : 36340559872
Size         : 36413280256
VolumeName   : D_Drive


C:\PS> get-wmiobject win32_networkconnection
LocalName                     RemoteName                    
--------------               ------------
x:                            \\server01\public

描述
-----------
這個範例將 Get-PSDrive 顯示的檔案系統磁碟機類型與利用其他方法顯示的磁碟機進行比較。本範例示範在 Windows PowerShell 中顯示磁碟機的不同方法,同時示範使用 New-PSDrive 建立的磁碟機,只能夠在 Windows PowerShell 中進行存取。

第一個命令使用 Get-PSDrive 取得 Windows PowerShell 主控台中的所有檔案系統磁碟機。這包含固定磁碟機 (C: 與 D:)、對應的網路磁碟機 (X:) 以及使用 New-PsDrive 所建立的兩個 Windows PowerShell 磁碟機 (Y: 與 Z:)。

顯示 Windows 對應網路共用的 "net use" 命令只會顯示 X 磁碟機。該命令不會顯示 New-PSDrive 所建立的磁碟機。它顯示 X: 磁碟機也會對應到 \\Server01\Public。

第三個命令會使用 Microsoft .NET Framework System.IO.DriveInfo 類別的 GetDrives 方法。這個命令取得 Windows 檔案系統磁碟機,包括 X: 磁碟機,但是不會取得 New-PSDrive 建立的磁碟機。

第四個命令會使用 Get-WmiObject Cmdlet 顯示 Win32_LogicalDisk 類別的執行個體。它傳回 C:、D: 與 X: 磁碟機,但不會傳回 New-PSDrive 建立的磁碟機。

最後一個命令會使用 Get-WmiObject Cmdlet 顯示 Win32_NetworkConnection 類別的執行個體。如同 "net use",它只會傳回 X: 磁碟機。






請參閱




目錄