M

MrCai

记录和分享一些日常

  • 首页
  • Tv
  • MyIP
  • Searxng
  • Cook
  • IT-Tools
  • Linux命令查询
主页 用 PowerShell 脚本高效采集 Windows 终端信息并自动上传至共享盘⚙️📝
文章

用 PowerShell 脚本高效采集 Windows 终端信息并自动上传至共享盘⚙️📝

发表于 2025-07-25 更新于 2025-07- 25
作者 Administrator
11~15 分钟 阅读

在日常 IT 管理中,我们经常需要快速获取某台 Windows 终端的基本配置信息,例如硬件规格、网络信息、已安装软件、管理员账号列表等。这种需求在设备清点、系统盘点、终端上线前的检查中尤为常见。

今天分享一个我自己在使用的自动化采集方案:通过一个 PowerShell 脚本自动采集终端信息,并将结果上传到内网共享文件夹,再结合一个简单的 bat 脚本实现“一键运行”,即便是普通员工也可以使用它完成自己的信息采集任务。


📌 脚本功能概述

脚本实现了以下功能:

  1. 挂载公司共享文件夹(NAS)

  2. 检测共享路径是否存在

  3. 采集终端信息:

    • 当前用户名与计算机名

    • CPU 型号与内存大小

    • 网络适配器信息(MAC 地址与 IP 地址)

    • 硬盘与分区信息

    • 操作系统名称与版本

    • BIOS 序列号(用于唯一标识设备)

    • 安装的软件清单(含版本)

    • 管理员用户列表

    • 远程桌面是否启用

  4. 以 CSV 格式导出到共享盘中,以“用户名_计算机名.csv”命名


🧰 关键技术实现详解

1. 📂 网络共享挂载与验证

net use "\\NAS_ADDRESS" /user:USERNAME PASSWORD
$nasPath = "\\NAS_ADDRESS"
if (!(Test-Path $nasPath)) {
    Write-Output "❌ 共享路径不存在:$nasPath"
    exit
}

脚本首先通过 net use 命令将 NAS 挂载到本地,并检查目标路径是否存在。这样可确保后续的数据导出不会失败。


2. 🖥️ 系统基本信息采集

收集当前用户、计算机名、CPU、内存、硬盘和分区等硬件信息:

$cpuName = (Get-CimInstance Win32_Processor | Select-Object -First 1 -ExpandProperty Name)
$totalMemGB = [math]::Round($totalMemBytes / 1GB, 2)
...
$disks = Get-WmiObject Win32_DiskDrive
$partitions = Get-WmiObject Win32_LogicalDisk -Filter "DriveType=3"

这些信息可以反映设备的基础性能构成。


3. 🌐 网络配置收集

$netAdapters = Get-NetAdapter
(Get-NetIPAddress -InterfaceAlias $adapter.Name -AddressFamily IPv4)

通过 Get-NetAdapter 和 Get-NetIPAddress 获取每个网卡的 MAC 地址与分配的 IP 地址,方便 IT 排查网络问题。


4. 💽 软件列表和系统信息

$software += Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*

通过注册表路径获取安装的软件列表,覆盖 32 位和 64 位路径,并按软件名排序导出。结合操作系统信息,有助于安全审计和软件资产盘点。


5. 👤 管理员用户与远程桌面状态

$admins = Get-LocalGroupMember -Group "Administrators"
...
$rdp = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server"

这部分识别本地管理员账号以及远程桌面启用状态,对于权限管理和远程运维尤为重要。


6. 📝 数据导出

$info | Export-Csv -Path $output -Encoding UTF8 -NoTypeInformation

所有信息以结构化的 CSV 文件导出,并存储在共享文件夹中,便于集中化管理与后续分析。


7.⚙️ bat 脚本辅助启动

由于默认 Windows 执行策略可能禁止直接运行 .ps1 文件,因此配套使用以下 .bat 脚本来完成管理员权限运行:

@echo off
set script=%~dp0getinfo.ps1
powershell -NoProfile -ExecutionPolicy Bypass -Command "Start-Process powershell -ArgumentList '-NoProfile -ExecutionPolicy Bypass -File \"%script%\"' -Verb RunAs"

它的关键在于:

  • 强制以管理员身份启动 PowerShell;

  • 使用 -ExecutionPolicy Bypass 绕过本地策略限制;

  • 自动定位脚本路径,避免路径错误。


✅ 使用场景

  • 企业资产盘点与统一管理

  • 部署前设备状态快照

  • 安全合规检查

  • 硬件故障排查的辅助数据


💬 小结

这个脚本虽然简单,但在终端管理场景中非常实用。如果你也面临大量设备的配置梳理任务,不妨尝试部署这套方案。

下载地址

getinfo.ps1

run_getinfo.bat

windows
WINDOWS BAT
许可协议:  CC BY 4.0
分享

相关文章

7月 25, 2025

用 PowerShell 脚本高效采集 Windows 终端信息并自动上传至共享盘⚙️📝

在日常 IT 管理中,我们经常需要快速获取某台 Windows 终端的基本配置信息,例如硬件规格、网络信息、已安装软件、管理员账号列表等。这种需求在设备清点、系统盘点、终端上线前的检查中尤为常见。 今天分享一个我自己在使用的自动化采集方案:通过一个 PowerShell 脚本自动采集终端信息,并将结

7月 23, 2025

如何轻松清理企业微信缓存,释放磁盘空间 💻🚀

引言 随着我们在工作中越来越依赖企业微信,大家有没有发现,企业微信会在你的电脑上积累大量的缓存文件?这些缓存文件虽然可以提高应用速度,但时间久了,它们会占用大量的磁盘空间,导致电脑变得越来越慢 😔。为了帮助大家轻松解决这个问题,我们特地编写了一个简单实用的脚本,它可以根据你选择的日期,自动清理企业

下一篇

如何轻松清理企业微信缓存,释放磁盘空间 💻🚀

上一篇

最近更新

  • 用 PowerShell 脚本高效采集 Windows 终端信息并自动上传至共享盘⚙️📝
  • 如何轻松清理企业微信缓存,释放磁盘空间 💻🚀

热门标签

Halo BAT WINDOWS

目录

©2025 MrCai. 保留部分权利。

使用 Halo 主题 Chirpy