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.
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:
- Inno Setup: Use runhidden flag
- VBScript: Use window style 0
- 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:
- Run installer as admin
- Use runas (VBScript)
- Use elevated deployment tools
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:
- Pre-elevate installer
- Use deployment tools with SYSTEM privileges
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
- Launch installer in silent mode
- Installer runs elevated
- pdfconfigcmd.exe executed with hidden flag
- No CMD window appears
- Printer installed silently
- 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:
- 100% silent installation
- Zero UI interruption
- Enterprise-grade deployment consistency
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.