PowerShell: XML elementidesse kirjutamise skript: Difference between revisions

From ICO wiki
Jump to navigationJump to search
(Created page with '<# .Synopsis Loob XML faili, kuhu on lisatud "Masin", "Ketas", "Kokku", "Vaba", "Aeg" elemendid ning küsib masinalt arvutinime, kettanime, ketta suurust, vaba ruumi kettal n…')
 
No edit summary
Line 1: Line 1:
<#
<#
   
   
.Synopsis
.Synopsis
Loob XML faili, kuhu on lisatud "Masin", "Ketas", "Kokku", "Vaba", "Aeg" elemendid ning küsib masinalt arvutinime, kettanime, ketta suurust, vaba ruumi kettal ning lisab need XML elementidesse.
Loob XML faili, kuhu on lisatud "Masin", "Ketas", "Kokku", "Vaba", "Aeg" elemendid ning küsib masinalt arvutinime, kettanime, ketta suurust, vaba ruumi kettal ning lisab need XML elementidesse.
   
   
.DESCRIPTION
.DESCRIPTION
Eelnevalt luuakse XML elementide template. Template failist tehakse eraldi koopia, et lisada XML elementidesse arvutilt küsitud andmed. Parameetreid vaja ei ole.
Eelnevalt luuakse XML elementide template. Template failist tehakse eraldi koopia, et lisada XML     elementidesse arvutilt küsitud andmed. Parameetreid vaja ei ole.
   
   
.EXAMPLE
.EXAMPLE
Line 18: Line 18:
https://wiki.itcollege.ee/index.php/PowerShell:_SQLi_baasi_kirjutamise_skript
https://wiki.itcollege.ee/index.php/PowerShell:_SQLi_baasi_kirjutamise_skript
   
   
#>
#>


# Loob eraldi xml faili templatei.
# Loob eraldi xml faili templatei.
$template = @'
$template = @'


<Info machine='pc1' version='1.0'>
<Info machine='pc1' version='1.0'>


     <Masin>
     <Masin>
Line 39: Line 39:
     </Masin>
     </Masin>


</Info>
</Info>


'@
'@
#määrab ära xml faili salvestus koha ja kodeeringu.
#määrab ära xml faili salvestus koha ja kodeeringu.
$template | Out-File $home\test.xml -encoding UTF8
$template | Out-File $home\test.xml -encoding UTF8


# laeb xml-i templatei
# laeb xml-i templatei
$xml = New-Object xml
$xml = New-Object xml
$xml.Load("$home\test.xml")
$xml.Load("$home\test.xml")


# võtab templatei koopia
# võtab templatei koopia
$newinfo = (@($xml.Info.Masin)[0]).Clone()
$newinfo = (@($xml.Info.Masin)[0]).Clone()


# kasutab win32_computersystem klassi, et välja tuua name meetod ning see xml faili kirjutada.  
# kasutab win32_computersystem klassi, et välja tuua name meetod ning see xml faili kirjutada.  
Get-WmiObject Win32_Computersystem |  
Get-WmiObject Win32_Computersystem |  
ForEach-Object {
ForEach-Object {
$newinfo = $newinfo.clone()
$newinfo = $newinfo.clone()
$newinfo.Nimi = $_.Name
$newinfo.Nimi = $_.Name
     $xml.Info.AppendChild($newinfo) > $null
     $xml.Info.AppendChild($newinfo) > $null
}
}
# kasutab win32_logicaldisk klassi, et välja tuua deviceid,size,freespace meetodid ning need xml faili kirjutada.  
# kasutab win32_logicaldisk klassi, et välja tuua deviceid,size,freespace meetodid ning need xml faili   kirjutada.  
Get-WMIObject Win32_LogicalDisk -filter DriveType=3 |  
Get-WMIObject Win32_LogicalDisk -filter DriveType=3 |  
ForEach-Object {
ForEach-Object {
$newinfo = $newinfo.clone()
$newinfo = $newinfo.clone()
     $newinfo.Ketas = $_.DeviceId
     $newinfo.Ketas = $_.DeviceId
Line 67: Line 67:
     $newinfo.Vaba = $_.FreeSpace.toString()
     $newinfo.Vaba = $_.FreeSpace.toString()
     $xml.Info.AppendChild($newinfo) > $null
     $xml.Info.AppendChild($newinfo) > $null
}
}
#kustutab ülejäänud pahna ära
#kustutab ülejäänud pahna ära
$xml.info.masin |  
$xml.info.masin |  
Where-Object { $_.Ketas -eq "" } |  
Where-Object { $_.Ketas -eq "" } |  
ForEach-Object  { [void]$xml.info.RemoveChild($_) }
ForEach-Object  { [void]$xml.info.RemoveChild($_) }


