You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell获取域控制器文件哈希值失败问题求助

问题排查与解决

问题根源

你的命令存在两个关键错误:

  1. 路径格式完全错误:访问域控制器上的共享文件必须使用UNC路径(\\计算机名\共享名\文件路径),而你写的\$_.Name\netlogon\site\logon.bat既没有双反斜杠开头,也没有指定合法的共享名。
  2. 变量未正确解析:在计算属性的脚本块中,$_.Name无法直接嵌入无引号的字符串里,必须用子表达式$($_.Name)确保变量被正确展开。

修正后的命令

考虑到需要验证文件存在性和哈希一致性,推荐使用带错误处理的版本:

Get-ADDomainController -Filter * | Select-Object Name, @{
    Name = "Hash";
    Expression = {
        $targetPath = "\\$($_.Name)\Netlogon\site\logon.bat"
        if (Test-Path -Path $targetPath -PathType Leaf) {
            try {
                (Get-FileHash -Path $targetPath -Algorithm SHA256).Hash
            }
            catch {
                "读取失败:$($_.Exception.Message)"
            }
        }
        else {
            "文件不存在"
        }
    }
}

关键说明

  • Netlogon共享是域控制器默认的脚本共享,路径对应\\DC名称\Netlogon,如果你的site\logon.bat在其他共享下,需要替换对应的共享名。
  • 添加Test-Path提前检查文件是否存在,避免无意义的报错。
  • 加入try/catch块处理权限不足、文件损坏等异常情况,返回明确提示。

内容的提问来源于stack exchange,提问作者CoryC

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 05:35:12