Powershell example 6

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 run
Trap { 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 message
if ($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 names
foreach ($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 strFile
strFile = "C:/computers.txt"

Dim objFSO, objTS, strComputer
Set 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

    Loop
End If

objTS.Close
WScript.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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值