Adolsign FAQs
Frequently Asked Questions
adolsign
- 🔗 What is Adolsign and how does it work?
Adolsign generates correct, on-brand Outlook signatures for every user straight from your directory — Active Directory, plain LDAP, or Microsoft Entra ID (Azure AD) — instead of relying on users to hand-edit a template or IT to update mailboxes one at a time.
- Write a template. An
.htm,.rtfor.txtfile with scan codes dropped in, e.g.field_fullname,field_title. - Define the rules. In
adolsign.config, map templates to AD groups or field values, mark defaults, attach extra files. Run it — from a login script, your software distribution tool, or by hand:
adolsign --configfile adolsign.config --default- It's already on every desktop. Outlook's signature files and default-signature registry keys are updated silently, with nothing for the user to click.
Adolsign ships as a single self-contained executable — there's nothing to install on the client, and no runtime dependency to manage across a fleet.
- Write a template. An
- 🔗 What are the system requirements?
Operating system Windows 2000, XP, 2003, Vista, 7, 8, 10 or 11 Outlook Outlook 2000 through Outlook 2021 / Microsoft 365 desktop Directory Active Directory (ADSI or LDAP) or Microsoft Entra ID Deployment Login/startup script, software distribution system, or manual run — single self-contained executable, no admin rights beyond the current user's own profile Building an offline installer package with
--makepackageadditionally requires NSIS'smakensis.exeto be reachable (next toadolsign.exeor onPATH). - 🔗 How do I get Adolsign up and running?
- Copy
adolsign.exeand youradolsign.configto a location every target machine can reach — typically a NETLOGON share or a folder pushed out by your software distribution system. - Put your signature templates (
.htm,.rtf,.txt) alongsideadolsign.config, or point at them with full paths in the config. - Call
adolsign.exefrom a login script, a Group Policy startup/logon script, or your distribution tool's per-user run step. - For remote or offline users who never hit the login script, build a one-click installer instead with
--makepackageand send that.
A minimal login-script invocation:
adolsign.exe --configfile \\server\netlogon\adolsign\adolsign.configBefore rolling out to a whole domain, proof a template safely with
--noldap(see the testing FAQ below) and check the output with--verbose. - Copy
- 🔗 How do I write a signature template?
A template is an ordinary
.htm,.rtfor.txtfile with scan codes dropped in wherever a directory value should be substituted. Provide whichever variants you need — Adolsign renders every one that exists for a given signature name.<b>field_fullname</b><br /> field_title, field_department<br /> field_telephone<br /> field_emailBuilt-in scan codes:
field_login,field_fullname,field_firstname,field_lastname,field_initials,field_othername,field_title,field_company,field_department,field_office,field_telephone,field_homephone,field_mobilephone,field_fax,field_email,field_street,field_pobox,field_city,field_state,field_postal,field_country,field_description,field_division,field_employeeid,field_homepageAny of these can be redirected to a different directory attribute in the
[field mappings]section ofadolsign.config, and a scan code with no value for a given user is simply replaced with an empty string. Note that not every field has a Microsoft Graph equivalent —field_initials,field_othername,field_division, andfield_homepageare left blank when looked up via--admethod graph. - 🔗 Can I format a field, or hide a line if it's blank?
Wrap a scan code in its own name to attach options:
field_xxx(--option value ...)field_xxx. For example:field_telephone(--prefix "Tel: " --default "on request")field_telephonerenders as
Tel: +47 22 00 00 00when the field has a value, orTel: on requestwhen it's empty.Option Effect --prefix "text"Prepended to the value (or to --default, if that's what's used).--postfix "text"Appended to the value (or to --default).--default "text"Used in place of the value when the field is empty. --ignorelineWhen the field is empty, drop the whole line rather than leaving a gap — no dangling "Mobile:" line for the one person without a mobile number. --case value[,value]uppercase,lowercase,upperfirstorlowerfirst. Repeatable or comma-separated; applied in order.--anchor schemeWraps the value as a hyperlink (e.g. mailto,http) — a real link in HTML, a Word hyperlink field in RTF, plain text in TXT.--format "spec"A printf-style format applied across the individual characters of the value — useful for spacing out or grouping digits.--lookup sectionRemaps the value through a lookup table in a named config section, falling back to the original value if there's no match — e.g. turning an office code like OSLintoOslo.A lookup table example, defined elsewhere in the same config file:
field_office(--lookup offices --prefix "Office: ")field_office [offices] OSL = Oslo BGO = Bergen TRD = Trondheim - 🔗 How do I assign different signatures to different users?
One
adolsign.configfile drives which signatures apply to whom. Each[Signature <name>]section maps to a template file<name>.htm/.rtf/.txt, and a user qualifies for it if either:- they belong to one of its
Groupentries (repeatable — any match qualifies), or - any of its
field_xxxentries is a regular expression that matches that user's looked-up value for that field (also repeatable).
[field mappings] ; override the default AD attribute a scan code maps to, if your schema differs field_title = Title [Signature default] NewDefault = 1 ReplyDefault = 1 [Signature sales] Group = Sales EMEA Vcard = 1 AddFile = logo.png [Signature executives] field_title = ^(Director|VP|Chief) NewDefault = 1 ReplyDefault = 1Other keys inside a
[Signature <name>]section:Vcard(generate and attach a vCard),NewDefault/ReplyDefault/Default(make this signature the default;Default = 1sets both), andAddFile(extra file or directory to bundle, repeatable).Run it without
--signatureand every matching rule in the config is processed for the current user in one pass:adolsign.exe --configfile adolsign.config --verbose - they belong to one of its
- 🔗 How do I set a signature as the default for new mail or replies?
Pass
--newdefaultand/or--replydefaulton the command line (or setNewDefault/ReplyDefaultin a[Signature]config section) to make that signature the default for new messages and/or replies/forwards.--defaultis shorthand for both:adolsign.exe --signature default --default --verboseTo stop users changing the default signature themselves, add
--readonly— this greys out the default-signature setting in Outlook's UI on newer Office versions.Local deployment writes the default to the registry; cloud deployment (see below) records the intended default in the manifest instead, since there are no local registry writes to make.
- 🔗 How do I attach a vCard to a signature?
Add
--vcardon the command line, orVcard = 1inside a[Signature <name>]config section:adolsign.exe --signature default --vcard --verboseThis generates a
.vcffile alongside the signature, populated from the same directory fields, and — for local deployment only — registers it as the signature's attached vCard in Outlook. - 🔗 How does Adolsign look up user details, and can I choose the method?
Choose a lookup backend with
--admethod:ads(default) — ADSI/ADODB via COM automation against on-premises Active Directory. No extra configuration needed.ldap— a plain LDAP bind, configured in the[ldap]section ofadolsign.config. See the LDAP FAQ below.graph— Microsoft Graph against Entra ID, for environments with no on-premises directory reachable. Requires--graphconfig. See the Graph FAQ below.
An explicit Active Directory base DN can be supplied with
--namingcontextif it can't be auto-discovered from the domain's rootDSE. - 🔗 How do I configure LDAP lookups?
Add an
[ldap]section toadolsign.config:[ldap] server = dc1.example.com ; binddn/bindpw optional — omit for an anonymous bind binddn = CN=svc-adolsign,OU=Service Accounts,DC=example,DC=com bindpw = ******** ; base optional — auto-discovered from rootDSE if omitted base = DC=example,DC=comThen run with
--admethod ldap:adolsign.exe --signature default --admethod ldap --verbose - 🔗 How do I configure Microsoft Graph / Entra ID lookups?
Create an Entra ID app registration with the
User.Read.Allapplication permission (admin-consented), then point--graphconfigat an ini file:[graph] tenant_id = <your tenant id> client_id = <app registration client id> client_secret = <client secret value>adolsign.exe --signature default --admethod graph --graphconfig graph.ini --verboseWith
--admethod graph, pass a full user principal name to--username(e.g.jdoe@yourtenant.onmicrosoft.com), not a bare account name — that's what Graph's/users/{id}endpoint expects. - 🔗 What is cloud deployment, and how is it different from local?
Local (default) writes signature files to Outlook's local signature folder and sets new-mail/reply registry defaults — it works across Office 2000 through Microsoft 365 desktop, deployed by login script with no user interaction.
Cloud (
--deployment cloud, or the--cloudshorthand) renders the same templates and config but writes acloud-manifest.jsonfile to--targetpath(or the current directory) instead — no local registry writes at all, which is what makes it safe on shared or virtual desktops:adolsign.exe --signature default --cloud --admethod graph --graphconfig graph.iniThe manifest holds the rendered HTML/RTF/TXT content for every processed signature and which one(s) should be the new/reply default. Pushing that manifest into Exchange Online or Outlook on the web (e.g. via Exchange Online PowerShell's
Set-MailboxMessageConfiguration, or your own Graph-based rollout tool) is a separate step on your end — Microsoft doesn't currently expose a supported API for setting a mailbox's default signature directly, so Adolsign can't automate that last hop. - 🔗 How do I deploy signatures to remote or offline users?
For machines that never run the login script — remote workers, laptops that are frequently offline — build a one-click installer with
--makepackage:adolsign.exe --signature default --makepackage --verboseThis requires NSIS's
makensis.exeto be reachable (next toadolsign.exeor onPATH), and produces<exe dir>\<username>_signature.exeby default — override the path with--packagename. Send that installer to the user (or run it via your distribution tool) and it installs the signature files into their local Outlook profile. - 🔗 How do I test a template without touching a real directory?
Add
--noldapto skip the directory lookup entirely and fill the template with placeholder values ("First", "Last", "Title",http://itefix.net) — useful for proofing a new template's layout before pointing it at real users:adolsign.exe --signature default --noldap --verbose--verboseis worth leaving on throughout testing — it prints which signature folder/profile/naming-context was resolved and which rules matched, so a wrong result is easy to trace.To write output to a scratch folder instead of Outlook's real signature folder while testing, add
--targetpath:adolsign.exe --signature default --targetpath C:\temp\sigtest --verboseTo see which template encodings are available (default is
iso-8859-1), run--encodingwith no value:adolsign.exe --encoding - 🔗 How is Adolsign licensed and priced?
Adolsign is licensed in packs of 20 users at $129 per pack — a one-time purchase, not a subscription — and includes your first year of updates and support. A free trial is available for evaluation against a real AD group in your own environment.
Volume discounts apply automatically from your 6th pack, graduated like a tax bracket — each pack is priced at the rate for its own band, not your whole order jumping to one rate:
Packs Users covered Discount on those packs 1–5 up to 100 — 6–10 120–200 8% 11–20 220–400 13% 21–30 420–600 16% 31–50 620–1,000 18% 51+ 1,020+ 20% Need more than 50 packs, or want a quote? Reach us via our contact form.
- 🔗 Where can I get help or request support?
For a free trial or a licensing quote, use our contact form. For technical support with an existing deployment — template issues, directory lookup problems, or deployment questions — open a ticket at the support portal with the command you ran and its
--verboseoutput; that's usually enough to diagnose the issue quickly.