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

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

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

但我需要管理所有传真用户帐户,确保传真已发送。我更愿意使用非管理员用户的 Windows 传真和扫描应用程序。标准用户,但他们可以“重新发送”或“取消”错误传真。

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

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

我是不是漏掉了某个步骤?有可能吗?我是否需要寻找第三方解决方案?

简单的方法是让此 Power Fax 用户使用在 Web 应用程序/传真服务器上创建传真的管理员帐户连接到传真服务器.....但这不利于安全性。

笔记:一直在尝试使用系统日志代理来监控传真服务器 output.log 并发送电子邮件警报,但似乎有点绕。窗口事件含糊不清,无法发送任何相关信息以允许标准用户在传真队列中进行调整。

答案1

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

打开传真服务管理器。

  1. 在左窗格中,右键单击“传真”,然后单击“属性”。
  2. 在活动日志记录选项卡上,选中记录传入传真活动复选框以开始记录传入传真,并选中记录传出传真活动复选框以开始记录传出传真。

可选的是,您可能还想设置存档限制并设置日志记录长度的规则。

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

笔记:TabDelimited 文件包含 50 列,但 Powershell 在将所有 50 列导出为 html 时遇到问题。50 是最大限制,但我必须选择 49 列才能使其正常工作。

以下脚本比较粗糙,可以改进,但对我来说已经足够了。原始 powershell 脚本可以在这里找到这里

# 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 

答案2

该错误在 2008R2 中已得到更正,可以查看发送箱。

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

在客户端,为了在 Windows 7 中正确查看该框,您可能需要:

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

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

在 Windows 8 和 + 上,包含这些修复。

谢谢

相关内容