Powershell创建简洁的HTML报告例子
支持所有版本
把结果变成复杂的HTML报告,一个简单的方法是定义三个脚本块:一个用作HTML的开头文档,一个用作它的结尾,还有一个是存放动态对象的表格
接着,把这些脚本块传入到ForEach-Object,分别对应脚本的开始块、中间要处理的动态列表块和结束代码块。
下面有个简单的例子阐述如何用它创造一个服务报告:
$path = "$env:tempreport.hta" $beginning = { @' <html> <head> <title>Report</title> <STYLE type="text/css"> h1 {font-family:SegoeUI, sans-serif; font-size:20} th {font-family:SegoeUI, sans-serif; font-size:15} td {font-family:Consolas, sans-serif; font-size:12} </STYLE> </head> <image src="http://www.gimoo.net/yourlogo.gif" /> <h1>System Report</h1> <table> <tr><th>Status</th><th>Name</th></tr> '@ } $process = { $status = $_.Status $name = $_.DisplayName if ($status -eq 'Running') { '<tr>' '<td bgcolor="#00FF00">{0}</td>' -f $status '<td bgcolor="#00FF00">{0}</td>' -f $name '</tr>' } else { '<tr>' '<td bgcolor="#FF0000">{0}</td>' -f $status '<td bgcolor="#FF0000">{0}</td>' -f $name '</tr>' } } $end = { @' </table> </html> </body> '@ } Get-Service | ForEach-Object -Begin $beginning -Process $process -End $end | Out-File -FilePath $path -Encoding utf8 Invoke-Item -Path $path
Powershell在一个会话中只允许执行指定命令的方法
支持所有PS版本Powershell处理可执行程序(如EXE)类似其它语言。然而你也可以让PS阻止执行任何程序或仅允许执行授权文件。默认是允许执行任何程序:
Powershell中创建自定义对象例子
支持3.0及以后版本下面是一个简单有效的创建一个自定义对象的方法:$object=[PSCustomObject]@{Name='Weltner'ID=123Active=$true}这将产生一个含初始值的对象:PS$obj
Powershell中使用WMI工具例子
支持所有版本WMI是一个强大的技术:只需要简单的指定一个WMI类名就能返回它类的所有实例:PSGet-WmiObject-ClassWin32_BIOSSMBIOSBIOSVersion:76CN27WWManufacturer:LENOVON