Gets the Windows PowerShell drives in the current session.

Syntax

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

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

Description

The Get-PSDrive cmdlet gets the Windows PowerShell drives in the current session. You can get a particular drive or all drives in the console.

Get-PSDrive gets the following drives:

-- Windows logical drives on the computer, including drives mapped to network shares.

-- Drives exposed by Windows PowerShell providers (such as the Certificate:, Function:, and Alias: drives) and the HKLM: and HKCU: drives that are exposed by the Windows PowerShell Registry Provider.

-- Drives that you create by using New-PSDrive.

Get-PSDrive does not get Windows mapped drives that are added or created after the Windows PowerShell console is opened.

Parameters

-LiteralName <string[]>

Specifies the name of the Windows PowerShell drive.

The value of LiteralName is used exactly as it is typed. No characters are interpreted as wildcards. If the name includes escape characters, enclose it in single quotation marks. Single quotation marks tell Windows PowerShell not to interpret any characters as escape sequences.

Required?

true

Position?

1

Default Value

none

Accept Pipeline Input?

true (ByPropertyName)

Accept Wildcard Characters?

false

-Name <string[]>

Gets only the specified drives. Type the drive name or letter without a colon (:).

Required?

false

Position?

1

Default Value

none

Accept Pipeline Input?

true (ByPropertyName)

Accept Wildcard Characters?

false

-PSProvider <string[]>

Gets only the drives supported by the specified Windows PowerShell provider. Type the name of a provider, such as FileSystem, Registry, or Certificate.

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

true (ByPropertyName)

Accept Wildcard Characters?

false

-Scope <string>

Gets only the Windows PowerShell drives in the specified scope. Valid values are "Global", "Local", or "Script", or a number relative to the current scope (0 through the number of scopes, where 0 is the current scope and 1 is its parent). "Local" is the default. For more information, see about_Scopes.

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

true (ByPropertyName)

Accept Wildcard Characters?

false

-UseTransaction

Includes the command in the active transaction. This parameter is valid only when a transaction is in progress. For more information, see about_Transactions.

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

<CommonParameters>

This command supports the common parameters: Verbose, Debug, ErrorAction, ErrorVariable, OutBuffer, OutVariable, WarningAction, and WarningVariable. For more information, see about_CommonParameters.

Inputs and Outputs

The input type is the type of the objects that you can pipe to the cmdlet. The return type is the type of the objects that the cmdlet returns.

Inputs

None

You cannot pipe objects to Get-PSDrive.

Outputs

System.Management.Automation.PSDriveInfo

Get-PSDrive returns objects that represent the Windows PowerShell drives in the session.

Notes

The Get-PSDrive cmdlet is designed to work with the data exposed by any provider. To list the providers available in your session, type "Get-PSProvider". For more information, see about_Providers.

Example 1

  Copy Code
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:\

Description

-----------

This command gets the Windows PowerShell drives in the current session.

The output shows the hard drive (C:) and CD-ROM drive (D:) on the computer, the drives exposed by the Windows PowerShell providers (Alias:, Cert:, Env:, Function:, HKCU:, HKLM:, and Variable:), and a drive mapped to a network share (X:).

Example 2

  Copy Code
C:\PS>get-psdrive d

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

Description

-----------

This command displays the D: drive on the computer. Note that the drive letter is not followed by a colon.

Example 3

  Copy Code
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

Description

-----------

This command displays all of the drives that are supported by the Windows PowerShell FileSystem provider. This includes fixed drives, logical partitions, mapped network drives, and drives that you create by using New-PSDrive that are mapped to the file system drives.

This example shows that drives created by New-PSDrive have the name of the mapped location in the value of the Root property. Windows drives just have the root of the drive letter.

Example 4

  Copy Code
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." }

Description

-----------

This command checks to see whether the X drive is already in use as the Windows PowerShell drive name. If it is not, the command uses the New-PSDrive cmdlet to create a Windows PowerShell drive that is mapped to the HKLM:\Network registry key.

Example 5

  Copy Code
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

Description

-----------

This example compares the types of file system drives that are displayed by Get-PSDrive to those displayed by using other methods. This example demonstrates different ways to display drives in Windows PowerShell, and it shows that the drives created by using New-PSDrive are accessible only in Windows PowerShell.

The first command uses Get-PSDrive to get all of the file system drives in the Windows PowerShell console. This includes the fixed drives (C: and D:), the mapped network drive (X:), and two Windows PowerShell drives (Y: and Z:) that were created by using New-PsDrive.

A "net use" command, which displays Windows mapped network drives, displays only the X drive. It does not display drives that are created by New-PSDrive. It shows that the X: drive is also mapped to \\Server01\Public.

The third command uses the GetDrives method of the Microsoft .NET Framework System.IO.DriveInfo class. This command gets the Windows file system drives, including drive X:, but it does not get the drives created by New-PSDrive.

The fourth command uses the Get-WmiObject cmdlet to display the instances of the Win32_LogicalDisk class. It returns the C:, D:, and X: drives, but not the drives created by New-PSDrive.

The last command uses the Get-WmiObject cmdlet to display the instances of the Win32_NetworkConnection class. Like "net use", it returns only the X: drive.

See Also