當前位置:
首頁 >
一个可以检测网络内主机类型的脚本
發布時間:2025/6/15
48
豆豆
生活随笔
收集整理的這篇文章主要介紹了
一个可以检测网络内主机类型的脚本
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
最近一直在寫一個自動檢測網絡內主機類型的腳本。基本功能可以實現判斷主機操作系統類型,如果是域內的主機可以獲取主機的硬件參數和性能參數,并判斷是否存在網絡設備。對一個運維人員來說往往需要盡快熟悉一個陌生的網絡。所以這個腳本就很方便了,如果有更好的建議歡迎指正感謝!
| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 | #############################################Author:Lixiaosong#Email:lixiaosong8706@gmail.com#For:檢測/24掩碼網絡內主機系統類型并獲取windows主機參數#Version:1.0##############################################Param([Parameter(Mandatory=$true)]$Network)$Ip=for($i= 1; $i-ile255; $i+= 1){"$Network.$i"}foreach($Ipaddressin$IP){#檢測相關端口狀態$Port3389=3389 | %{ echo ((new-objectNet.Sockets.TcpClient).Connect("$Ipaddress",$_)) "$true"} 2>$null$Port22=22 | %{ echo ((new-objectNet.Sockets.TcpClient).Connect("$Ipaddress",$_)) "$true"} 2>$null$Port23=23 | %{ echo ((new-objectNet.Sockets.TcpClient).Connect("$Ipaddress",$_)) "$true"} 2>$null$Pingtest=Test-connection-ComputerName$IPaddress-quietif($Port3389-like"$true"){#服務器信息$HostSN=(GWMI-ComputerName"$Ipaddress"win32_bios).SerialNUmber$HostFirm=(GWMI-ComputerName"$Ipaddress"win32_bios).Manufacturer$HostModel=(GWMI-ComputerName"$Ipaddress"Win32_ComputerSystem).Model#主機信息$HostName=(GWMI-ComputerName"$Ipaddress"Win32_ComputerSystem).DNSHostName$DomainName=(GWMI-ComputerName"$Ipaddress"Win32_ComputerSystem).Domain#服務器硬件資源信息$Freemem=(GWMI-ComputerName"$Ipaddress"win32_OperatingSystem).FreePhysicalMemory#空余物理內存$Totalmem=(GWMI-ComputerName"$Ipaddress"win32_OperatingSystem).TotalVisibleMemorySize#總物理內存$cpu=((get-counter-ComputerName"$IPaddress"-counter"\processor(_total)\% processor time").CounterSamples|where{$_.InstanceName -eq"_total"}).CookedValue$DiskRead=" {0:0.0} KB"-f($(((get-counter-ComputerName"$Ipaddress"-counter"\LogicalDisk(_total)\Disk Read Bytes/sec").CounterSamples|where{$_.InstanceName -eq"_total"}).CookedValue) / 1KB)$DiskWrite="{0:0.0} KB"-f($(((get-counter-ComputerName"$Ipaddress"-counter"\LogicalDisk(_total)\Disk Write Bytes/sec").CounterSamples|where{$_.InstanceName -eq"_total"}).CookedValue) /1KB)$NetworkSent=" {0:0.0} KB"-f($((Get-Counter-ComputerName"$Ipaddress"-Counter"\NetworkInterface(*)\Bytes Sent/sec").CounterSamples|%{$_.CookedValue}|sort|select-last1) / 1KB)$NetworkReceive=" {0:0.0} KB"-f($((Get-Counter-ComputerName"$IPaddress"-Counter"\Network Interface(*)\Bytes Received/sec").CounterSamples|%{$_.CookedValue}|sort|select-last1) / 1KB)$Havecpu= "{0:0.0} %"-f$cpu$Permem="{0:0.0} %"-f((($Totalmem-$Freemem)/$Totalmem)*100)$Disks= GWMI-ComputerName"$IPaddress"win32_logicaldisk|?{$_.drivetype -eq3}#獲取域內Windows主機參數Write-host"=================================================================================================================時間:$(get-date) WINDOWS服務器:$HostName.$DomainName IP:$($IPaddress.Padleft(2)) 品牌:$($HostFirm.Padleft(2)) 型號:$($HostModel.Padleft(2)) 序列號:$($HostSN.Padleft(2))CPU使用率:$($Havecpu.Padleft(8)) 內存使用率:$($Permem.Padleft(13))磁盤讀/秒:$($DiskRead.Padleft(8)) 磁盤寫/秒:$($DiskWrite.Padleft(13))網絡發送/秒:$($NetworkSent.Padleft(8)) 網絡接收/秒:$($NetworkReceive.Padleft(13))盤符 ? 盤總空間 ?空閑空間 ?使用空間 ?使用百分比"-ForegroundColorGreenforeach($Diskin$Disks){$Size= "{0:0.0} GB"-f($Disk.Size / 1GB )$FreeSpace= "{0:0.0} GB"-f($Disk.FreeSpace / 1GB)$Used= ([int64]$Disk.size - [int64]$Disk.freespace)$SpaceUsed= "{0:0.0} GB"-f($Used/ 1GB)$Percent="{0:0.0} %"-f($Used* 100 / $Disk.Size) ?$n=3Write-Host" ?"$Disk.deviceid.PadRight($n)-no-ForegroundColorGreen$n=10Write-Host$Size.Padleft($n)-no-ForegroundColorGreenWrite-Host$FreeSpace.Padleft($n)-no-ForegroundColorGreenWrite-Host$SpaceUsed.Padleft($n)-no-ForegroundColorGreenWrite-Host$Percent.Padleft($n)-ForegroundColorGreen}}#判斷linux主機if($port22-like"$true"){write-host"================================================================================================================服務器:$IPaddress 開放端口:"22" 可能是一臺是"linux"主機"-ForegroundColorYellow}#判斷網絡設備if($port23-like"$true"){Write-host"================================================================================================================服務器:$Ipaddress 開放端口:"23" 可能是一臺"網絡"設備"-ForegroundColorCyan}#主機不存在if($Pingtest-like"$False"){Write-host"================================================================================================================服務器:$Ipaddress 此主機不存在"-ForegroundColorRed}} |
使用方法舉例:
1 將腳本保存至c:\
2 運行powershell 執行PS C:\> .\test.ps1 10.7.2 #只需輸入網絡的前三位
PS C:\> .\test.ps1 10.7.2
轉載于:https://blog.51cto.com/chenshengang/1352331
總結
以上是生活随笔為你收集整理的一个可以检测网络内主机类型的脚本的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在Linux上挂载Windows共享文件
- 下一篇: PostGIS_导入shp格式的数据