windows获取本地网络主机共享的文件列表

windows获取本地网络主机共享的文件列表

本地网络包含几个文件服务器,每个服务器都有多个共享。

我想获取给定主机的完整递归目录列表。不幸的是,dir /S /B \\servername这行不通。

我必须dir /S /B \\servername\share分别对每一股股票进行叫价。

有没有更简单的方法?

如果目录没有访问权限,则该过程也不应该停止或中止。

答案1

此 PowerShell 单行命令将列出指定计算机的所有共享,并列出每个共享的所有文件:

foreach($Share in Get-WmiObject Win32_Share -ComputerName 'COMPUTER') {Get-ChildItem "\\$($Share.__SERVER)\$($Share.Name)"}

您可以从命令提示符(cmd)或批处理(.bat)调用它,如下所示:

powershell "foreach($Share in Get-WmiObject Win32_Share -ComputerName 'COMPUTER') {Get-ChildItem "\\$($Share.__SERVER)\$($Share.Name)"}" >\path\outfile.txt

编辑

对于查询非 Windows 服务器,问题在于上述操作需要不可用的 RPC 服务器。

您可以尝试使用 WMIC。在 PowerShell 命令提示符中为这样的一个 Linux 服务器输入以下两行:

$allshares = (net view \\SERVER) | % { if($_.IndexOf(' Disk ') -gt 0){ $_.Split('  ')[0] }}
foreach ($Share in $allshares) {Get-ChildItem "\\SERVER\\$Share"}

答案2

通过资源管理器打开包含共享的文件夹。按住 Shift 并右键单击。选择在此处打开 powershell 或 cmd,然后输入:dir > textfile.txt

答案3

创建名为C:\Folders.txt

在 Powershell 中运行此命令:

Get-ChildItem "\\192.168.2.4\Home" -Recurse -Name -Directory | Out-File "C:\Folders.txt"

相关内容