Я новичок в powershell
, и я не знаю много чего. Сценарий им с помощью атм:гиперссылка в скрипте powershell в таблице html
$webfile = "\\mywebserver\prn$\index.html"
$mylog = ("\\mywebserver\prn$\log\monitorprinterqueues_" + (Get-Date).month + (Get-Date).day + (Get-Date).year + ".log")
if ((Test-Path $mylog) -ne $true) {#check for new log
$myheader = "datetime*owner*jobstatus*queuestatus*totalpages*size*server*queue*document"
$myheader| out-file -FilePath $mylog -append -noclobber
}#check for new log
function mystatus ($thisstatus) {
switch ($thisstatus) {
"0" { $mytext = "Ok" }
"1" { $mytext = "Other" }
"2" { $mytext = "Paused" }
"3" { $mytext = "Low Paper" }
"4" { $mytext = "No Paper" }
"5" { $mytext = "Low Toner" }
"6" { $mytext = "No Toner" }
"7" { $mytext = "Door Open" }
"8" { $mytext = "Paper Jam" }
"9" { $mytext = "Offline" }
"10" { $mytext = "Output Bin Full" }
"11" { $mytext = "Paper Problem" }
"12" { $mytext = "Cannot Print Page" }
"13" { $mytext = "User Intervention Required" }
"14" { $mytext = "Out of Memory" }
"15" { $mytext = "Server Unknown" }
default {$mytext = "Error (D)" }
}
return ($mytext)
}
clear
$myservers = @()
$myservers = ("myprintserver1","myprintserver2")
#exporttoweb
Remove-Item ($webfile)
$head = "<style>"
$head = $head + "BODY{background-color:#9FAEB5;}"
$head = $head + "TABLE{border-width: 1px;border-style: solid;border-color: black;border-collapse: collapse;}"
$head = $head + "TH{border-width: 1px;padding: 4px;border-style: solid;border-color: black;background-color:#999999}"
$head = $head + "TD{border-width: 1px;padding: 4px;border-style: solid;border-color: black;background-color:#CCCCCC}"
$head = $head + "</style>"
foreach ($thisserver in $myservers) {
$prnstats = gwmi win32_printer -ComputerName $thisserver | %{ $prname = $_.Name; $prtname = $_.portname; $srv = $_.systemname; $status = $_.detectederrorstate; $location = $_.location; gwmi win32_tcpipprinterport -computername $thisserver | where { $_.Name -eq $prtname } | select @{name="Name";expression={$prname}}, @{name="Server";expression={$srv}}, @{name="Status";expression={$status}}, @{name="Location";expression={$location}}, hostaddress }
$printserver = get-wmiobject "Win32_PrintJob" -computername $thisserver | where { ($_.jobstatus -ne $null) -and ($_.jobstatus -ne "") -and ($_.jobstatus -ne "Printing") -and ($_.jobstatus -ne "Spooling") -and ($_.jobstatus -ne "Spooling | Printing") }
if ((Test-Path -Path $webfile) -ne $true) {#writehead top
$prnstats | select Name, Server, @{name="Status";Expression={mystatus $_.Status }}, Location, @{name="Web-Interface";Expression={$_.hostaddress }} | ConvertTo-HTML -head $head -body "<H2>Printer Status Site</H2>" | Out-File $webfile
} else {
$prnstats | select Name, Server, @{name="Status";Expression={mystatus $_.Status }}, Location, @{name="Web-Interface";Expression={$_.hostaddress }} | ConvertTo-HTML | Out-File $webfile -Append
}
foreach ($printjob in $printserver) {
if (($printjob.Jobstatus -ne $null) -and ($printjob.Jobstatus -ne "")){
switch ($printjob.Jobstatus) {
default {
$prn = $prnstats | where { $_.name -eq ("" + $printjob.Name.split(',')[0]) }
$thisstr = "" + $printjob.TimeSubmitted + "*" + $printjob.Owner + "*" + $printjob.JobStatus + "*" + (mystatus $prn.DetectedErrorState) + "*" + $printjob.TotalPages + "*" + $printjob.Size + "*" + $thisserver + "*" + $printjob.Name + "*" + $printjob.Document
$thisstr | out-file -FilePath $mylog -append -noclobber
$printjob.Delete()
}#end default
}#end switch
}#end if
#$printjob = $null
}#jobs
$printserver = $null
#$printjob = $null
} #servers
В результате HTML-таблица . Необходимо, чтобы все имена хостов были гиперссылками. Чтобы получить доступ к веб-интерфейсу принтера как можно скорее. Как я могу это сделать?
Тай, это сработало, но теперь у меня другая проблема. Кажется, что powershell преобразует специальные символы. И я вижу только html-код ... В html-файле символы «<" and ">» в начале и конце анкеров преобразуются в «<» и «>» < a href = 'http: // ATS-Xerox-5675-1 .printers.rosenergo.com/'> кроме Как я могу преобразовать или заменить их обратно в html? –