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

为PowerShell脚本添加凭据远程获取文件修改日期遇报错求助

问题分析与解决方案

原脚本的核心错误

  • Get-ChildItem 的 -Credential 参数不支持UNC共享路径(即\\Server\Share格式),PowerShell的文件系统提供程序无法通过该参数传递凭据来验证SMB共享访问,这是报错的主要原因。
  • 循环内每次调用 Get-Credential 会重复弹出输入框,不仅效率低,也不符合无交互需求。

实现无交互执行的正确步骤

1. 预先加密存储凭据(仅需执行一次)

先运行以下命令生成加密的凭据文件,密码会以当前用户权限加密存储,只有你在同一台机器上才能解密使用:

$cred = Get-Credential
$cred | Export-Clixml -Path "C:\temp\remoteCred.xml"

2. 修改后的完整脚本

Set-ExecutionPolicy Unrestricted -Force -Scope CurrentUser
$ServerName = Get-Content "c:\temp\devices.txt"
# 加载预先存储的加密凭据
$Credential = Import-Clixml -Path "C:\temp\remoteCred.xml"

$Output = foreach ($Server in $ServerName) {
    if (Test-Connection -ComputerName $Server -Count 1 -Quiet) {
        try {
            # 用cmdkey添加SMB共享的凭据映射,这是Windows远程共享认证的正确方式
            cmdkey /add:$Server /user:$Credential.UserName /pass:$($Credential.GetNetworkCredential().Password)
            
            # 获取文件信息
            $file = Get-ChildItem -Path "\\$Server\c$\ProgramData\sync\data.xml" -ErrorAction Stop
            
            # 构造结构化输出(按需调整字段)
            [PSCustomObject]@{
                服务器名称 = $Server
                文件路径 = $file.FullName
                最后修改时间 = $file.LastWriteTime
            }
        }
        catch {
            # 记录错误信息
            [PSCustomObject]@{
                服务器名称 = $Server
                错误信息 = $_.Exception.Message
            }
        }
        finally {
            # 清理凭据映射(可选,若不需要保留可删除)
            cmdkey /delete:$Server
        }
    }
    else {
        [PSCustomObject]@{
            服务器名称 = $Server
            错误信息 = "无法ping通服务器"
        }
    }
}

# 导出为CSV(比Out-File更适合结构化数据)
$Output | Export-Csv -Path "c:\temp\dataxml.csv" -NoTypeInformation -Encoding UTF8

关键说明

  • 使用 cmdkey 命令管理SMB凭据:这是Windows系统访问远程共享的标准方式,绕过了PowerShell文件系统提供程序的限制。
  • 加密存储凭据:Export-Clixml 生成的文件是加密的,避免明文存储密码带来的安全风险。
  • 结构化输出:用 PSCustomObject 定义输出字段,导出为CSV后更易读取和分析。
  • 错误处理:通过 try/catch 捕获访问失败的情况,避免脚本中断,同时记录错误原因。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 10:42:55