Author Posts

January 1, 2012 at 12:00 am

by rcjay272 at 2013-03-21 07:30:27

All,

I am working on a script to ping a list of devices and then get the file version. I have that part down, but I am having problems with the logging. When running the script I would like to have it output the results to both the console window and to separate log files. For the logfiles, I would like to have a "pingable" logfile with the file versions and a separate logfile for the "not reachables".

The script I have going below doesn't seem to write each device to the logfile, only the last entry it processed. It does create both a goodversion.txt and a NotReachables.txt file.
My questions are:

Can I use write-host and out-file to output to the console and logfile at the same time?

Thanks for looking.

$servers = Get-Content -Path C:\Load_Stuff\MonitoringScripts\EndPoints.txt
ForEach ($server in $servers) {
if (Test-Connection $server -quiet) {
gwmi -computername $server -query "select * from cim_datafile where name = 'c:\\Windows\\system32\\notepad.exe' " |
Sort name,CSName |
Select Version,CSName|
Out-File C:\Load_Stuff\MonitoringScripts\PowerShell\GoodVersions.txt
}
else {
write-warning "Failed to ping $server"|
Out-File C:\Load_Stuff\MonitoringScripts\PowerShell\NotReachables.txt
}
}

by mjolinor at 2013-03-21 07:38:06

Would Start-Transcript be appropriate?

by ArtB0514 at 2013-03-21 11:03:33

Also look at Tee-Object

by rcjay272 at 2013-03-22 09:41:39

[quote="ArtB0514"]Also look at Tee-Object[/quote]

Thank you.......Tee-Object rocks.....Testing it seems straight forward. Will add it to the script and let you know.

Thank you,
ROb

by rcjay272 at 2013-03-22 12:35:34

Guys,

I am trying to get this to write to 2 different log files. Goodversions and badversion. It is not outputting anything in the badversion txt file.

Do I have a format wrong here?

$servers = Get-Content -Path C:\Load_Stuff\MonitoringScripts\130.txt
ForEach ($server in $servers) {
if (Test-Connection $server -quiet) {
gwmi -computername $server -query "select * from cim_datafile where name = 'c:\\Program Files\\eof\\SoftClient\\TiSoftClient.exe' " |
Sort name,CSName |
Select Version,CSName|
#Out-Host
Out-File C:\Load_Stuff\MonitoringScripts\PowerShell\GoodVersions.txt -Append | Format-Table
}
else {
write-warning "Failed to ping $server"|
Out-File C:\Load_Stuff\MonitoringScripts\PowerShell\BadVersions.txt -Append
}
}

by ArtB0514 at 2013-03-22 13:05:18

Look at the OUTPUTS section of Get-Help Write-Warning -Full (or -Online). Then try this:

else {
write-warning "Failed to ping $server"
"Failed to ping $Server" | Out-File C:\Load_Stuff\MonitoringScripts\PowerShell\BadVersions.txt -Append
}