#panb kirja kuupäev
#panb kirja kuupäev
$newinfo.Aeg = "$(Get-Date -format o)"
$newinfo.Aeg = "$(Get-Date -format o)"
$xml.Info.AppendChild($newinfo)
$xml.Info.AppendChild($newinfo)


# salvestab xml faili
# salvestab xml faili
$xml.Save("$home\info.xml")
$xml.Save("$home\info.xml")

Revision as of 12:25, 20 April 2012

<#

.Synopsis Loob XML faili, kuhu on lisatud "Masin", "Ketas", "Kokku", "Vaba", "Aeg" elemendid ning küsib masinalt arvutinime, kettanime, ketta suurust, vaba ruumi kettal ning lisab need XML elementidesse.

.DESCRIPTION

Eelnevalt luuakse XML elementide template. Template failist tehakse eraldi koopia, et lisada XML     elementidesse arvutilt küsitud andmed. Parameetreid vaja ei ole.

.EXAMPLE C:\PS>.\kodune ver1.ps1

.NOTES Autor: Oliver Naaris Versioon: 1 Muutmise kuup2ev: 20.04.2012

.LINK https://wiki.itcollege.ee/index.php/PowerShell:_SQLi_baasi_kirjutamise_skript

#>
# Loob eraldi xml faili templatei.
$template = @'
<Info machine='pc1' version='1.0'>
   <Masin>
       <Nimi></Nimi>
       <Ketas></Ketas>
       <Suurus></Suurus>
       <Vaba></Vaba>
       <Aeg></Aeg>
   </Masin>
</Info>
'@
#määrab ära xml faili salvestus koha ja kodeeringu.
$template | Out-File $home\test.xml -encoding UTF8
# laeb xml-i templatei
$xml = New-Object xml
$xml.Load("$home\test.xml")
# võtab templatei koopia
$newinfo = (@($xml.Info.Masin)[0]).Clone()
# kasutab win32_computersystem klassi, et välja tuua name meetod ning see xml faili kirjutada. 
Get-WmiObject Win32_Computersystem | 
ForEach-Object {

$newinfo = $newinfo.clone() $newinfo.Nimi = $_.Name

   $xml.Info.AppendChild($newinfo) > $null
}
# kasutab win32_logicaldisk klassi, et välja tuua deviceid,size,freespace meetodid ning need xml faili   kirjutada. 
Get-WMIObject Win32_LogicalDisk -filter DriveType=3 | 
ForEach-Object {

$newinfo = $newinfo.clone()

   $newinfo.Ketas = $_.DeviceId
   $newinfo.Suurus = $_.Size.toString()
   $newinfo.Vaba = $_.FreeSpace.toString()
   $xml.Info.AppendChild($newinfo) > $null
}
#kustutab ülejäänud pahna ära
$xml.info.masin | 
Where-Object { $_.Ketas -eq "" } | 
ForEach-Object  { [void]$xml.info.RemoveChild($_) }
#panb kirja kuupäev
$newinfo.Aeg = "$(Get-Date -format o)"
$xml.Info.AppendChild($newinfo)
# salvestab xml faili
$xml.Save("$home\info.xml")