#PSTip Enumerating mapped network drives using WScript.Network
In the ‘Create mapped network drive using WScript.Network‘ tip, it was shown how a mapped drive can be mounted. The WScript.Network object also contains the EnumNetworkDrives method which enumerates all locally mapped network drives:
(New-Object -ComObject WScript.Network).EnumNetworkDrives()
The output of this method is unfortunately a bit disappointing. It returns a COM object containing an array of strings:

To make this information more useful the following function can be used:
Function Get-MappedDrive {
(New-Object -ComObject WScript.Network).EnumNetworkDrives() | ForEach-Object -Begin {
$CreateObject = $false
} -Process {
if ($CreateObject) {
$HashProps.NetworkPath = $_
New-Object -TypeName PSCustomObject -Property $HashProps
$CreateObject = $false
} else {
$HashProps = @{
LocalPath = $_
}
$CreateObject =$true
}
}
}
This function gathers the output of the EnumNetworkDrives method and organizes this into PowerShell objects:

This function is also available in the TechNet Script Gallery available here.
Share on: