Powershell example 6

来源:互联网 发布:linux dns 缓存时间 编辑:程序博客网 时间:2024/05/18 08:40

GetSecurityRSS.ps1

Image from book
#GetSecurityRSS.ps1#Query Microsoft's Basic Security Feed for latest bulletins#Critical bulletins will be displayed in Red#Important bulletins will be display in Yellow#Everything else will be displayed in Green[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Web")$webclient = new-object System.Net.WebClient$url="http://www.microsoft.com/technet/security/bulletin/secrss.aspx"## Get the web page into a single string$data =[xml]$webclient.downloadstring($url)if ($data -ne $Null) { Write-Host -backgroundcolor Yellow -foregroundcolor blue ` $data.rss.channel.Title Write-Host "Last Updated" $data.rss.channel.LastBuildDate `n $i=0 do { write-Host -foregroundcolor White ` $data.rss.channel.item[$i].Title #color code description based on severity if ($data.rss.channel.item[$i].Description ` -Like "*Rating:Critical*") {  $color="Red"  }  elseif ($data.rss.channel.item[$i].Description `  -Like "*Rating:Important*"){  $color="Yellow"  }  else {  $color="Green"  } Write-Host -foregroundcolor $color ` $data.rss.channel.item[$i].Description `n $i++ } until ($i -gt ($data.rss.channel.item).count) }else { Write-Host -foregroundcolor Red "Could not get " $url}
Image from book

 

 

CheckWebServer.ps1

Image from book
#CheckWebServer.ps1#if any errors occur continue so that our error#handling at the end of the script will runTrap { continue }$url="http://www.SAPIENPress.com"#create the web request .NET object$Request=[System.Net.WebRequest]::Create($url)#create the response object$response=$Request.GetResponse()#display properties of the http response ojbect$response#display a color coded status messageif ($Response.StatusCode -eq "OK") { Write-Host -foregroundcolor Green $url "is OK" } Else } Write-Host -foregroundcolor Red $url "is NOT OK" {
Image from book

 

Datatable.ps1

Image from book
#create table structure$table = new-object system.data.datatable "SPInfo"$col1 = new-object system.data.datacolumn machine,([string])$col2 = new-object system.data.datacolumn ver,([string])$table.columns.add($col1)$table.columns.add($col2)#get computer names from a file$names = get-content "c:/computers.txt"#go through namesforeach ($name in $names) {  $sp = get-wmiobject Win32_OperatingSystem `        -property ServicePackMajorVersion `        -computername $name  $row = $table.newrow()  $row.machine = $name  $row.ver = $sp.servicepackmajorversion  $table.rows.add($row)}#save table$table.writexml("c:/versions.xml")$table.writexmlschema("c:/versions.xsd")
Image from book

 

Database.ps1

Image from book
#open database$conn = new-object system.data.oledb.oledbconnection$conn.connectionstring = "provider=microsoft.jet.oledb.4.0;" `  + "data source=c:/test/versions.mdb"$conn.open()#query results$query = "select id from machines"$cmd = new-object system.data.oledb.oledbcommand$cmd.commandtext = $query$cmd.connection = $conn$dr = $cmd.executereader()while ($dr.read()) {  $name = $dr.getvalue(0)  $sp = get-wmiobject Win32_OperatingSystem `        -property ServicePackMajorVersion `        -computername $name  $ver = $sp.servicepackmajorversion  #open second connection  $conn2 = new-object system.data.oledb.oledbconnection  $conn2.connectionstring = "provider=microsoft.jet.oledb.4.0;" `    + "data source=c:/test/versions.mdb"  $conn2.open()  #update table  $query2 = "update machines set ver = '$ver' where id = '$name'"  $cmd2 = new-object system.data.oledb.oledbcommand  $cmd2.commandtext = $query2  $cmd2.connection = $conn2  $cmd2.executenonquery()  #close second connection  $conn2.close()}
Image from book

 

ServicePack.vbs
Image from book
Dim strFilestrFile = "C:/computers.txt"Dim objFSO, objTS, strComputerSet objFSO = CreateObject("Scripting.FileSystemObject")If objFSO.FileExists(strFile) Then    Set objTS = objFSO.OpenTextFile(strFile)    Do Until objTS.AtEndOfStream        strComputer = objTS.ReadLine        Dim objWMI        Set objWMI = GetObject("winmgmts://" & strComputer & _         "/root/cimv2")        Dim colResults, objResult, strWMIQuery        strWMIQuery = "SELECT * FROM Win32_OperatingSystem"        Set colResults = objWMI.ExecQuery(strWMIQuery)        For Each objResult In colResults            WScript.Echo strComputer & ":" & _             objResult.ServicePackMajorVersion        Next    LoopEnd IfobjTS.CloseWScript.Echo "Complete"
Image from book 

ServicePack.ps1

Image from book
$names = get-content "c:/computers.txt"foreach ($name in $names) {  $wmi = get-wmiobject win32_operatingsystem `   -property servicepackmajorversion `   -computer $name  $sp = $wmi.servicepackmajorversion  write-host "$name : $sp"}
Image from book

 

ServicePack2.ps1
Image from book
filter getversion {  $wmi = get-wmiobject win32_operatingsystem `   -property servicepackmajorversion `   -computer $_  $sp = $wmi.servicepackmajorversion  write-host "$_ : $sp"}get-content "c:/computers.txt" | getversion
Image from book 

ServicePack3.ps1

Image from book
filter getversion {  $wmi = get-wmiobject win32_operatingsystem `   -property servicepackmajorversion `   -computer $_  write-host "$_ : " $wmi.servicepackmajorversion}get-content "c:/computers.txt" | getversion
Image from book