Bei manchen Faxlösungen benötigt der Benutzer eine eMailadresse mit der FAX-Nummer.
Folgendes Script könnte hierfür ein Lösungsansatz sein:
Natürlich muss der Benutzer die Faxnummer in seinem AD-Objekt hinterlegt haben.
Die Nummer muss eindeutig sein. Dies wird vom Script nicht geprüft sonder es ergibt im Zweifel einen Fehler
Eine AD-Gruppe mit der die „FAX-Aktivierung“ erfolgt.
Idealerweise wird das Script per Task-Scheduler ausgeführt…
param ( [String]$Domain = "fax.powershell.pub", [String]$Group = "FaxReceiver" ) if ( (Get-PSSnapin | where {$_.Name -ilike "Microsoft.Exchange.Management.*"} | measure).Count -eq 0 ) { Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010 } $USERs = Get-ADGroupMember $Group -Recursive | where { $_.objectClass -eq "user" } | foreach { Get-Recipient $_.SamAccountName -ErrorAction SilentlyContinue } $tmp = "*@" + $Domain $FUSERs = Get-Recipient -Filter { emailaddresses -like $tmp } foreach ($User in $USERs) { $FUSERs = $FUSERs | where { $_.SamAccountName -ne $User.SamAccountName } # Diese Array enthält am Ende die Entfernten User $tmp = ( Get-User $User.SamAccountName ).FAX if ( $tmp -eq "" -or $tmp -eq $null ) { continue } $fax = "smtp:" + $( $tmp -replace "^\+" , "00" -replace "[^\d]", "") + "@" + $Domain $tmp = $User.EmailAddresses | where { $_.SmtpAddress -like $("*@" + $Domain) } if ( $tmp.count -eq 1 ) { if ( $tmp.tostring() -like $fax ) { continue } } $mail = @() $mail += $User.EmailAddresses | where { $_.SmtpAddress -notlike $("*@" + $Domain) } | foreach { $_.tostring()} $mail += $fax #$mail Set-Mailbox $User.SamAccountName -EmailAddresses $mail } foreach ( $User in $FUSERs ) { #write-output "Remove $($User.SamAccountName)" $tmp = $User.EmailAddresses | where { $_.SmtpAddress -like $("*@" + $Domain) } $mail = @() $mail += $User.EmailAddresses | where { $_.SmtpAddress -notlike $("*@" + $Domain) } | foreach { $_.tostring()} Set-Mailbox $User.SamAccountName -EmailAddresses $mail }
FAX-Eingang per eMail