Important
To filter the blog, please use theses tag:
General news.
Website related post
website.
parental-control about technology.
technology post.
Note
All blog links are archived here.
Having difficulty with the fax console for your user to see outgoing fax for everyone ?
There is some generic tip to help you out.
First, logging enabled ?
Open Fax Service Manager.
In the left pane, right-click Fax, and then click Properties.
1. On the Archives tab, please check the "Archive all faxes to this folder" item, and the sent faxes will be stored in this folder.
and
Open Fax Service Manager.
- Right-click Fax, and then click Properties.
- On the Activity Logging tab:
-- Enable Log outgoing fax activity check box to start logging outgoing faxes.
Secondly, it's a Windows Server 2008 R2 or the client is Windows 7 ?
Check to see if those patch are installed:
Consider the following scenario:You have a computer that is running Windows Server 2008 R2 or Windows 7.
You run an application or a service that calls the FaxEnumJobs function to query fax jobs that are on a FAX server.
In this scenario, the FaxEnumJobs function does not return all the fax jobs. The function returns only the fax jobs of the current user account.For example, an administrator account can view only the fax jobs of the administrator account.
Consider the following scenario:You install the Fax Server role on a computer that is running Windows Server 2008 R2.
Your account is assigned the View Outgoing Jobs permission in Fax Service Manager on the Fax server.
You open Windows Fax and Scan to check outgoing faxes.
In this scenario, you cannot view or manage outgoing faxes from other users.
On a computer that is running Windows 7 or Windows Server 2008 R2, you have an application that uses the Fax Service Extended COM API to query fax jobs on a Fax server. However, the application can only enumerate the fax jobs of the current user account that you use to run the application.
Note This issue occurs even when you run the application by using a user account that has necessary permissions to enumerate the fax jobs of all users.
Thirdly, a nice workaround if you need to have a user manage the outgoing box. A Script that create an .html's file with all the outgoing fax information (that you can share on IIS after). Using it in a planned task to run it at each hour in example can do the trick.
The script is not from me, credit to Logman for the modified version, and original version is there
# 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, byron@conexion.ca
# 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
Thinking to install a SQL instance on your Domain Controller ? Think twice, as it got bad implication if you do.
I will quote the Microsoft's article: (there )
You cannot run SQL Server services on a domain controller under a local service account.
That mean that you will have to create an Active Directory account to run the service with higher right than a local service account.
After SQL Server is installed on a computer, you cannot change the computer from a domain member to a domain controller. You must uninstall SQL Server before you change the host computer to a domain controller.
After SQL Server is installed on a computer, you cannot change the computer from a domain controller to a domain member. You must uninstall SQL Server before you change the host computer to a domain member.
Plan it right, don't plan to add an ADDS's server on your SQL's server, as you will end up to create another server in the end. Planning it right to prevent unplanned cost to your customer.
SQL Server failover cluster instances are not supported where cluster nodes are domain controllers.
SQL Server Setup cannot create security groups or provision SQL Server service accounts on a read-only domain controller. In this scenario, Setup will fail.
Now we fall into the limitation.
As you can see you are winner to plan your deployment correctly :)
ps. there it's another reference there that show that it's not something new.
Today I will talk a small tip if you want to deploy a golden image to make it possible to pre-configure the pulse secure application (formerly knew as the juniper client)
If you don't do the tip the error you will face if pulse secure is already installed is only one simultaneous machine will be able to connect the VPN. (One user will connect, and the other will be disconnected)
In the base image you need to edit the connstore.dat

After you open the file with notepad, and remove that machine GUID's line:


Save the change., after we need to erase the Device ID in the registry.
I did a script that do it that way:
net stop juniperaccessservice
REG delete "HKLM\SOFTWARE\Wow6432Node\Juniper Networks\Device Id" /v DeviceId /f
REG delete "HKLM\SOFTWARE\Juniper Networks\Device Id" /v DeviceId /f
After you can copy the .dat, and put in the same folder and name it connstore.new. It will be used if you re-change the golden image, and you need to re change fast the GUID. We can add those line to our script:
copy "C:\Program Files\Common Files\Juniper Networks\ConnectionStore\connstore.new" "C:\Program Files\Common Files\Juniper Networks\ConnectionStore\connstore.dat" /y
copy "C:\Program Files (x86)\Common Files\Juniper Networks\ConnectionStore\connstore.new" "C:\Program Files (x86)\Common Files\Juniper Networks\ConnectionStore\connstore.dat" /y
Updated: Pulse added a command line parameter for shared install, SHAREDINSTALL=1
The command line make the installer to not write the GUID and it does not start the service (so the registry key is not wrote).
I keep my tip there as if you need to restart your golden image for a reason X, then you will still need the script.
Thanks
There is a small tip if you need to add a non latin entry in the host file.
An example;
127.0.0.1 www我等主营.com
or
127.0.0.1 локалхост
The file itself does not accept any non latin encoding, thus those two example over would not work, but you can bypass the problem with punycode. (Look there for a generator)
A description from Wikipedia of what is punycode;
Punycode is a way to represent Unicode with the limited character subset of ASCII supported by the Domain Name System. For example, "München" (German name for the city of Munich) would be encoded as "Mnchen-3ya".
That tip would transform our two test domain to that;
127.0.0.1 xn--80atccmdviy
or
127.0.0.1 xn--tiq769bnnsi9h.com
Thanks
ps. Some post referencing that problem in Serverfault : 1, 2
I will talk about a small tip; how to manually create a .RDP's file.
Why would I do that you may ask me, well, if you got a new Remote Desktop Server in 2012R2 you may seen that the wizard to create and deploy the icon is no longer there.
You may deploy all the icon with the correct way with RDWeb, but what if you need a onetime connection to another server that you just want the RemoteAPP icon on the desktop ?
This tip is meant for that;
There is a small .RDP file's example edited in notepad :
redirectclipboard:i:1
redirectposdevices:i:0
redirectprinters:i:1
redirectcomports:i:1
redirectsmartcards:i:1
devicestoredirect:s:*
drivestoredirect:s:*
redirectdrives:i:1
session bpp:i:32
prompt for credentials on client:i:1
span monitors:i:1
use multimon:i:1
remoteapplicationmode:i:1
server port:i:3389
allow font smoothing:i:1
promptcredentialonce:i:1
authentication level:i:2
gatewayusagemethod:i:2
gatewayprofileusagemethod:i:0
gatewaycredentialssource:i:0
full address:s:SERVERNAME.CONTOSO.COM
alternate shell:s:||AcroRd32
remoteapplicationprogram:s:||AcroRd32
gatewayhostname:s:
remoteapplicationname:s:Adobe Reader 9
remoteapplicationcmdline:s:
As you can see the layout is pretty simple, 3 things must be edited to have that work;
1- Servername (full address:s:FQDN)
2- The application name (alias) (alternate shell:s:||AcroRd32)
3- The application name (remoteapplicationname:s:Adobe Reader 9)
To see what those name mean, there is an example from an older 2008R2 display:

Now with that information, you can now publish that small icon with GPP, or any other mean ( and at the same time we demystified that .RDP's file :) )