Achieving Fully Silent Deployment of VeryPDF Virtual PDF Printer: Eliminating CMD Windows and Optimizing Enterprise Installations

Introduction

In modern software deployment pipelines, especially within enterprise-grade environments, user experience is no longer limited to application functionality alone. The installation process itself plays a critical role in perceived quality, reliability, and professionalism. Organizations deploying applications at scale expect zero-interruption, silent, and seamless installations, particularly when bundling third-party components such as virtual printers.

One such commonly embedded component is the VeryPDF Virtual PDF Printer, a robust tool designed to convert printable documents into PDF files programmatically. While powerful and flexible, certain deployment scenarios may introduce unintended UI artifacts, most notably, a briefly visible Command Prompt (CMD) window during installation. Though technically harmless, this visual interruption can undermine the goal of a fully background installation experience.

This article provides a comprehensive, technical deep dive into:

  • Why the CMD window appears during installation
  • How to fully suppress it using supported methods
  • Silent installation techniques across different deployment frameworks
  • Enterprise best practices for unattended deployment
  • Practical implementation examples using Inno Setup, VBScript, and elevated execution

We will also incorporate the real-world customer inquiry and the official guidance provided by VeryPDF support, expanding it into a detailed technical reference.

Achieving Fully Silent Deployment of VeryPDF Virtual PDF Printer: Eliminating CMD Windows and Optimizing Enterprise Installations


The Customer Scenario

Let’s begin with the original request:

Customer Inquiry

Dear VeryPDF Support Team,
We are currently using the VeryPDF Virtual PDF Printer within our application installer. Specifically, we are deploying the version provided at the following link:

https://veryutils.com/pdf-virtual-printer

During the installation process, a Command Prompt (CMD) window briefly appears, seemingly related to the Print Spooler service (start/stop or configuration commands). This visible interruption negatively affects our end-user experience, as we are aiming for a fully silent and seamless background installation in production environments.

We would like to request guidance on the following:

  • Silent Installation Parameters
  • CMD Suppression
  • Enterprise Best Practices

Our goal is to achieve a clean background installation with no visible windows.


Root Cause Analysis: Why the CMD Window Appears

To eliminate a problem effectively, we first need to understand it.

The CMD window observed during installation is typically triggered by an internal helper utility:

pdfconfigcmd.exe

This executable is responsible for:

  • Installing and registering the virtual printer
  • Configuring printer drivers
  • Interacting with the Windows Print Spooler service
  • Applying system-level settings that require elevated privileges

Because it performs system-level operations, it is often invoked via:

  • Command-line execution
  • Scripted automation
  • Elevated (administrator) context

By default, when a console application like pdfconfigcmd.exe is executed, Windows opens a visible command window unless explicitly instructed otherwise.


Key Insight

The CMD window is not an error, nor is it required for functionality. It is simply a default behavior of console-based execution.

Therefore, the solution is not to remove the process, but to control how it is executed.


Official VeryPDF Guidance (Expanded)

Support Response Summary

VeryPDF Support provided three key approaches:

  1. Inno Setup: Use runhidden flag
  2. VBScript: Use window style 0
  3. Enterprise best practices: Ensure hidden execution and elevated silent installs

Let’s expand each of these into production-ready strategies.


Section 1: Silent Installation Using Inno Setup

Why Inno Setup Matters

Many application vendors use Inno Setup as their installer framework due to:

  • Lightweight footprint
  • Strong scripting capabilities
  • Native support for silent installations

If your deployment is based on Inno Setup, you already have everything needed to eliminate the CMD window.


The Core Solution: runhidden

Implementation

