Releases: Set-OutlookSignatures/Set-OutlookSignatures
Release v4.13.0
v4.13.0 - 2024-06-27
Attention, Exchange Online admins
See What about the roaming signatures feature in Exchange Online?
in .\docs\README
for details on how this feature works. Set-OutlookSignatures supports cloud roaming signatures - see MirrorCloudSignatures
in .\docs\README
for details.
Add features with the Benefactor Circle add-on and get fee-based support from ExplicIT Consulting
See .\docs\Benefactor Circle
or https://explicitonsulting.at
for details about these features and how you can benefit from them with a Benefactor Circle license.
Changed
- Update dependency MSAL.Net to v4.61.3.
- Update code in MSAL.PS used to detect active window handle, required for interactive login to Graph.
- Do not add DOCX templates to the list of recent files in Word, and do not route the document to the next recipient if the document has a routing slip.
Added
- Add a hint in INI files stating to not modify them directly but a copy of them, and to follow the README FAQ
What is the recommended folder structure for script, license, template and config files?
. - Add a fallback mechanism for detecting the User Principal Name of the currently logged-in user on Windows. This solves the rare case with unknown root cause where this information is not available in the registry. (#116) (Thanks @CarlInLV!)
- Add new parameter
SignatureCollectionInDrafts
. Enabled per default, this creates and updates an email message with the subject 'My signatures, powered by Set-OutlookSignatures Benefactor Circle' in the drafts folder of the current user, containing all available signatures in HTML and plain text for easy access in mail clients that do not have a signatures API. See.\docs\README
for details.
Removed
- Remove dependency to System.Web.dll for URL encode and decode operations.
Fixed
- Truncate text signature for SignatureTextOnMobile when setting Outlook Web signature if it is longer than 512 characters, and show a warning message. SignatureTextOnMobile is only used when browsing Outlook Web on a mobile device. (Thanks @bmartins-EMCDDA!)
File hashes and code signing
- SHA256 hash of 'Set-OutlookSignatures_v4.13.0.zip': 701C902C65BC8616F3213B5DF2B4E60B3AAB69B8B7F5C2304B2C5700EAF5056B
- See 'hashes.txt' in 'Set-OutlookSignatures_v4.13.0.zip' for the hash value of every single file in the release.
- Compare these hashes with the output of
Get-ChildItem -Recurse | Get-FileHash -Algorithm SHA256
.
- Compare these hashes with the output of
- Files are code signed with ExplicIT Consulting's Extended Validation (EV) certificate.
- Check the signature with
Get-ChildItem -Include '*.ps*1', '*.dll' -Recurse | Get-AuthenticodeSignature
.
- Check the signature with
Release v4.12.2
v4.12.2 - 2024-05-27
Attention, Exchange Online admins
See What about the roaming signatures feature in Exchange Online?
in .\docs\README
for details on how this feature works. Set-OutlookSignatures supports cloud roaming signatures - see MirrorCloudSignatures
in .\docs\README
for details.
Add features with the Benefactor Circle add-on and get fee-based support from ExplicIT Consulting
See .\docs\Benefactor Circle
or https://explicitonsulting.at
for details about these features and how you can benefit from them with a Benefactor Circle license.
Fixed
- Convert account pictures from Active Directory for use in signatures without byte array conversion error.
File hashes and code signing
- SHA256 hash of 'Set-OutlookSignatures_v4.12.2.zip': 7A04B141C7FBA0751BDEEAD52BA78633C6A0149ED9D7EDDA4B00D224A9DFC542
- See 'hashes.txt' in 'Set-OutlookSignatures_v4.12.2.zip' for the hash value of every single file in the release.
- Compare these hashes with the output of
Get-ChildItem -Recurse | Get-FileHash -Algorithm SHA256
.
- Compare these hashes with the output of
- Files are code signed with ExplicIT Consulting's Extended Validation (EV) certificate.
- Check the signature with
Get-ChildItem -Include '*.ps*1', '*.dll' -Recurse | Get-AuthenticodeSignature
.
- Check the signature with
v4.12.1
v4.12.1 - 2024-05-24
Attention, Exchange Online admins
See What about the roaming signatures feature in Exchange Online?
in .\docs\README
for details on how this feature works. Set-OutlookSignatures supports cloud roaming signatures - see MirrorCloudSignatures
in .\docs\README
for details.
Add features with the Benefactor Circle add-on and get fee-based support from ExplicIT Consulting
See .\docs\Benefactor Circle
or https://explicitonsulting.at
for details about these features and how you can benefit from them with a Benefactor Circle license.
Changed
- Update dependency MSAL.Net to v4.61.1.
- Use pure .Net methods to create Windows shortcut files in sample code and in Set-OutlookSignatures, as Microsoft marked VBS (Visual Basic Script) as deprecated and will remove it in future versions of Windows.
Fixed
- Name temporary file names correctly when the
MailboxSpecificSignatureNames
parameter is enabled, so that out-of-office replies can be set in this mode. - Show the 'MSAL.PS Graph token cache info' when run in Windows PowerShell (PowerShell 5.x).
- Fix simulation mode wrongly deleting all '___Mailbox *' folders in the output directory, but the last one.
- Benefactor Circle only: Search for license groups in Entra ID via on-prem SIDs may fail because of a regression in checking the SID format.
File hashes and code signing
- SHA256 hash of 'Set-OutlookSignatures_v4.12.1.zip': 8BD4ADA4536646A07A9BF2C201C0FE7793240A17409EE88978F53B279E9C2ED4
- See 'hashes.txt' in 'Set-OutlookSignatures_v4.12.1.zip' for the hash value of every single file in the release.
- Compare these hashes with the output of
Get-ChildItem -Recurse | Get-FileHash -Algorithm SHA256
.
- Compare these hashes with the output of
- Files are code signed with ExplicIT Consulting's Extended Validation (EV) certificate.
- Check the signature with
Get-ChildItem -Include '*.ps*1', '*.dll' -Recurse | Get-AuthenticodeSignature
.
- Check the signature with
Release v4.12.0
v4.12.0 - 2024-05-07
Add features with the Benefactor Circle add-on and get fee-based support from ExplicIT Consulting
See .\docs\Benefactor Circle
or https://explicitonsulting.at
for details about these features and how you can benefit from them with a Benefactor Circle license.
Attention, Exchange Online admins
See What about the roaming signatures feature in Exchange Online?
in .\docs\README
for details on how this feature works. Set-OutlookSignatures supports cloud roaming signatures - see MirrorCloudSignatures
in .\docs\README
for details.
Changed
- Graph connectivity: Update dependency MSAL.Net to v4.60.3.
- The Quick Start Guide is now easier to follow and clearer on requirements.
- Updated sample templates (full barrier-free design, and other smaller changes).
- Updated
Authentication
chapter in.\docs\README
. - The API for saving photos and user-defined images has been changed, which significantly speeds up the creation of temporary files.
Added
- Support for Linux and macOS. Some restrictions apply to Non-Windows platforms, see
Linux and macOS
in theRequirements
chapter of.\docs\README
for details. - Custom image replacement variables that you can fill yourself with a byte array:
$CurrentUserCustomImage[1..10]$
,$CurrentUserManagerCustomImage[1..10]$
,$CurrentMailboxCustomImage[1..10]$
,$CurrentMailboxManagerCustomImage[1..10]$
. Usecases: Account pictures from a share, QR code vCard/URL/text/Twitter/X/Facebook/App stores/geo location/e-mail, etc.- QR code vCard (MeCard) in custom image replacement variable
$Current[..]CustomImage1$
. See file.\config\default replacement variables.ps1
for the easily customizable code used to create it. Also see.\docs\README
for details.
- QR code vCard (MeCard) in custom image replacement variable
- Support for maximum barrier-free accessibility with screen readers and comparable tools. Use Word ScreenTips and HTML titles for hyperlinks, and alt text for images, replacement variables are supported. All sample templates have been updated accordingly. Just hover your mouse pointer over a hyperlink or image to see additional information.
- Show a warning when authentication to Outlook Web (no matter if on-prem or in the cloud) is not possible via Autodiscover, as this means that Autodiscover is not configured correctly.
- The
MirrorLocalSignaturesToCloud
parameter is now also available under the nameMirrorCloudSignatures
. The old name may be removed with the next major release (v5.0.0).
Fixed
- When using HTM templates, image paths were not correctly modified when containing one of the reserved characters defined in RFC3986 (
:/?#[]@!$&'()*+,;=
, Uri.EscapeUriString vs. Uri.EscapeDataString).
File hashes and code signing
- SHA256 hash of 'Set-OutlookSignatures_v4.12.0.zip': 506F3806162E56E247C5644D9FF8D9C679038AA87BE7E791FFA58CAA505278A5
- See 'hashes.txt' in 'Set-OutlookSignatures_v4.12.0.zip' for the hash value of every single file in the release.
- Compare these hashes with the output of
Get-ChildItem -Recurse | Get-FileHash -Algorithm SHA256
.
- Compare these hashes with the output of
- Files are code signed with ExplicIT Consulting's Extended Validation (EV) certificate.
- Check the signature with
Get-ChildItem -Include '*.ps*1', '*.dll' -Recurse | Get-AuthenticodeSignature
.
- Check the signature with
Release v4.11.0
v4.11.0 - 2024-03-26
Some features are exclusive to the commercial Benefactor Circle add-on
See .\docs\Benefactor Circle
or https://explicitonsulting.at
for details about these features and how you can benefit from them with a Benefactor Circle license.
Attention, cloud mailbox users:
See What about the roaming signatures feature in Exchange Online?
in .\docs\README
for details on how this feature works. Set-OutlookSignatures supports cloud roaming signatures - see MirrorLocalSignaturesToCloud
in .\docs\README
for details.
Changed
- Updated sample templates
- Authentication against SharePoint document libraries containing templates or INI files has been adapted to Microsoft API changes not yet documented
- ExplicIT Consulting's code signing certificate is now added to existing certificates. This increases security as you can now easily check that, for example, the DLL files of the dependency Microsoft Authentication Library (MSAL) are the original files published by Microsoft.
Added
- New parameter
MailboxSpecificSignatureNames
. By setting theMailboxSpecificSignatureNames
parameter totrue
, the e-mail address of the current mailbox is added to the name of the signature - instead of a singleSignature A
file, Set-OutlookSignatures can create a separate signature file for each mailbox:Signature A (user.a@example.com)
,Signature A (mailbox.b@example.net)
, etc. See.\docs\README
for details. - When
MirrorLocalSignaturesToCloud
is enabled,- download signatures not only from the current user's mailbox, but from all mailboxes where possible (full access with current user's credentials, due to Microsoft restrictions)
- upload personal signatures to Exchange Online mailbox of logged-on user right after they have been created and before they are even copied to a local signature path, avoiding a race condition with the internal download schedule of Outlook
- Always use the most recent TLS version available and supported for communication with Microsoft services
Fixed
- DeleteUserCreatedSignatures, DeleteScriptCreatedSignaturesWithoutTemplate and AdditionalSignaturePath now handle folder and file names with special characters ($'‘’‚‛) correctly
- Check for PowerShell Full Language mode before checking for new versions to avoid an error message without a hint to the root cause
- When an Outlook profile is available, set default signatures no matter if current mailbox is a dummy mailbox or not
- Correctly handle INI files not containing SortOrder or SortCulture information
v4.10.1
v4.10.1 - 2024-02-06
Some features are exclusive to the commercial Benefactor Circle add-on
See .\docs\Benefactor Circle
or https://explicitonsulting.at
for details about these features and how you can benefit from them with a Benefactor Circle license.
Attention, cloud mailbox users:
See What about the roaming signatures feature in Exchange Online?
in .\docs\README
for details on how this feature works. Set-OutlookSignatures supports cloud roaming signatures - see MirrorLocalSignaturesToCloud
in .\docs\README
for details.
Changed
- Graph connectivity: Update dependency MSAL.Net to v4.59.0
- Updated FAQ
How can I deploy and run Set-OutlookSignatures using Microsoft Intune?
in.\docs\README
, and moved sample code from FAQ to.\sample code
directory - Active Directory attribute names are no longer case sensitive, making it easier creating own replacement variables and adding custom schema extensions
- Only use Integrated Windows Authentication for connection to Outlook Web when no cloud token is available
- If the variable replacement in Word fails, an additional note is displayed about the possible mandatory use of Microsoft Purview Information Protection.
- Updated sample templates
Added
- New FAQs
Keep users from adding, editing and removing signatures
andWhat is the recommended folder structure for script, license, template and config files?
in.\docs\README
.
Fixed
- Workaround for a Microsoft Graph API problem, which returns a HTTP 403 error when querying the settings of some mailboxes. This query now only happens when absolutely necessary. When this query fails,
SetCurrentUserOutlookWebSignature
andSetCurrentUserOOFMessage
are disabled. Only Microsoft can fix the root cause of this problem. - More workarounds for timing problems with file operations in folders used by OneDrive
- Verbose output no longer logs Graph tokens, only their properties (header and payload data only, no digital signature)
- When an existing signature is overwritten by a new signature and the two signature names only differ in upper and lower case ("signature a" and "Signature A", for example), always use the casing of the new signature
- Correctly detect automapped mailboxes in Outlook Web when New Outlook is not used
- Add scope 'Application.ReadWrite.All' to sample script
.\sample code\Create-EntraApp.ps1
Release v4.10.0
v4.10.0 - 2024-01-05
Some features are exclusive to the commercial Benefactor Circle add-on
See .\docs\Benefactor Circle
or https://explicitonsulting.at
for details about these features and how you can benefit from them with a Benefactor Circle license.
Attention, cloud mailbox users:
See What about the roaming signatures feature in Exchange Online?
in .\docs\README
for details on how this feature works. Set-OutlookSignatures supports cloud roaming signatures - see MirrorLocalSignaturesToCloud
in .\docs\README
for details.
Changed
- Graph connectivity: Update dependency MSAL.Net to v4.58.1
Added
- Added to the description of each parameter in the script itself and the
.\docs\README
file:- Allowed values
- Usage examples (PowerShell and Non-PowerShell)
- Information when a feature requires a Benefactor Circle license
- Additional descriptions in template INI files
- A specific warning when the template INI file contains references to templates with a wrong file extension (for example, .html instead of .htm)
- New FAQs, see
.\docs\README
for details:How can I deploy and run Set-OutlookSignatures using Microsoft Intune?
Why does Set-OutlookSignatures run slower sometimes?
Fixed
- Correctly handle empty Outlook profiles and a no longer existing default profile
- Graph authentication: Workaround for MSAL.Net "connection reset error" in browser. See
$GraphHtmlMessageSuccess
and$GraphHtmlMessageError
in.\config\default graph config.ps1
for details. - Graph authentication: Workaround for MSAL.Net returning the access token in a different format in interactive and silent authentication
File hashes and code signing
- SHA256 hash of 'Set-OutlookSignatures_v4.10.0.zip': 415548F88B3D5D69A48F7D824ACF6049FC338AE86D0B823197C2EF3A42035596
- See 'hashes.txt' in 'Set-OutlookSignatures_v4.10.0.zip' for the hash value of every single file in the release.
- Compare these hashes with the output of
Get-ChildItem -Recurse | Get-FileHash -Algorithm SHA256
.
- Compare these hashes with the output of
- Files are code signed with ExplicIT Consulting's Extended Validation (EV) certificate.
- Check the signature with
Get-ChildItem -Include '*.ps*1', '*.dll' -Recurse | Get-AuthenticodeSignature
.
- Check the signature with
Release v4.9.0
v4.9.0 - 2023-12-02
Some features are exclusive to the commercial Benefactor Circle add-on
See .\docs\Benefactor Circle
or https://explicitonsulting.at
for details about these features and how you can benefit from them with a Benefactor Circle license.
Attention, cloud mailbox users:
See What about the roaming signatures feature in Exchange Online?
in .\docs\README
for details on how this feature works. Set-OutlookSignatures supports cloud roaming signatures - see MirrorLocalSignaturesToCloud
in .\docs\README
for details.
Changed
- Word is no longer required to convert signatures to TXT format, which reduces resource consumption and execution time
MoveCssInline
: Update dependency PreMailer.Net to v2.5.0- Graph connectivity: Update dependency MSAL.Net to v4.58.0
Added
- Check for valid Windows/Outlook/Outlook Web signature names when using the
MirrorLocalSignaturesToCloud
parameter or theOutlookSignatureName
INI parameter MirrorLocalSignaturesToCloud
: Only download a roaming signature from Exchange Online when its local version is older or does not exist- Sample code
SimulateAndDeploy.ps1
- Display info when a specific job ends, in addition to when there is an error
- Display info at least once a minute, and make this update interval configurable
- Separate logs for sample code output, successful jobs, jobs with errors and details of each job
- New parameter
ScriptProcessPriority
: Define the script process priority. With lower values, Set-OutlookSignatures runs longer but minimizes possible performance impact. SeeREADME
for details.
Fixed
DeleteScriptCreatedSignaturesWithoutTemplate
andDeleteUserCreatedSignatures
did not remove all subfolders belonging to a signature- When using HTM templates with images in a connected folder, the folder name was not corrected reliably, which resulted in missing images (as they pointed to a wrong path)
Release v4.8.1
v4.8.1 - 2023-11-24
Some features are exclusive to the commercial Benefactor Circle add-on
See .\docs\Benefactor Circle
or https://explicitonsulting.at
for details about these features and how you can benefit from them with a Benefactor Circle license.
Attention, cloud mailbox users:
See What about the roaming signatures feature in Exchange Online?
in .\docs\README
for details on how this feature works. Set-OutlookSignatures supports cloud roaming signatures - see MirrorLocalSignaturesToCloud
in .\docs\README
for details.
Fixed
- Embedding images and loading the Graph config file is now much faster because of switching from PowerShell cmdlets to .Net system calls for conversions to Base64 (#95)
- The manager of the current user was not correctly detected in certain hybrid scenarios (Thanks Thomas Müllerchen and Tommy Malodisdach!)
- The message informing the user before a new browser tab is opened for authentication now does not steal the focus in all combinations of PowerShell Core/Desktop and Windows Terminal/Classic Console Host
Release v4.8.0
v4.8.0 - 2023-11-20
Some features are exclusive to the commercial Benefactor Circle add-on
See .\docs\Benefactor Circle
or https://explicitonsulting.at
for details about these features and how you can benefit from them with a Benefactor Circle license.
Attention, cloud mailbox users:
See What about the roaming signatures feature in Exchange Online?
in .\docs\README
for details on how this feature works. Set-OutlookSignatures supports cloud roaming signatures - see MirrorLocalSignaturesToCloud
in .\docs\README
for details.
Changed
- Updated dependency MSAL.Net to v4.57.0.
- Allow more alternate names for cloud environments. See
.\docs\README
for details about theCloudEnvironment
parameter.
Added
- Graph token cache now not only works in Windows PowerShell 5.1, but also in PowerShell 7.
- A message box now informs the user before a new browser tab is opened for authentication, as Microsoft still does not show the Entra ID/Azure AD app name in the authentication prompt. The message text can be customized or disabled with the
$GraphHtmlMessageboxText
parameter in.\config\default graph config.ps1
. See that file for details. - The HTML message after a successful browser authentication can be customized with the
$GraphHtmlMessageSuccess
parameter in.\config\default graph config.ps1
. See that file for details, and also consider$GraphBrowserRedirectSuccess
for a redirection alternative. - The HTML message after an unsuccessful browser authentication can be customized with the
$GraphHtmlMessageError
parameter in.\config\default graph config.ps1
. See that file for details, and also consider$GraphBrowserRedirectError
for a redirection alternative. - New sample code
.\sample code\Create-EntraApp.ps1
automates the creation of the Entra app required to access Microsoft Graph. - New FAQ
How do I alternate banners and other images in signatures?
. See.\docs\README
for details.
Fixed
- MirrorLocalSignaturesToCloud now correctly detects cloud mailboxes in hybrid environments when a connection to the on-prem Active Directory is used
- Setting Word process priority no longer leads to an error in PowerShell 7
- Fix a regression introduced with the option to set the Word process priority. This fix avoids a rare problem where a manually started Word instance connects to the Word background process created by the software.