2

我想使用 powershell 从文件夹的 DFS 属性选项卡中提取信息。

DFS 属性选项卡

本质上,我想遍历文件夹结构并递归检索每个文件夹的 dfs 信息。

4

3 回答 3

1

这是帮助我解决相同问题的 Powershell 代码段:

(Get-DfsnRoot -Domain example.net).Path |
    % { (Get-DfsnFolder -Path (Join-Path -Path $_ -ChildPath "\*")).Path } |
        % { Get-DfsnFolderTarget -Path $_ | select Path, TargetPath } |
            sort Path |
                ft -autosize

一些备注:

  • 它使用Powershell 的 DFSR 模块中的 cmdlet ,我相信它自/适用于 Windows Server 2012 R2 以来可用(您可能需要先安装/启用它)。
  • Get-DfsnFolder -Path参数\*末尾的尾随很重要!没有它,我得到一个“CimException”;我首先尝试了一个简单的字符串连接,但没有成功,这就是我使用 Join-Path 的原因。
  • 我只对目标路径感兴趣,因此在上面的代码片段中没有考虑其他 DFS 属性。

输出应如下所示:

Path                             TargetPath
----                             ----------
\\example.net\Admin\AdminScripts \\FS101XY0123.example.net\SysAdmin$\AdminScripts
\\example.net\Admin\Setup        \\fs302az8901.example.net\SysAdmin$\Tools\Setup
\\example.net\Admin\Tools        \\fs202zz4567.example.net\SysAdmin$\Tools
...
于 2021-12-04T18:39:39.923 回答
0

试试dfsutil命令:

PS C:\> dfsutil client property state $DFSPath
于 2015-12-04T19:19:41.107 回答
0

使用 WMI

如果您有权查询 WMI,则可以使用Get-WmiObjectPowerShell cmdlet;你应该能够适应这个例子:

$DfsProvider = "SERVER"
$DfsPath = "\\SOME\DFS\Path"

Get-WmiObject -ComputerName $DfsProvider -Class Win32_DFSTarget `
  -Filter "SELECT ServerName,ShareName,LinkName FROM Win32_DFSTarget WHERE LinkName = '$DfsPath'"
于 2017-08-31T13:14:57.070 回答