PowerShell: XML elementidesse kirjutamise skript: Difference between revisions
From ICO wiki test
Jump to navigationJump to search
No edit summary |
No edit summary |
||
| Line 2: | Line 2: | ||
.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. | |||
.DESCRIPTION | .DESCRIPTION | ||
Eelnevalt luuakse XML elementide template. Template failist tehakse eraldi koopia, et lisada XML | |||
elementidesse arvutilt küsitud andmed. Parameetreid vaja ei ole. | |||
.EXAMPLE | .EXAMPLE | ||
C:\PS>.\kodune ver1.ps1 | |||
.NOTES | .NOTES | ||
Autor: Oliver Naaris | |||
Versioon: 1 | |||
Muutmise kuup2ev: 20.04.2012 | |||
.LINK | .LINK | ||
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> | |||
<Nimi></Nimi> | |||
<Ketas></Ketas> | |||
<Suurus></Suurus> | |||
<Vaba></Vaba> | |||
<Aeg></Aeg> | |||
</Masin> | |||
</Info> | </Info> | ||
'@ | '@ | ||
#määrab ära xml faili salvestus koha ja kodeeringu. | #määrab ära xml faili salvestus koha ja kodeeringu. | ||
Revision as of 11:31, 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")