Skip to main content

How to List Network Shares in a Batch Script

A network share is a folder on a computer that has been made available for other users on the network to access. For system administrators, auditing these shares is a crucial security and maintenance task. You might need to generate a report of all shares on a server, check if a specific folder is shared, or simply get a quick overview of what resources a machine is offering to the network.

This guide will teach you how to list network shares using the two primary built-in Windows commands for this task: the classic NET VIEW and NET SHARE commands, and the modern and more powerful WMIC command.

The Core Commands: NET VIEW, NET SHARE, and WMIC

Windows provides several built-in tools for this task, each suited for a slightly different purpose.

  • NET VIEW \\ComputerName: This is the classic command to list the shares on a remote computer. It shows you what another machine is sharing.
  • NET SHARE: This command, when run with no arguments, lists all the shares created on the local computer.
  • WMIC SHARE: This is the modern and most powerful method. It can list local shares with far more detail and in a script-friendly format.

Listing Shares on a Remote Computer (NET VIEW)

The NET VIEW command is the simplest way to see what shares are available on another computer on your network.

Syntax:NET VIEW \\ComputerName

@ECHO OFF
SET "TargetServer=FILESERVER-01"

ECHO --- Listing shares on %TargetServer% ---
ECHO.
NET VIEW \\%TargetServer%

The command produces a clean, table-formatted list of share names and their comments as output:

Shared resources at \\FILESERVER-01

Share name Type Used as Comment
-------------------------------------------------
Data Disk Company Shared Data
Profiles Disk User Profiles
Scans Disk Incoming Scans from MFD
The command completed successfully.

Listing Shares on the Local Computer (NET SHARE)

To see what shares are configured on the machine you are currently on, you use NET SHARE.

Command: NET SHARE

This command provides more detail than NET VIEW, including the local path that is being shared. It also lists the hidden administrative shares (like C$ and ADMIN$).

Share name   Resource                        Remark
-------------------------------------------------------------------------------
C$ C:\ Default share
IPC$ Remote IPC
ADMIN$ C:\WINDOWS Remote Admin
Data C:\Shared\Data Company Shared Data
...

For any automation task, WMIC is the superior tool. It provides the most detail and its output is structured and easy for a script to parse.

Command: WMIC SHARE GET Name,Path,Caption

This produces a clean, space-padded table that is ideal for scripting, as Output:

Caption                Name   Path
OK ADMIN$ C:\WINDOWS
OK C$ C:\
Company Shared Data Data C:\Shared\Data
Remote IPC IPC$
OK Profiles C:\Users\Profiles
OK Scans C:\Scans

Parsing the Output to Process Each Share

The real power of WMIC comes from the ability to use its output in a FOR loop. This allows you to perform an action on each share found.

This script iterates through each non-hidden share on the local machine and prints its details.

@ECHO OFF
ECHO --- Auditing Local Network Shares ---
ECHO.

REM 'skip=1' ignores the header line.
REM 'tokens=1,2,*' separates the columns.
FOR /F "skip=1 tokens=1,2,*" %%A IN ('WMIC SHARE GET Caption^,Name^,Path') DO (

REM --- Use a trick to see if the share name contains a '$' ---
ECHO %%B | FIND "$" > NUL
IF ERRORLEVEL 1 (
ECHO Share Name: "%%B"
ECHO Local Path: "%%C"
ECHO Description: "%%A"
ECHO.
)
)
note

This script cleverly uses FIND "$" to filter out the administrative hidden shares.

Common Pitfalls and How to Solve Them

  • Permissions: While listing shares on the local machine is usually fine, listing shares on a remote computer (NET VIEW) or getting detailed WMIC info can fail with an "Access is denied" error.

    • Solution: For remote auditing, you must be running the script as a user with at least local administrator rights on the target machine. Ensure firewalls are configured to allow "File and Printer Sharing."
  • Hidden Administrative Shares: By default, the NET SHARE and WMIC SHARE commands will list the hidden administrative shares (ending with a $).

    • Solution: As shown in the practical example, you can pipe the output to FINDSTR /V "\$" to filter out lines containing a dollar sign, or use the FIND trick as shown above.

Practical Example: An Audit Script for Server Shares

This script uses the robust WMIC method to generate a CSV report of all non-hidden shares on a remote server. This is perfect for security and configuration auditing.

@ECHO OFF
SETLOCAL
SET "TargetServer=FILESERVER-01"
SET "ReportFile=Share_Audit_%TargetServer%.csv"

ECHO --- Share Audit Script ---
ECHO Auditing server: %TargetServer%
ECHO Report will be saved to: %ReportFile%
ECHO.

REM --- Create the CSV Header ---
ECHO "Share Name","Local Path","Description" > "%ReportFile%"

REM --- The WMIC Query and Loop ---
FOR /F "skip=1 tokens=1,2,*" %%A IN ('WMIC /NODE:"%TargetServer%" SHARE GET Caption^,Name^,Path') DO (
REM Check if the share name is hidden (contains '$')
ECHO %%B | FIND "$" > NUL

REM If it's NOT a hidden share, append it to the CSV.
IF ERRORLEVEL 1 (
ECHO "%%B","%%C","%%A" >> "%ReportFile%"
)
)

ECHO [SUCCESS] Audit report created.
ENDLOCAL
  • /NODE:"%TargetServer%": This is the WMIC syntax for targeting a remote computer.

Conclusion

Windows provides several powerful, built-in tools for listing network shares.

  • NET VIEW \\Server is the quickest way to see the shares on a remote machine.
  • NET SHARE is the standard way to list shares on the local machine.
  • WMIC SHARE is the most powerful and recommended method for any scripting or automation. It provides detailed, structured output that is easy to parse.

By using WMIC with a FOR /F loop, you can easily create robust scripts to audit, document, and manage the shared resources on your network.