查看和pipe理传真服务器上的所有用户传真活动

我有一个Windows 2008 R2传真服务器,并且有几个标准的域用户发送传真,但大多数传真是通过驻留在传真服务器上的Web应用程序自动发送的,并且以pipe理权限运行。

但我需要pipe理所有传真用户帐户,确保发送传真。 而且我更喜欢使用非传真pipe理员的用户使用Windows传真和扫描应用程序。 标准用户,但他们将能够“重新发送”或“取消”坏的传真。

在传真服务器(WORKGROUP非域)上,我创build了一个安全组“传真高级用户”…添加了一个标准用户,我希望能够pipe理和查看所有传真,并给予他们完全控制。 在普通的“传真用户”安全组之上。

问题是,此传真功率用户可以通过Windows 7中的Windows扫描和传真进行连接…但是他们只能看到他们的传真,而不能看到其他人的传真。

我错过了一个步骤? 可能吗? 我必须看看第三方解决scheme吗?

最简单的方法是将此Power Fax用户通过Web应用程序/传真服务器上的pipe理员帐户连接到传真服务器,但是这样做会对安全性造成影响。

注意 :一直用系统日志代理来监视传真服务器output.log和发送电子邮件警报,但似乎是漫长的。 窗口事件是模糊的,并且不能发送任何相关的信息来允许标准用户在传真队列中进行调整。

要查看服务器上的所有用户传真活动,请执行以下操作:首先为传真服务器启用活动日志logging,

打开传真服务pipe理器。

  1. 在左窗格中右键单击传真,然后单击属性。
  2. 在活动日志logging选项卡上,选中日志传入传真活动checkbox以开始logging传入传真和日志传出传真活动checkbox以开始logging外发传真。

可选,您可能还需要设置归档限制,并为日志logging的长度设置规则。

其次,使用以下脚本:然后,我修改了一个powershell脚本,我发现:脚本导入制表符分隔的传真文本文件并创build一个csv文件。 并按“提交date”和“状态”/“传输错误”对内容进行分类。 然后将csv文件导出为html文件,然后将其复制到IIS Web服务器供用户查看。 我每小时运行一次计划任务。

注意: TabDelimited文件包含50列,但Powershell导出所有50列到html的问题。 50是最大的限制,但我不得不select49列才能正常工作。

下面的脚本是粗糙的,可以改进,但为我的目的正常工作。 原始的powershell脚本可以在这里find。

# This script takes the outboxlog.txt file from the Windows Server fax service # and parses it to find faxes that did not complete. Results are dumped as a # Web page. Normally a user can view only the status of their own faxes. # This allows you to view failed faxes for any user. # This script can be run as a scheduled task to provide a constantly updated list # Required command line in scheduled task is: # powershell.exe "& 'C:\ProgramData\Microsoft\Windows NT\MSFax\ActivityLog\ParseOutbox.ps1'" # Created by Byron Wright, [email protected] # Define the file locations used. $Source="C:\ProgramData\Microsoft\Windows NT\MSFax\ActivityLog\outboxLog.txt" $TempSource="C:\ProgramData\Microsoft\Windows NT\MSFax\ActivityLog\outboxlogtemp.txt" $CsvDestination="C:\ProgramData\Microsoft\Windows NT\MSFax\ActivityLog\outboxlog.csv" $HTMLDestination="C:\inetpub\wwwroot\FailedFaxes.htm" # Import-TabDelimited function taken from The PowerShell Guy # Source located at http://thepowershellguy.com/blogs/posh/archive/2007/03/31/powershell-examples-used-on-ars-technica.aspx function Import-TabDelimited ($Path) { gc $path |% {$header = $true} { if ($header){ $h = $_.split("`t") $header = $false } Else { $r = new-object object $_.split("`t") |% {$i=0}{ $r | add-Member -memberType noteProperty -name $h[$i] -value $_ $i++ } $r } } } #Processing the text file may lock it and cause problems on a busy fax server #So, copy it quick. Copy-Item -Path $Source -Destination $TempSource #Convert to Outboxlog.txt to a csv file Import-TabDelimited -Path $TempSource | Export-csv -Path $CsvDestination -NoTypeInformation #Get a list of faxes that failed by looking at the Status column #Note that the column name includes double quote. Single quotes used to allow that. $BadFaxes=import-csv -Path $CsvDestination | where {$_.'"Status"' -eq '"Transmission Error"'} | Sort-Object {[datetime] $_.'"SubmissionTime"'} -descending #Dump bad faxes to an HTML file. The Select-Object cmdlet is selecting the columns to include. #Again note that double quotes are part of the column name. # "JobID" "ParentJobID" "SubmissionTime" "Scheduled" "Status" "ErrorDesc" "ErrorCode" "StartTime" "EndTime" # "Device" "DialedNumber" "CSID" "TSID" "Pages" "TotalPages" "QueueFileName" "Document" "FileSize" "Retries" # "ServerCoverPage" "CoverPageSubject" "CoverPageNote" "UserName" "SenderName" "SenderFaxNumber" # "SenderCompany" "SenderStreet" "SenderCity" "SenderZipCode" "SenderCountry/Region" "SenderTitle" # "SenderDepartment" "SenderOffice" "SenderHomePhone" "SenderOfficePhone" "SenderEMail" "RecipientName" # "RecipientFaxNumber" "RecipientCompany" "RecipientStreet" "RecipientCity" "RecipientZipCode" "RecipientCountry/Region" # "RecipientTitle" "RecipientDepartment" "RecipientOffice" "RecipientHomePhone" "RecipientOfficePhone" # "RecipientEMail" "BillingCode" $Header = @" <style> TABLE {border-width: 1px;border-style: solid;border-color: black;border-collapse: collapse;} TH {border-width: 1px;padding: 3px;border-style: solid;border-color: black;background-color: #6495ED;} TD {border-width: 1px;padding: 3px;border-style: solid;border-color: black;} </style> "@ $Pre = "<H1>Failed Faxes: $(Get-Date -format 'g')</H1>" $Post = "<H3>$(Get-Date -format 'g')</H3>" $BadFaxes | Select-Object '"SubmissionTime"','"RecipientName"','"RecipientFaxNumber"','"CoverPageSubject"','"Retries"','"ErrorDesc"' | ConvertTo-HTML -Body $Header -PreContent $Pre -PostContent $Post | Out-File -FilePath $HTMLDestination 

该错误在2008R2得到纠正,看到发送框。

您无法在Windows Server 2008 R2中查看或pipe理外发传真

在客户端,在Windows 7中正确地看到该框可能需要:

使用传真服务扩展COM API的应用程序只列举Windows 7或Windows Server 2008 R2中当前用户帐户的传真作业

“FaxEnumJobs”function不枚举Windows Server 2008 R2或Windows 7中的所有传真作业

在Windows 8和+,包括这些修复程序。

谢谢