jskfan
asked on
Dump Output of a script to Html
I have the command below that retrieves information about services and dump the output into HTML format. However the format of the HTML is cumbersome. I need a clean one, with columns well spaced, etc.... the better way it looks is the preferred way.
Thank you
Get-WmiObject win32_service | select-object DisplayName, State, Startmode | sort startmode | ConvertTo-HTML | Out-File C:\Test.htm
Thank you
Get-WmiObject win32_service | select-object DisplayName, State, Startmode | sort startmode | ConvertTo-HTML | Out-File C:\Test.htm
ASKER
$a = "<style>"
$a = $a + "BODY{background-color:pea chpuff;}"
$a = $a + "TABLE{border-width: 1px;border-style: solid;border-color: black;border-collapse: collapse;}"
$a = $a + "TH{border-width: 1px;padding: 0px;border-style: solid;border-color: black;}"
$a = $a + "TD{border-width: 1px;padding: 0px;border-style: solid;border-color: black;}"
$a = $a + "</style>"
Get-WmiObject win32_service | select-object DisplayName, State, Startmode | sort startmode | ConvertTo-HTML -head $a| Out-File C:\Test.htm
Invoke-Expression C:\Test.htm
$a = $a + "BODY{background-color:pea
$a = $a + "TABLE{border-width: 1px;border-style: solid;border-color: black;border-collapse: collapse;}"
$a = $a + "TH{border-width: 1px;padding: 0px;border-style: solid;border-color: black;}"
$a = $a + "TD{border-width: 1px;padding: 0px;border-style: solid;border-color: black;}"
$a = $a + "</style>"
Get-WmiObject win32_service | select-object DisplayName, State, Startmode | sort startmode | ConvertTo-HTML -head $a| Out-File C:\Test.htm
Invoke-Expression C:\Test.htm
ASKER
the script above worked fine....the problem there are some services that are set to start automatic, but with Delayed start.....
The script will show them Stopped as status (which is True), but does not show Delayed Start
how can I make it show that?
Thanks
The script will show them Stopped as status (which is True), but does not show Delayed Start
how can I make it show that?
Thanks
"the script above" refers to http:#a39742870 (mine) or http:#39742878 (yours)? Because I would tell your approach "pretty" in any way ;-).
ASKER
I want the script to show Delayed Start
ASKER
I also need computer name to be displayed on Top
ASKER
I can write computer name on the script , but I do not know how to display in HTML
Get-WmiObject win32_service -computername Mycomputer01, etc,,,,,,
Get-WmiObject win32_service -computername Mycomputer01, etc,,,,,,
Well, getting the computer name on top isn't difficult:
Get-WmiObject win32_service |
select-object DisplayName, State, Startmode |
sort startmode |
ConvertTo-HTML -Fragment -PreContent "<h1>$env:ComputerName</h1>" |
% { $_ -Replace '<th>', '<td><strong>' -Replace '</th>', '</strong></td>' } |
Out-File C:\Test.htm
Getting "Automatic (Delayed)" can't be done with WMI or the Get-Service cmdlet, sadly. We have to read the registry.
This is one approach adding a "Delayed" column:
Get-WmiObject win32_service |
% {
Add-Member -PassThru -InputObject $_ NoteProperty Delayed $(
if ((Get-ItemProperty "HKLM:System\CurrentControlSet\Services\$($_.Name)").DelayedAutoStart -eq 1) { "x" }
)
} |
select-object DisplayName, State, Startmode, Delayed |
sort startmode, DisplayName |
ConvertTo-HTML -Fragment -PreContent "<h1>$env:ComputerName</h1>" |
% { $_ -Replace '<th>', '<td><strong>' -Replace '</th>', '</strong></td>' } |
Out-File C:\Test.htm
ASKER
That's what I found out ...what about the computer name, if you can stick it in HTML
It's there, in big letters.
ASKER
Yes please...at the top of the HTML page
Again: Look at my code. -PreContent "<h1>$env:ComputerName</h1 >" is doing that.
ASKER
Excellent, if you can put borders around columns and rows (like Excel) will be perfect.
Thanks
Thanks
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
your script worked great when I run it for the local computer, but when I run it against remote computer, I get errors
ASKER
oops I guess I see it now
ASKER
Sorry I cannot guess it...
when I run it for the local computer, but when I run it against remote computer, I get errors
when I run it for the local computer, but when I run it against remote computer, I get errors
ASKER
I am running this script, when I add Get-WmiObject win32_service -computername Remotecomputername
I get errors
$style = @"
<style>
TABLE {border-collapse: collapse}
TD {border-width: 1px;padding: 5px;border-style: dotted;border-color: black}
</style>
"@
Get-WmiObject win32_service |
% {
Add-Member -PassThru -InputObject $_ NoteProperty Delayed $(
if ((Get-ItemProperty "HKLM:System\CurrentContro lSet\Servi ces\$($_.N ame)").Del ayedAutoSt art -eq 1) { "x" }
)
} |
select-object DisplayName, State, Startmode, Delayed |
sort startmode, DisplayName |
ConvertTo-HTML -PreContent "<h1>$env:computername</h1 >$style" |
% { $_ -Replace '<th>', '<td><strong>' -Replace '</th>', '</strong></td>' } |
Out-File C:\Test.html
I get errors
$style = @"
<style>
TABLE {border-collapse: collapse}
TD {border-width: 1px;padding: 5px;border-style: dotted;border-color: black}
</style>
"@
Get-WmiObject win32_service |
% {
Add-Member -PassThru -InputObject $_ NoteProperty Delayed $(
if ((Get-ItemProperty "HKLM:System\CurrentContro
)
} |
select-object DisplayName, State, Startmode, Delayed |
sort startmode, DisplayName |
ConvertTo-HTML -PreContent "<h1>$env:computername</h1
% { $_ -Replace '<th>', '<td><strong>' -Replace '</th>', '</strong></td>' } |
Out-File C:\Test.html
Of course it does not work remote. It is set up to access the local registry, and inserts the local computername as title.
Preparing a script to run against another PC remotely is always a different beast. If you have such requirement, please state it from start next time, as we (Experts) often try to give the most simple solution.
Preparing a script to run against another PC remotely is always a different beast. If you have such requirement, please state it from start next time, as we (Experts) often try to give the most simple solution.
ASKER
Qlemo
No problem, I will post a new question about that. Thanks for your help
No problem, I will post a new question about that. Thanks for your help
ASKER
Excellent!
Open in new window
The column width is already correct, as that width is needed to display the largest text contained in the column.