windows收集安装信息脚本
一、win10
# Get-SoftwareList.ps1 # 功能:收集本机已安装的软件列表,并发送到网络共享目录 # --- 配置区:请务必修改为你的实际路径 --- # 目标服务器上的共享文件夹路径,例如:\\DC01\SoftwareInventory$ $serverShare = "\\WIN-V17D1IV7AOB\test2$" # 如果需要身份验证,可以取消注释并填写 # $cred = Get-Credential "DOMAIN\ServiceAccount" # --- 配置区结束 --- # 获取计算机名,用于生成唯一文件名 $computerName = $env:COMPUTERNAME # 生成时间戳,用于区分不同时间收集的报告 $timestamp = Get-Date -Format "yyyyMMdd-HHmmss" # 收集软件列表 # 从两个常见的注册表位置获取已安装的软件信息 $software = Get-ItemProperty "HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*", "HKLM:\Software\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*" | Where-Object { $_.DisplayName -ne $null } | # 过滤掉没有名称的项 Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Sort-Object DisplayName # 将收集到的信息导出到一个临时文本文件 $tempFile = "$env:TEMP\$computerName-$timestamp.csv" $software | Export-Csv -Path $tempFile -NoTypeInformation -Encoding UTF8 # 尝试将文件复制到服务器 try { # 如果目标目录不存在,脚本会报错并进入catch块 Copy-Item -Path $tempFile -Destination "$serverShare\" -Force -ErrorAction Stop Write-Host "Success: 软件列表已成功发送到服务器。" } catch { Write-Host "Error: 无法复制文件到服务器。请检查路径 '$serverShare' 是否存在以及是否有写入权限。" -ForegroundColor Red Write-Host "详细错误信息: $($_.Exception.Message)" -ForegroundColor Red } finally { # 清理临时文件 Remove-Item -Path $tempFile -Force -ErrorAction SilentlyContinue }
浙公网安备 33010602011771号