服务器信息收集

#Version:1.2
#Modify Date:2013-05-21

#说明:
#该脚本可以获取计算机名,域名,IP地址,操作系统版本,CPU名称+单颗CPU内核数量*CPU个数,内存大小(GB),单块磁盘大小,计算机序列号,制造商,计算机型号
#该脚本先将计算机信息输出到txt文件中,然后再自动输出到csv格式文件,检查无误后,可以将txt文件删除
#在运行该脚本的时候需要确保对需要获取信息的计算机有管理员权限,可以通过UNC路径访问到分区即可
#增加系统x86,x64版本判断

#定义获取计算机信息的函数
Function GetServerInfo ($server)
{
If
(Test-Connection $server -count 1 -quiet)
{$system = Get-WmiObject
-Class Win32_ComputerSystem -ComputerName $server
If ($?)

{
#获取计算机域名、型号
$domainname = $system.Domain

$model = $system.Model

#获取计算机IP地址,取IP和gw不为空的网卡IP地址
$ip = gwmi
Win32_NetworkAdapterConfiguration -computer $server|?{$_.ipaddress -ne $null
-and $_.defaultipgateway -ne $null}
$ipaddr = $ip.ipaddress

#获取操作系统版本
$os = Get-WmiObject -Class Win32_OperatingSystem
-ComputerName $server
#获取SP版本号
$osversion_letter = switch
($os.Version.Split(".")[2])
{

9200 {$null}

7601 {"SP1"}
3790 {"SP2"}

default {$os.Version}

}
$osversion = $os.Caption + " " + $osversion_letter + "
X"+$os.OSArchitecture.Substring(0,2)

#获取CPU名称、单颗CPU核心数量*CPU个数
$cpus = Get-WmiObject
win32_processor -ComputerName $server
$cpucount = 0

Foreach ($cpu in $cpus)
{

If ($cpu.DeviceID -ne $null)
{$cpucount += 1}

}
$cpunamecore = $cpu.name+"
"+[string]$cpu.NumberOfCores + ‘*‘ + [string]$cpucount + "C"

#获取内存大小
$memorys = Get-WmiObject -Class Win32_PhysicalMemory
-ComputerName $server
#$memorylist = $null

$memorysize_sum = $null
Foreach ($memory in $memorys)

{
#$memorylist +=
($memory.capacity/1024/1024/1024).tostring("F1")+"GB + "

$memorysize_sum += $memory.capacity/1024/1024/1024

}

#获取磁盘信息
$disks = Get-WmiObject Win32_Diskdrive -ComputerName
$server
$disklist = $null
#$disksize_sum =
$null
Foreach ($disk in $disks)
{

$disklist +=
($disk.deviceid.replace("\\.\PHYSICALDRIVE","Disk") +":" +
[int]($disk.size/1024/1024/1024)+"GB ")

#$disksize_sum+=$disk.size
}

#获取计算机序列号、制造商
$bios = Get-WmiObject -Class Win32_BIOS
-ComputerName $server
$sn = $bios.SerialNumber

If ($sn.Substring(0,6) -eq "VMware")
{$sn = "VMware-"}

$manufacturer = $bios.Manufacturer

$serverinfo =
$server + "," + $domainname + "," + $ipaddr + "," + $osversion + "," +
$cpunamecore + "," + $memorysize_sum + "," + $disklist + "," + $sn + "," +
$manufacturer + "," + $model
}
Else {$serverinfo =
$server + ",RPC服务不可用"}
}
Else {$serverinfo = $server +
",无法Ping通"}
Return $serverinfo
}

#定义服务器列表文件位置,输出结果保存位置
$serverlist_path="D:\infor_collect\serverlist.txt"
$serverInfo_result_path_tmp="D:\infor_collect\ServerInfo_result_tmp.txt"
$serverInfo_result_path="D:\infor_collect\ServerInfo_result.csv"

