Powershell example 6

简介: GetSecurityRSS.ps1 #GetSecurityRSS.ps1 #Query Microsoft's Basic Security Feed for latest bulletins #Critical bullet...

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

 

目录
打赏
0
0
0
0
20
分享
相关文章
Powershell example 1
Restart-Computers.ps1 # Define input parameters param ( [string] filename=(throw "Filename is required!") ) ...
661 0
Powershell example 2
ProcessCPU.ps1 #ProcessCPU.ps1 process=getprocesslow=0 #counter for low cpu processes $med=0 #counter for medi...
832 0
Powershell example 3
Blocktest.ps1 sb = {   foreach (process in input) {process.
714 0
Powershell example 4
BulkCopy.ps1 #BulkCopy.ps1 Set-Location "C:/Logs" files=Get-ChildItem |where {_.
760 0
Powershell example 5
SetPermswithCACLS.ps1 #SetPermsWithCACLS.ps1 # CACLS rights are usually # F = FullControl # C = Change # R = Reado...
903 0
|
6月前
|
Powershell 重新排列去重 Windows环境变量
【9月更文挑战第13天】本文介绍如何使用PowerShell对Windows环境变量进行重新排列和去重。首先通过`$env:`访问环境变量,接着使用`-split`命令分割路径,再利用`Select-Object -Unique`去除重复项。之后可根据需要对路径进行排序,最后将处理后的路径组合并更新环境变量。注意修改环境变量前应备份重要数据并了解潜在影响。
198 10
PowerShell 脚本编写 :自动化Windows 开发工作流程
PowerShell 脚本编写 :自动化Windows 开发工作流程
210 0
|
10月前
|
windows可以安装Ubuntu,ubuntu上也可以安装Powershell
powerhsell除了可以在windows上使用外,还可以在Ubuntu上部署开发环境。下面介绍Ubuntu上安装powershell的方法。
271 0
windows中cmd和PowerShell批处理命令
之前在 Git 批量删除本地分支,有用到 Linux 或 MacOS 下的批处理命令,这个命令中的 grep、xargs 本身是 Shell script,在 windows 中的 cmd 和 PowerShell 中是不能用的
150 0

相关课程

更多
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等