powershell

Fetching values from Net Use command using powershell


I am trying to get network mapped drives using below commands.

Get-WmiObject -Class Win32_MappedLogicalDisk |  %{$_.Name}

Get-WmiObject -Class Win32_MappedLogicalDisk |  %{$_.ProviderName}

This works in some system however does not in other systems(may be powershell version issue) So I thought of using net use command. However, I am unable to fetch the values or not sure how to get the values displays when i type 'net use'

when I type net use I get status, Local, Remote and Network column. I tried to use the below command to get the field values.

net use | select local.

but I get blank or nothing

Used below command.

net use | select local.

Need to get Local and Remote values from net use command.


Solution

  • See this for parsing legacy console output ---

    How to Convert Text Output of a Legacy Console Application to PowerShell Objects

    Yet, along with what LotPings gave you already. Your query could be a duplicate of this ... Equivalent of net use (to list computer's connections) in powershell? ... and it's accepted answer

    # For the mapped logical drive you can use WMI class Win32_MappedLogicalDisk :
    
    Get-WmiObject Win32_MappedLogicalDisk
    
    # Here is another way with Win32_LogicalDisk :
    
    PS C:\> Get-WmiObject -Query "Select * From Win32_LogicalDisk Where DriveType = 4"
    
    DeviceID     : V:
    DriveType    : 4
    ProviderName : \\jpbdellf1\c$
    FreeSpace    :
    Size         :
    VolumeName   :
    
    # Edited
    # You are right, you can get what you need with Win32_NetworkConnection :
    Get-WmiObject Win32_NetworkConnection
    
    LocalName                     RemoteName                    ConnectionState               Status
    ---------                     ----------                    ---------------               ------
                                  \\jpbasusf1\temp              Connected                     OK
    
    # On Seven or W2K8 be careful to call this with the same user that run the NET USE because it's a session information.