If (Test-Path $serverInfo_result_path_tmp)
{
$vbs =
New-Object -ComObject WScript.Shell

$vbs.popup($serverInfo_result_path_tmp + " 文件已存在,请重新输入保存位置!",0,"提示")
Exit

}
If (Test-Path $serverInfo_result_path)
{
$vbs = New-Object
-ComObject WScript.Shell
$vbs.popup($serverInfo_result_path + "
文件已存在,请重新输入保存位置!",0,"提示")
Exit
}

$dt = Get-Date
[array]$serverlist=gc $serverlist_path
$usedrows =
$serverlist.count
#写入标题行
"计算机名,域名,IP地址,操作系统,CPU,内存大小(GB),磁盘,序列号,制造商,计算机型号"|Out-File
$serverInfo_result_path_tmp -Append
For($i=1;$i -le $usedrows;$i++)

{
$server = $serverlist[$i-1]
#显示进度条,显示百分比 和
当前第几个
$w=$i.tostring()+‘/‘+$usedrows.tostring()
Write-Progress
-Activity "进度显示" -status "正在处理 $server,请耐心等待" -percentcomplete
($i/$usedrows*100) -currentoperation $w

If ($server -ne "$null")
{ GetServerInfo $server|Out-File
$serverInfo_result_path_tmp -Append}
Else {Write-Host "第" $i "行为空"
-ForegroundColor Red}
}
#将txt格式文件转换为csv格式
Import-Csv
$serverInfo_result_path_tmp |Export-Csv $serverInfo_result_path -Encoding UTF8
-NoTypeInformation
#获取脚本运行时长
Write-Host "该脚本运行时长为:" (New-Timespan
$dt).TotalMinutes "分钟" -ForegroundColor Green

时间: 2024-10-04 12:46:44

服务器信息收集的相关文章

人人都是 DBA(IX)服务器信息收集脚本汇编

原文:人人都是 DBA(IX)服务器信息收集脚本汇编 什么?有个 SQL 执行了 8 秒! 哪里出了问题?臣妾不知道啊,得找 DBA 啊. DBA 人呢?离职了!!擦!!! 程序员在无处寻求帮助时,就得想办法自救,努力让自己变成 "伪 DBA". 索引 SQL Server 安装的是什么版本 Windows 操作系统是什么版本 SQL Server 是什么时候安装的 服务器主机名是什么 硬件服务器是谁制造的 服务器硬件是什么配置 服务器的 CPU 有几个核 服务器的 CPU 是什么型号

人人都是 DBA(XV)锁信息收集脚本汇编

什么?有个 SQL 执行了 8 秒! 哪里出了问题?臣妾不知道啊,得找 DBA 啊. DBA 人呢?离职了!!擦!!! 程序员在无处寻求帮助时,就得想办法自救,努力让自己变成 "伪 DBA". 索引 查看 Session 对应的 Thread 和当前 Command 侦测 Deadlocking 或阻塞问题 查看 Task 执行中哪个 Wait Type 最慢 查看当前 Task 的运行情况 查看 Lock Waits 状态 查看 Latch 等待情况 将所有 wait_type 按照

人人都是 DBA(XIV)存储过程信息收集脚本汇编

什么?有个 SQL 执行了 8 秒! 哪里出了问题?臣妾不知道啊,得找 DBA 啊. DBA 人呢?离职了!!擦!!! 程序员在无处寻求帮助时,就得想办法自救,努力让自己变成 "伪 DBA". 索引 获取存储过程 SP 执行次数排名 查看哪个 SP 执行的平均时间最长 查看哪个 SP 执行的平均时间最不稳定 查看哪个 SP 耗费了最多的 CPU 时间 查看哪个 SP 执行的逻辑读最多 查看哪个 SP 执行的物理读最多 查看哪个 SP 执行的逻辑写最多 获取存储过程 SP 执行次数排名

人人都是 DBA(XI)I/O 信息收集脚本汇编

原文:人人都是 DBA(XI)I/O 信息收集脚本汇编 什么?有个 SQL 执行了 8 秒! 哪里出了问题?臣妾不知道啊,得找 DBA 啊. DBA 人呢?离职了!!擦!!! 程序员在无处寻求帮助时,就得想办法自救,努力让自己变成 "伪 DBA". 索引 数据文件和日志文件位置和大小 查看指定数据库文件的大小和可用空间 服务器 Disk 容量和挂载信息 查看 Disk 剩余空间 查询数据库设置的 Recovery Model 查看最近的 Full Backup 信息 获取所有数据库的

人人都是 DBA(XII)查询信息收集脚本汇编

原文:人人都是 DBA(XII)查询信息收集脚本汇编 什么?有个 SQL 执行了 8 秒! 哪里出了问题?臣妾不知道啊,得找 DBA 啊. DBA 人呢?离职了!!擦!!! 程序员在无处寻求帮助时,就得想办法自救,努力让自己变成 "伪 DBA". 索引 按页编号查看数据表信息 获取查询 SELECT 语句的执行次数排名 看看哪些 Ad-hoc Query 在浪费资源 查看当前处于等待状态的 Task 在等什么 查询谁在占着 Session 连接 查询程序占用的 SPID 信息 查询所有

人人都是 DBA(XIII)索引信息收集脚本汇编

什么?有个 SQL 执行了 8 秒! 哪里出了问题?臣妾不知道啊,得找 DBA 啊. DBA 人呢?离职了!!擦!!! 程序员在无处寻求帮助时,就得想办法自救,努力让自己变成 "伪 DBA". 索引 找出哪些表的 Index 需要改进 在指定数据库中查找哪些表的 Index 需要改进 根据缓存的查询计划判断 SP 是否需要优化 发现那些 Index 的写远多于读的表 查看 Index 的 Statistics 最后更新时间 查看哪些 Index 被修改的最频繁 查看 Index 碎片化

人人都是 DBA(X)资源信息收集脚本汇编

原文:人人都是 DBA(X)资源信息收集脚本汇编 什么?有个 SQL 执行了 8 秒! 哪里出了问题?臣妾不知道啊,得找 DBA 啊. DBA 人呢?离职了!!擦!!! 程序员在无处寻求帮助时,就得想办法自救,努力让自己变成 "伪 DBA". 索引 获取数据库的 CPU 使用率 过去一段时间里 CPU 利用率的历史情况 谁用 CPU 工作的时间最长 服务器上安装了多大的 Memory SQL Server 进程用了多少 Memory 是否申请新的 Memory 无法得到 SQL Ser

20145311王亦徐 《网络对抗技术》 信息收集与漏洞扫描

20145311王亦徐 <网络对抗技术> 信息收集与漏洞扫描 实验内容 利用whois.nslookup.dig进行域名注册信息.ip信息查询 使用tracert进行路由信息查询 使用在线网站查询ip地理位置 使用nmap查询存活主机.目标主机开放的端口等 利用openvas扫描目标主机的漏洞 基础问题回答 1.哪些组织负责DNS,IP的管理 ICANN负责协调管理DNS各技术要素以确保普遍可解析性,使所有的互联网用户都能够找到有效的地址 地址支持组织(ASO)负责IP地址系统的管理 域名支持

小白日记2:kali渗透测试之被动信息收集(一)

一.被动信息收集 被动信息收集指的是通过公开渠道可获得的信息,与目标系统不产生直接交互,尽量避免留下一切痕迹的信息探测.被动探测技术收集的信息可以大致分为两类, 即配置信息和状态信息. 被动探测可收集的信息 特征 被动技术 IP地址或地址段 探测是否存活 MAC地址 内部嗅探ARP,DHCP 域名信息和主机名 外部嗅探DNS,内部嗅探NetBIOS,ARP,DHCP 操作系统和版本 指纹信息 运行的应用软件   用户名和密码   设备类型(服务器.客户机) 端口和协议使用,ICMP 运行的服务