博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HTML输出 一 控制列背景颜色
阅读量:5917 次
发布时间:2019-06-19

本文共 4595 字,大约阅读时间需要 15 分钟。

#将需要读取的域名和端口列表保存在名为ports01.txt、ports02的文件中,文件与脚本位于相同目录下

$CurrentPath = $MyInvocation.MyCommand.Path.substring(0,$MyInvocation.MyCommand.Path.LastIndexOf('\')+1)
$file = "ports01.txt"
$FilePath = $CurrentPath + $file

$Infors = Get-Content $FilePath

$Temp_PortStatushtm = "C:\Windows\Temp\PortStatushtm.htm"

If (Test-Path $Temp_PortStatushtm)

{Remove-Item $Temp_PortStatushtm}
$Domainname = $Infors[0].Split(",")[0]
#将域名解析为IP,因为可能会解析出多个IP,此处只取第一个IP
$IP = [System.Net.Dns]::GetHostAddresses($Domainname)[0]
Start-Sleep -Milliseconds 500
#判断IP是否格式正确
$Address = [System.Net.IPAddress]::Parse($IP)
$IPstring = $Address.IPAddressToString

#端口连通性测试函数

Function Port-Test ($Address,$Port)
{
$Timeout = 1000
$Socket = New-Object System.Net.Sockets.TCPClient
$Connect = $Socket.BeginConnect($Address,$Port,$null,$null)
Start-Sleep -Milliseconds 500
If ( $Connect.IsCompleted )
{
$Wait = $Connect.AsyncWaitHandle.WaitOne($TimeOut,$false)
If(!$Wait)
{
$Socket.Close()
Return $false
}
Else{
$Socket.EndConnect($Connect)
$Socket.Close()
Return $true
}
}
Else{Return $false}

}

$Server = $Domainname + " : " + $IPstring

#将结果临时保存到名为csv的hash表中,便于html格式的输出
$csv=@()
Foreach ($infor in $Infors)
{
$port = $Infor.Split(",")[1]
$Status= Port-Test $Address $port
$content=""|select Port,Status
$content.Port = $port
$content.Status = $status
$csv += $content
}

#输出HTML格式:

#-head:控制整体样式
#{$_ -replace "<table>","<table align=center>"}:表格居中显示
#$_ -replace "<td>","<td bgcolor=cyan>"}:改变表格列背景颜色
$csv|Select Port,Status | ConvertTo-Html `
-head '<style type="text/css"> body,table,td,th {font-family:Tahoma; color:Black; Font-Size:20pt} body {text-align:center} th {font-weight:bold}</style>' `
-Title "Port Monitor" `
-Body "<H4>$server</H4>" | `
ForEach{$_ -replace "<table>","<table align=center>"} |`
ForEach{$_ -replace "<td>","<td bgcolor=cyan>"} | `
Foreach{
If($_ -like "*false</td>*")
{$_ -replace "<td bgcolor=cyan>false","<td bgcolor=red>False"}
#Elseif($_ -like "*true</td>*")
# {$_ -replace "<td bgcolor=cyan>true","<td bgcolor=green>True"}
Else{$_}
} >>$Temp_PortStatushtm

#Invoke-Item $Temp_PortStatushtm

##############################################################################

$file = "ports02.txt"

$FilePath = $CurrentPath + $file

$Infors = Get-Content $FilePath

$Temp_PortStatushtm = "C:\Windows\Temp\PortStatushtm.htm"

$Domainname = $Infors[0].Split(",")[0]

$IP = [System.Net.Dns]::GetHostAddresses($Domainname)[0]
Start-Sleep -Milliseconds 500
$Address = [System.Net.IPAddress]::Parse($IP)
$IPstring = $Address.IPAddressToString

$t = " √ "

$f = " × "
Function Port-Test ($Address,$Port)
{
$Timeout = 1000
$Socket = New-Object System.Net.Sockets.TCPClient
$Connect = $Socket.BeginConnect($Address,$Port,$null,$null)
Start-Sleep -Milliseconds 500
If ( $Connect.IsCompleted )
{
$Wait = $Connect.AsyncWaitHandle.WaitOne($TimeOut,$false)
If(!$Wait)
{
$Socket.Close()
Return $false
}
Else{
$Socket.EndConnect($Connect)
$Socket.Close()
Return $true
}
}
Else{Return $false}

}

$Server = $Domainname + " : " + $IPstring

$csv=@()
Foreach ($infor in $Infors)
{
$port = $Infor.Split(",")[1]
$Status= Port-Test $Address $port
$content=""|select Port,Status
$content.Port = $port
$content.Status = $status
$csv += $content
}
$csv|Select Port,Status | ConvertTo-Html `
-head '<style type="text/css"> body,table,td,th {font-family:Tahoma; color:Black; Font-Size:20pt} body {text-align:center} th {font-weight:bold}</style>' `
-Title "Port Monitor" `
-Body "<H4>$server</H4>" | `
ForEach{$_ -replace "<table>","<table align=center>"} |`
ForEach{$_ -replace "<td>","<td bgcolor=cyan>"} | `
Foreach{
If($_ -like "*false</td>*")
{$_ -replace "<td bgcolor=cyan>false","<td bgcolor=red>False"}
Else{$_}
} >>$Temp_PortStatushtm

#打开html输出结果

Invoke-Item $Temp_PortStatushtm

 参考:http://www.pstips.net/creating-colorful-html-reports.html

====================================

导出html格式文件:

Get-Website|Select @{Label="Sitename";Expression={$_.Name}}, @{Label="Logdir";Expression={"W3SVC" + $_.id}} |sort Sitename |ConvertTo-Html |out-file d:\iislog\Readme.htm -Force

 

导出html格式文件,包含超链接:

Add-Type -AssemblyName System.Web

$ip = (gwmi Win32_NetworkAdapterConfiguration -Filter "IPEnabled='true'" | ? {$_.DefaultIPGateway -ne $null}).IPAddress[0]
$html = Get-Website|Select @{Label="Website";Expression={$_.Name}}, @{Label="Website Log";Expression={'<a href="http://' + $ip + ":11000/W3SVC" + $_.id + '">' + "http://" + $ip + ":11000/W3SVC" + $_.id + '</a>'}} |sort Website |ConvertTo-Html
$html = $html | % { if($_ -match 'a href' ) { [System.Web.HttpUtility]::HtmlDecode($_) } else { $_ } }
$html |out-file d:\iislog\Readme.htm -Force

 

 

转载地址:http://hzfvx.baihongyu.com/

你可能感兴趣的文章
python3+selenium框架设计09-生成测试报告
查看>>
Microsoft Azure部署MYSQL-MMM(1)安装MYSQL
查看>>
《反精益创业》第二章
查看>>
Linux磁盘管理之LVM2 逻辑卷管理工具
查看>>
component SMS_WSUS_SYNC_MANAGER on computer NLACC00W3SD001 reported: SMS WSUS
查看>>
zabbix专题:第十章 zabbix自动发现功能详解
查看>>
2012过年回家:火车站步步惊心
查看>>
Android第二十二期 - QQ5.0版本最简洁实现方法
查看>>
分布式爬虫系统设计、实现与实战:爬取京东、苏宁易购全网手机商品数据+MySQL、HBase存储...
查看>>
Android Studio 第六十期 - Android推流直播(斗鱼部分页面功能)
查看>>
如何在数据库中存储一棵树
查看>>
enq: SQ – contention、cursor: pin S wait on X等事件引发的故障处理
查看>>
通过两个案例初步了解Linux下selinux的安全机制工作机制
查看>>
使用Python的twisted和socket模块实现端口的负载分发
查看>>
JMX rmi的一些问题
查看>>
JQuery UI - tabs
查看>>
innerHTML与innerText的异同
查看>>
[转]iOS WebKit browsers and auto-zooming form controls
查看>>
Linux内核RPC请求过程
查看>>
An interview question from MicroStrategy
查看>>