[Run]
Filename: "pdfconfigcmd.exe"; Parameters: """{app}"" -install-printer"; Flags: runhidden


What This Does

  • Executes pdfconfigcmd.exe silently
  • Prevents any console window from appearing
  • Maintains full functionality (printer installation still completes)

Why It Works

The runhidden flag instructs the installer engine to:

  • Spawn the process in a hidden window state
  • Suppress console allocation
  • Avoid UI thread interruption

This is the cleanest and most native solution for Inno Setup users.


Additional Silent Flags (Recommended)

For a fully silent installer, combine this with:

/setup.exe /VERYSILENT /SUPPRESSMSGBOXES /NORESTART

Breakdown

Parameter

Purpose

/VERYSILENT

No UI at all

/SUPPRESSMSGBOXES

Prevent dialogs

/NORESTART

Avoid forced reboot


Advanced Tip

If your installer chains multiple processes, ensure every external executable is invoked with hidden flags, not just pdfconfigcmd.exe.


Section 2: VBScript-Based Deployment (Advanced Control)

In environments where installation logic is orchestrated via scripts, VBScript is still widely used, especially in legacy enterprise systems.


Provided Solution

'
pdfconfigcmd.exe -install-printer
'

Set UAC = CreateObject("Shell.Application")
strFolder = ExtractFilePath(WScript.ScriptFullName)
UAC.ShellExecute strFolder & "\pdfconfigcmd.exe", "-install-printer", "", "runas", 0
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Function ExtractFilePath(PathName)
    For x = Len(PathName) To 1 Step -1
       If Mid(PathName, x, 1) = "\" Then Exit For
    Next
    ExtractFilePath = Left (PathName, x - 1)
End Function


Critical Parameter: 0

This value controls window visibility:

Value

Behavior

1

Normal window

0

Hidden window


Why This Matters

  • Ensures no CMD window is shown
  • Still allows execution with administrator privileges
  • Maintains compatibility with UAC

Elevation + Hidden Execution

This line is doing two important things simultaneously:

"runas", 0

  • "runas" → triggers elevation
  • 0 → hides the window

This combination is essential for system-level configuration without UI disruption.


Supporting Function

Function ExtractFilePath(PathName)
For x = Len(PathName) To 1 Step -1
If Mid(PathName, x, 1) = "\" Then Exit For
Next
ExtractFilePath = Left (PathName, x - 1)
End Function

This ensures the script dynamically resolves its working directory, important for portability.


When to Use VBScript Approach

  • Custom installers
  • Enterprise deployment scripts
  • SCCM / Intune integration
  • Legacy automation pipelines

Section 3: Enterprise Deployment Best Practices

Achieving a truly silent installation requires more than hiding one process. It involves systematic control over the entire deployment lifecycle.


1. Avoid Direct Console Invocation

Do NOT execute tools like this:

pdfconfigcmd.exe -install-printer

Instead, always wrap execution in:

  • Installer engine (Inno Setup, MSI)
  • Script (VBScript, PowerShell)
  • Deployment tool (SCCM, Intune)

2. Enforce Hidden Execution Globally

Ensure all subprocesses are:

  • Hidden
  • Non-interactive
  • Logged silently

3. Use Elevated Context Properly

Printer installation requires:

  • Administrator privileges
  • Access to Print Spooler

Options:


4. Preconfigure Print Spooler

To avoid runtime configuration:

  • Ensure Print Spooler service is already running
  • Avoid unnecessary start/stop cycles

5. Logging Without UI

Instead of console output, redirect logs:

pdfconfigcmd.exe -install-printer > install.log 2>&1

Or use installer-native logging.


6. Test in Clean Environments

Always validate in:

  • Fresh Windows VM
  • Non-admin user context
  • Restricted environments

7. Use MSI Wrappers (Optional)

For enterprise distribution:

  • Wrap installer into MSI
  • Deploy via Group Policy or SCCM

Section 4: PowerShell Alternative (Modern Approach)

For modern deployments, PowerShell is often preferred over VBScript.


Hidden Execution Example

Start-Process -FilePath "pdfconfigcmd.exe" `
-ArgumentList "-install-printer" `
-WindowStyle Hidden `
-Verb RunAs `
-Wait


Benefits

  • Cleaner syntax
  • Better logging
  • Native Windows support
  • Easier integration with DevOps pipelines

Section 5: Common Pitfalls and How to Avoid Them

Pitfall 1: Hidden Installer, Visible Child Process

Even if your installer is silent, child processes may still show UI.

Fix: Apply hidden flags to every subprocess.


Pitfall 2: UAC Prompts Breaking Silence

If elevation is not handled correctly:

  • UAC prompt may appear

Fix:


Pitfall 3: Timing Issues

Rapid process execution may still flash a window briefly.

Fix:

  • Use proper hidden execution flags
  • Avoid shell wrappers that spawn visible windows

Pitfall 4: Antivirus Interference

Some AV tools may:

  • Delay execution
  • Trigger visible prompts

Fix:

  • Whitelist installer components
  • Sign executables

Section 6: Recommended Deployment Architecture

Ideal Silent Deployment Flow

  1. Launch installer in silent mode
  2. Installer runs elevated
  3. pdfconfigcmd.exe executed with hidden flag
  4. No CMD window appears
  5. Printer installed silently
  6. Logs written in background

Example Workflow (Inno Setup)

[Setup]
PrivilegesRequired=admin
[Run]
Filename: "{app}\pdfconfigcmd.exe"; Parameters: "-install-printer"; Flags: runhidden

Execution:

setup.exe /VERYSILENT /SUPPRESSMSGBOXES


Section 7: Security and UX Considerations

Why Silent Installation Matters

  • Prevents user confusion
  • Avoids suspicion (CMD windows can look alarming)
  • Maintains professional UX
  • Supports large-scale deployments

Compliance Considerations

In enterprise environments:

  • Installations must be predictable
  • No unexpected UI allowed
  • Logging must be auditable

Section 8: Final Answer Summary (Condensed)

Silent Installation Parameters

Yes, use:

/VERYSILENT /SUPPRESSMSGBOXES

And in Inno Setup:

Flags: runhidden


CMD Suppression

Use one of:

  • runhidden (Inno Setup)
  • Window style 0 (VBScript)
  • -WindowStyle Hidden (PowerShell)

Enterprise Best Practices

  • Always run processes hidden
  • Avoid direct console execution
  • Use elevated silent installers
  • Preconfigure environment
  • Log silently

Conclusion

The brief appearance of a CMD window during installation of the VeryPDF Virtual PDF Printer is not a limitation of the product, but rather a default execution behavior that can be fully controlled.

By applying the correct execution flags and deployment strategies, you can achieve:

Whether you're using Inno Setup, VBScript, or PowerShell, the key principle remains the same:

Control how processes are launched, not just what is launched.

If you are building production installers or deploying at scale, these techniques are not optional, they are essential.


Need a Tailored Deployment Template?

If your environment includes:

  • MSI packaging
  • SCCM / Intune deployment
  • Custom bootstrap installers

You can further refine this approach with environment-specific optimizations.

Provide your installer framework, and a fully customized silent deployment blueprint can be designed accordingly.

Related Posts