You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何通过Windows网络(含PowerShell方式)远程访问读取指定用户历史记录文件夹并导出数据

如何通过Windows网络(含PowerShell方式)远程访问读取指定用户历史记录文件夹并导出数据

嘿,既然你手握域管理员权限,要远程访问目标主机上C:\Users\admins\AppData\Local\Microsoft\Windows\History文件夹、读取内容并导出CSV到你的管理电脑,完全可以通过几种高效的方式实现。下面是具体操作步骤和注意事项:

一、先确认前提条件

  • 目标主机必须处于开机状态,且能通过网络正常访问
  • 确保目标主机的防火墙允许远程管理(WinRM默认端口5985/5986需开放,域内环境通常已配置)
  • 你的域管理员账号需具备目标主机的本地管理员权限(一般域admin默认拥有)

二、方法1:PowerShell远程会话(最稳定的方式)

这种方式直接在远程主机上执行命令,能避免网络共享可能出现的权限问题:

  1. 先检查目标主机是否启用了WinRM(远程管理服务):
    # 替换TargetPC为目标主机的名称或IP地址
    Test-WSMan TargetPC
    
    如果返回正常的WSMan信息,说明服务已启用;如果没启用,你可以用这条命令远程开启(需域管理员权限):
    Invoke-Command -ComputerName TargetPC -ScriptBlock { winrm quickconfig -quiet }
    
  2. 远程读取History文件夹并导出到本地CSV:
    # 定义目标主机名和用户名
    $targetPC = "TargetPC"
    $targetUser = "admins"
    
    # 远程获取文件夹所有内容的详细信息
    $historyData = Invoke-Command -ComputerName $targetPC -ScriptBlock {
        $historyPath = "C:\Users\$using:targetUser\AppData\Local\Microsoft\Windows\History"
        # 递归读取所有文件/文件夹,包括隐藏和系统属性的内容
        Get-ChildItem -Path $historyPath -Recurse -Force | 
            Select-Object FullName, Name, Length, CreationTime, LastWriteTime, Attributes
    }
    
    # 将结果导出到本地CSV文件(路径可以自定义)
    $historyData | Export-Csv -Path "C:\Temp\Remote_History_Export.csv" -NoTypeInformation -Encoding UTF8
    
    这里的-Recurse会遍历所有子文件夹,-Force能读取隐藏/系统级的文件,确保你拿到尽可能多的信息。

三、方法2:通过UNC路径直接访问

利用Windows默认的系统隐藏共享C$,直接通过网络路径访问目标文件夹:

# 替换TargetPC为目标主机名
$uncPath = "\\TargetPC\C$\Users\admins\AppData\Local\Microsoft\Windows\History"

# 读取内容并导出CSV
Get-ChildItem -Path $uncPath -Recurse -Force | 
    Select-Object FullName, Name, Length, CreationTime, LastWriteTime, Attributes |
    Export-Csv -Path "C:\Temp\UNC_History_Export.csv" -NoTypeInformation -Encoding UTF8

这种方式更直接,不需要依赖WinRM,但如果目标主机的C$共享被禁用,就没法用了。

四、一些关键注意事项

  • 编码问题:导出CSV时一定要加-Encoding UTF8,否则中文或特殊字符可能会乱码
  • 权限排查:如果遇到“访问被拒绝”的错误,确认你的域管理员账号在目标主机的本地管理员组中,或者目标用户的文件夹权限是否允许管理员访问
  • 文件完整性:History文件夹里的部分文件可能是系统锁定的(比如正在被使用的历史记录),这种情况下会跳过,属于正常现象

备注:内容来源于stack exchange,提问作者admins akb

火山引擎 最新活动