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

PowerShell脚本求助:创建日期命名网络共享文件夹并复制日志

完整PowerShell脚本实现日志备份
# 定义网络共享路径和目标文件夹名称(当日日期,格式如yyyy-MM-dd)
$networkSharePath = "\\FileServer\LogBackup"
$dateFolderName = Get-Date -Format "yyyy-MM-dd"
$targetFolder = Join-Path -Path $networkSharePath -ChildPath $dateFolderName

# 创建目标文件夹(不存在则创建)
if (-not (Test-Path -Path $targetFolder)) {
    New-Item -Path $targetFolder -ItemType Directory | Out-Null
}

# 1. 导出Server A的应用程序事件日志到目标文件夹
$appLogFileName = "ServerA_ApplicationLog_$dateFolderName.evtx"
$appLogTargetPath = Join-Path -Path $targetFolder -ChildPath $appLogFileName
Get-WinEvent -ComputerName "ServerA" -LogName Application -ErrorAction Stop | Export-WinEvent -Path $appLogTargetPath -ErrorAction Stop

# 2. 复制Server A的当前IIS日志到目标文件夹
# 替换为你的IIS日志实际UNC路径,默认示例指向W3SVC1站点日志
$iisSourceLogs = "\\ServerA\c$\inetpub\logs\LogFiles\W3SVC1\*.log"
# 可选:仅复制当日生成的IIS日志
$today = (Get-Date).Date
Get-ChildItem -Path $iisSourceLogs | Where-Object { $_.LastWriteTime -ge $today } | Copy-Item -Destination $targetFolder -Force -ErrorAction Stop

Write-Host "日志备份完成,目标路径:$targetFolder"
关键细节说明
  • 路径整合:用Join-Path拼接网络共享路径和日期文件夹,确保所有备份操作都指向同一个目标目录,避免手动拼接路径的错误
  • 事件日志处理:Windows事件日志无法直接复制源文件,必须通过Export-WinEvent导出为标准evtx格式,同时指定-ComputerName从Server A远程拉取日志
  • IIS日志筛选:如果只需要当日的IIS日志,通过Get-ChildItem结合Where-Object筛选出最后写入时间为当日的日志文件,再执行复制
  • 权限要求:运行脚本的账号需具备:
    • Server A的事件日志读取权限
    • Server A上IIS日志目录的读取权限
    • 网络共享目录的写入权限

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 11:40:10