PDA

Показать полную графическую версию : [решено] Не могу разобратся с Convertto-html


glazemir
28-01-2009, 10:47
С скриптами сталкиваюсь первый раз, так что прошу не судить строго:)
Изучаю по книжке, там стоит задача вывести список всех служб и в зависимости от статуса окрасить их либо в красный либо в зелёный цвет с этим я справился

Get-Service | ForEach-Object { if($_.status -Eq "Stopped") {Write-Host $_.Status $_.Name -ForegroundColor red}
Elseif ($_.status -Eq "Running") {Write-Host $_.Status $_.Name -ForegroundColor Green}}

После этого надо вывести результат в html, делаю таким образом

Get-Service | ForEach-Object { if($_.status -Eq "Stopped") {Write-Host $_.Status $_.Name -ForegroundColor red}
Elseif ($_.status -Eq "Running") {Write-Host $_.Status $_.Name -ForegroundColor Green}} | ConvertTo-Html > .\get-service.html

В результате сего действа получаю пустой файл get-service.html Собственно вопрос что я делаю не так?

Vadikan
29-01-2009, 01:14
glazemir, возможно, вам помогут эти статьи
Язык сценариев Windows PowerShell: Отличный внешний вид (http://technet.microsoft.com/ru-ru/magazine/2008.06.windowspowershell.aspx)
Эй, сценарист!: Работа с прохладцей тоже бывает вознаграждена! (http://technet.microsoft.com/ru-ru/magazine/2008.06.heyscriptingguy.aspx)

Petya V4sechkin
29-01-2009, 12:06
glazemir, командлет Write-Host выводит данные только в консоль и не передает дальше в конвейер (соответственно, ConvertTo-Html не получает ничего).

Если можно обойтись без цвета, все просто:
Get-Service | ConvertTo-Html Status, Name | Set-Content .\get-service.html
Ну а если выделение цветом жизненно необходимо, придется писать фактически аналог ConvertTo-Html (создание html-файла вручную, со всеми необходимыми тегами).

aToVille
26-06-2009, 08:26
Помогите разобраться со следующим. Делаю:

PS C:\> gWmi Win32_OperatingSystem | ConvertTo-Html __server

<html><body><table>
***
<tr><th>__server</th></tr>
<tr><td>COMP_NAME</td></tr>
</table></body></html>

Для наглядного отображения информации, пытаюсь заменить "__server" на "Computer" по примеру с раскрашиванием служб:

PS C:\> gWmi Win32_OperatingSystem | ConvertTo-Html __server | `
foreach {if ($_ -match "__server") {$_ -replace "__server", "Computer"}}

<tr><th>Computer</th></tr>
Получается все тело HTML пропадает :( Помогите разобраться??




© OSzone.net 2001-2012