powershell提取html字段,Windows PowerShell:PowerShell 中的 HTML 报告
Windows PowerShell:PowerShell 中的 HTML 报告
08/17/2016
本文内容
事实上,您可以使用 Microsoft Windows PowerShell Cmdlet 来生成 HTML 报告,并与同事共享。
Don Jones
在 Windows PowerShell 的众多功能中,其内置功能可以从它的各种 Cmdlet 中生成 HTML 输出。简单地将 Cmdlet 输出传输到 ConvertTo-HTML,并将该输出传输到 Out-File,就可以将其放入文件中。例如,
Get-WmiObject –Class Win32_Service |
Select-Object –property Name,State |
Where-Object –Filter { $_.StartMode –eq 'Auto' –and $_.State –ne 'Running' } |
ConvertTo-HTML |
Out-File BadNews.html
您将得到一个服务列表,其中包含本应运行但并未运行的服务。这就是您可能要写入 Intranet 文件服务器,并让支持人员每天早晨检查的内容。此外,当您输入所有这些内容时,前四行应以管道字符 (|) 结尾。最后一行以回车符结尾。
如果您以交互方式将其输入到 Shell 中,请注意在完成第一行输入并回车后,提示符将变为“>>”。没问题。这意味着 Windows PowerShell 已经准备好让您输入下一行。在输入第四行和最后一行之后,请按两次 Enter 键来告知 Shell 您已经完成输入,并希望其执行该命令。
有关 ConvertTo-HTML Cmdlet 的一个问题是:根据其设计,它每次只能处理一种类型的输出。如果您尝试向它提供多种对象类型 - 服务、流程或事件日志项 - 它就不能正确地格式化输出。
如果您想创建某种合并报告,诀窍就是使用 Cmdlet 的不同参数。例如,假设您想要生成一份包含前面提到的“应该运行但并未运行的服务”的报告,您还希望该页列出最近 100 个安全事件日志项、服务器正在运行的所有进程以及有关服务器本身的一些基本信息。
您需要知道两件事:首先是 ConvertTo-HTML 的 -Fragment 参数(可以在其帮助文件中找到),其次是 Cmdlet 并没有将 HTML 写入文件的事实。
就像在第一个示例中,Cmdlet 将 HTML 放入管道 - 将其放入文件中是一个单独的步骤。第一个示例看起来比较繁琐,但它将给予我们执行这些操作的能力:
$one = Get-WmiObject -class Win32_Service |
Select-Object -property Name,State |
Where-Object -filter { $_.Mode -eq 'Auto' -and $_.State -ne 'Running' } |
ConvertTo-HTML -Fragment
$two = Get-EventLog -LogName Security -newest 100 |
ConvertTo-HTML -Fragment
$three = Get-Process |
ConvertTo-HTML -Fragment
$four = Get-WmiObject -class Win32_OperatingSystem |
Select-Object -property Caption,BuildNumber,ServicePackMajorVersion,
@{n='LastBootTime';e={$_.ConvertToDateTime($_.LastBootUpTime)}} |
ConvertTo-HTML -Fragment
ConvertTo-HTML -Body "$one $two $three $four" -Title "Server Status" |
Out-File c:\status.html
在输入这些内容时,每行都应该以管道符号结尾,但最后一行应该以回车符结尾。 这会运行四个截然不同的命令,每个命令将检索信息的一个特定片段,并将其转换为 HTML 片段。
HTML 片段是一个 HTML 长字符串,它不含可以构成完整页面的标头标记。在最后一个步骤中,我简单地将 HTML 并入一个完整页面的正文中,并将其输出至一个文件中。
尝试运行它,看看您的想法会是什么样子。它非常简单。有一个笑话说,Windows PowerShell 是唯一能够输出“干净”的、不添加任何样式和格式的 HTML 的 Microsoft 产品。弊端就是“干净”的 HTML 非常乏味。这正是目的。您应该使用一个单独的 CSS 文件使其变得更吸引人。
在 HTML 中,您首先要对 HTML
标记应用格式。这些标记包含表格的各个行。 标记包含表格的列标题。 标记为整个页面提供默认格式。创建一个名为 C:\Style.css 的文本文件并输入以下内容:
body {
font-family:Calibri;
font-size:10pt;
}
th {
background-color:black;
color:white;
}
td {
background-color:#666;
color:black;
}
Now, I’ll simply modify my lastConvertTo-HTML command as follows:
ConvertTo-HTML -Body "$one $two $three $four" -Title "Server Status" -CssUri c:\style.css |
Out-File c:\status.html
应输入两行文本,第一行同样要以管道符号结尾。尝试运行全部:您将发现一个格式更好的输出。遗憾的是,CSS 没有提供应用交替表格行风格的方式,至少没有适合 Windows PowerShell 生成 HTML 输出的方式。
您可以使用 ConvertTo-HTML 的 -PreContent 参数和 -PostContent 参数来添加节标题和其他任何文本。这有助于使报告变得更容易阅读。它将在表格之前显示任何传递给 -PreContent 的字符串。传递给 -PostContent 的文本将显示在表格之后。您可以通过在 Shell 中运行 Help ConvertTo-HTML
-example 来找到有关这些操作的示例。
这是一个关于如何使用 Microsoft Windows PowerShell 来生成帮助性报告,并与同事共享的极好示例。创建样式适当的 HTML 输出并不需要大量的额外工作。将这些页面保存到 Intranet 文件服务器上,您的同事、经理和那些可能需要的人就能访问这些页面。
Don Jones 是 Microsoft MVP 奖获得者,也是《Learn Windows PowerShell in a Month of Lunches》(Manning Publications Co.,2010)一书的作者,这本书可以帮助所有管理员高效地使用 Windows PowerShell。此外,Jones 还提供公开和现场 Windows PowerShell 培训。您可以通过他的网站 ConcentratedTech.com 与他联系。
相关内容
powershell提取html字段,Windows PowerShell:PowerShell 中的 HTML 报告相关推荐
- powershell提取html字段,使用PowerShell或VBS从HTML文件中提取表
Keith Hill.. 5 我用PowerShell做过这种事情.这很简单: PS> $url = "http://www.windowsitpro.com/news/PaulThu ...
- powershell提取html字段,有选择地格式化PowerShell管道中的数据并以HTML格式输出的技术...
更快的方式: 好吧,我一直向自己承诺,我不会再把时间花在已解决的问题上了,但是...我的第二个答案中的switch语句在我的系统上运行需要10秒以上 - 因为它正在做"哪里"的东西 ...
- linux远程开机windows,从Linux到Windows的PowerShell远程处理
原标题:从Linux到Windows的PowerShell远程处理 前提条件 1)后期利用期间可以通过目标NTLM身份验证 2)重启WinRM服务 3)使用此NTLM支持PowerShell Dock ...
- Windows azure国际版下通过 windows auzre powershell为VM分配绑定virtual ip address
说到windows azure,相信大家已经对此产品已经相当熟悉了,但使用的版本最多的应该是windows azure国内版本,也就是说,是微软委派世纪互联提供服务的平台,登陆地址为:https:// ...
- windows 7 PowerShell 笔记
转自:http://lovephoenix.javaeye.com/blog/661380 对 powershell 做下总结 启动 powershell #字符串操作 对象操作 "hell ...
- powershell快捷键_借助Windows Terminal搞一个花里胡哨的PowerShell终端
一提起PowerShell,命令提示符等等,想到的就是丑.难用,非常丑! 各位可以先感受一下. 不过,现在我们可以对它做一个美化,美化后的效果如下,各位也可以感受下(本人不提供背景图) 下面做简单记录 ...
- powershell 使用_使用PowerShell提取Azure成本
powershell 使用 With strong organization and design for our development teams, cloud infrastructure an ...
- Windows Terminal PowerShell 7 美化
记录一下有关Windows Terminal的折腾记录. 一.最后的成果图 二.Windows Terminal & PowerShell安装 1.Windows Store 直接搜索进行下载 ...
- shell win10 改成cmd_Win10 的 PowerShell、CMD 和 Windows Terminal 全方位美化配置方法
说明:# 原创 # 标签为 IT 之家在 IT 圈所设的投稿栏目,具体投稿规则点此查看. 其实网上的教程已经很多,但还是分享我自己亲测出来的吧 众所周知,Windows 10 自带的 PowerShe ...
最新文章
- Github在windows7环境下使用入门
- 百度陆奇最新内部演讲:人工智能时代,给工程师的5个建议
- P1463-[POI2002][HAOI2007]反素数【约数,数论】
- c语言 行程长度编码,C语言编程题,求大佬帮助,关于数组的。
- python判断是相邻数字,检查Python中相邻数字的绝对差之和是否为素数
- 物联网时代,隐私还有救吗?
- 贝叶斯思维 统计建模的Python学习法
- python与排版设计_python 排版
- 【转】概要设计文档编写规范
- python绘图练习
- 手机文件上传ftp服务器,安卓手机文件上传 ftp服务器
- AES256加解密java语言实现
- CNN Explainer
- CS231n assignment1 KNN部分用到的函数
- H5 vue单页面 活体检测
- Supervisor启动java服务(jar)
- 安装golang出现 Hey! The program ‘go‘ is currently not installed. You can install it by typing...
- 西电计算机学院崔江涛,“师德标兵”崔江涛:人才培养的研究者与实践者
- Java开发校招面试考点汇总
- 数字化转型避无可避,PCB行业如何借力采购管理平台“乘风破浪”
热门文章
- [Intellij] 软件设置和常用快捷键
- 全方面了解和学习PHP框架 PHP培训教程
- Android中Activity的四种启动方式
- 咨微关于企业信息门户的设想
- Prism4文档翻译(第四章 第一部分) 转载bluesky234
- Ubuntu自带pdf查看器不能显示中文解决问题
- NBear.Mapping使用教程(3):第一个简单例子
- TCP/IP总结(1)分层
- C++ Primer 5th笔记(chap 16 模板和泛型编程)类模板特例化
- Hyperledger Fabric 三种node节点 (1) 基本概念