如果我有Windows服务器(通常是2000、2003或2008),是否有一种简单的方法可以列出该服务器上共享的所有本地目录?

我可以很容易地找到共享本身,但是我会喜欢一种快速的方法来查找它们在磁盘上表示的本地目录。

谢谢!

#1 楼

您可以进入计算机管理(右键单击我的计算机,选择管理),展开“共享文件夹”节点,然后查看所有共享,已连接会话和打开文件的列表。

对于W2K8,您可以在服务器管理器:角色->文件服务->共享和存储管理;

要列出远程服务器的共享,请注意NET VIEW svr_name仅显示用户共享,不显示管理员或隐藏共享。在末尾添加/ all开关将显示其他(对于W2K8)。

C:\>net view sx1
Shared resources at sx1

Share name    Type  Used as  Comment
 --------------------------------------------
SHARE_CIFS    Disk
The command completed successfully.

C:\>net view sx1 /all
Shared resources at sx1

Share name    Type  Used as  Comment
 --------------------------------------------
ADMIN$        Disk           Remote Admin
SHARE_CIFS    Disk
C$            Disk           Default share
IPC$          IPC            Remote IPC
The command completed successfully.


评论


这具有误导性;虽然GUI解决方案有效,但在使用CLI时,应使用net share来显示本地服务器上共享的内容以及相应的物理路径(net view不会显示)。

–马西莫
2015年12月30日15:50



@Massimo,您的评论具有误导性。我的建议是使用Net View列出远程共享。网络共享将不会列出远程共享,因此不能用于此目的。如果您正在查看本地计算机,则可以,Net Share是一个更好的选择,但是它不能远程使用。

– Sam Cogan
16年1月4日在13:25

@Sam这个问题对远程服务器什么也没说,它要求一种方法“列出该服务器上共享的所有本地目录”和“它们在磁盘上表示的本地目录”。网络视图不显示物理路径,网络共享显示。可以肯定的是,它不能远程运行,但是并没有要求这样做。

–马西莫
16年1月4日在13:56



#2 楼

在命令行提示符下,可以使用“ net share”命令。
它将打印一个表,其中包含共享名称,资源和可选备注的列表。

#3 楼

从命令提示符处选择net share将为您提供共享名和路径。如果您需要更高级的功能,则可以使用VBScript或PowerShell查询WMI。

#4 楼

使用WMI:Win32_Share。

在PowerShell中:

gwmi -class Win32_Share


这还包括系统提供的共享,并且可以远程工作。

结果对象的Path属性是本地路径。

评论


要从其他计算机上获取此信息,请在命令中添加“ -computername name”。如果您想在整台机器上共享份额,这可能会非常方便。不要忘记,您可以将它们转储到csv中以进行进一步处理,以及许多其他有趣的PowerShell优点。

– flickerfly
2012-12-26 16:16



#5 楼

为了清楚起见(因为在GUI中找不到共享列表并不明显)

正如人们提到的那样,打开命令提示符并键入net share。这可能是查看可用共享的最简单方法。这还将显示隐藏的共享(后缀为$的共享)以及共享指向的位置。

下面是一个示例:

C:\Users\tstmoss>net share

Share name   Resource                        Remark
-------------------------------------------------------------------------------
C$           C:\                             Default share
IPC$                                         Remote IPC
ADMIN$       C:\Windows                      Remote Admin
The command completed successfully.


在Windows Server 2008上,右键单击“开始”菜单中的“计算机”,然后选择“管理”或启动服务器。管理器(默认情况下,任务栏中开始菜单旁边的第一个图标)。

在服务器管理器中,展开“角色”节点,然后展开“文件服务”节点。单击共享和存储管理。显示屏将显示两个选项卡,共享和音量。 “共享”选项卡向您显示现有共享(与上面的控制台输出相同)。此界面确实允许您与共享进行交互,例如更改属性/权限,停止共享或创建新共享。

希望有所帮助。

#6 楼

对于快捷列表,请从命令提示符处执行“ NET SHARE”。此命令的唯一问题是,它会周到地将数据格式化为列,并有可能切断长路径。



HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanServer\Shares

这样做可能会更好。
使用REGEDIT。您可以按需导出此文件。

#7 楼

右键单击您的My Computer图标,然后选择Manage

在打开的窗口中,在左侧的树中查找带有Shared Folders的图标,并将其展开以找到另一个带有Shares的图标。单击此处,您应该看到所有当前股票的列表。

#8 楼

打开一个PowerShell实例,添加此功能,然后运行它:

function Get-FileShare {
    [CmdletBinding()]
    param(
        [string] $Name = '%',

        [parameter(ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true)]
        [string] $ComputerName = "$env:COMPUTERNAME"
    )
    Set-StrictMode -Version Latest

    $Name = $Name -replace "\*", "%"

    if ($Name -eq '%') {
        Get-WmiObject -Class Win32_Share -ComputerName $ComputerName
    }
    else {
        Get-WmiObject -Class Win32_Share -ComputerName $ComputerName -Filter "Name LIKE '$Name'"
    }
}


#9 楼

\ servername
在“运行”(window + R)中输入计算机上服务器的名称,然后通过serve给它的共享文件夹的显示列表

Hawraz Abdulla

评论


这既不正确(* \ ** SERVER而不是\ SERVER)也不是答案。Windows资源管理器列表不是*本地共享,而是远程共享,甚至不包括其中带有$的名称。另外,它不是列表而是显示窗口。

–bjoster
19-4-10在12:49



#10 楼

我尝试使用以上所有建议并设计了自己的解决方案...

这是在ntwk上获得所有其他计算机份额的一种方式,而不仅仅是THIS的份额计算机或一台计算机的计算机

,在dos提示符下...

NET VIEW> C:\ TEMP \ SVRS.TXT

(当编辑SVRS.TXT)
(请像这样看东西))

查看)

\COMPUTER1
\COMPUTER2
\COMPUTERX


(附加到第一行的结尾)

(/ ALL> C:\ TEMP \ SHARES.TXT)

NET VIEW COMPUTER1
NET VIEW COMPUTER2
NET VIEW COMPUTERX


(通过最后一行插入第二行的末尾)

(/ ALL >> C:\ TEMP \ SHARES .TXT)

NET VIEW COMPUTER1 /ALL > C:\TEMP\SHARES.TXT
NET VIEW COMPUTER2
NET VIEW COMPUTERX


(将该文件另存为.BAT文件)

(两次单击该.BAT文件)

(查看您的C:\ TEMP \ SHARES.TXT文件)

LMK您对我的解决方案的看法-对不起所有大写字母

H