Windows includes a rich set of built-in utilities that empower IT professionals and power users to automate tasks and streamline system management.

Among these tools, RunDLL32 stands out as a particularly versatile command-line utility. It enables you to load and execute functions directly from 32-bit dynamic-link libraries (DLLs), bypassing the need for dedicated executable files.

From creating custom shortcuts to automating administrative workflows, mastering RunDLL32 commands can significantly enhance your productivity and system control.

What is RunDLL32?

RunDLL32 - short for “Run DLL 32-bit” - is a native Windows utility that executes exported functions within dynamic-link libraries (DLLs). DLLs are modular libraries containing reusable code, data, and resources shared across multiple applications. Unlike standalone executables (.exe), DLLs cannot be launched directly; they require a host process to invoke their functions - and that’s precisely the role RunDLL32 fulfills.

First introduced with Windows 95 , RunDLL32.exe resides in the %SystemRoot%\System32 directory on all modern Windows installations. As a built-in OS component, it requires no additional software or configuration to use.

How RunDLL32 Works

When executed, RunDLL32 loads the specified DLL into memory and calls its designated entry point - a specific exported function. The command-line interface accepts the target DLL, function name, and any required arguments in a structured syntax.

The basic syntax is:

RunDLL32.exe <DLLname>,<FunctionName> [Arguments]
ParameterDescription
DLLnameThe path or name of the DLL containing the target function.
FunctionNameThe exported function to invoke within the DLL.
ArgumentsOptional parameters passed to the function.
RunDLL32 Command Syntax

Common RunDLL32 Commands

Below are practical examples of RunDLL32 commands frequently used for system administration and quick access to Windows settings.

One of the most common use cases for RunDLL32 is launching Control Panel applets directly - bypassing menu navigation entirely.

Programs and Features (Add/Remove Programs)

RunDLL32.exe shell32.dll,Control_RunDLL appwiz.cpl

User Accounts

RunDLL32.exe netplwiz.dll,UsersRunDll

Date and Time Settings

RunDLL32.exe shell32.dll,Control_RunDLL timedate.cpl

Bluetooth Settings

RunDLL32.exe shell32.dll,Control_RunDLL bthprops.cpl

RunDLL32 also provides direct access to system dialogs that are otherwise buried in nested menus.

Environment Variables

RunDLL32.exe sysdm.cpl,EditEnvironmentVariables

Creating Shortcuts with RunDLL32 Commands

RunDLL32 commands can also be used to create shortcuts for frequently used functions, and can be particularly useful for administrators or advanced users who need quick access to specific settings or tools.

Create a shortcut to open the “Add or Remove Programs” applet:

  1. Right-click on the Desktop or in a folder, select New, and then select Shortcut.
  2. In the “Type the location of the item” field, enter the RunDLL32 command: RunDLL32.exe shell32.dll,Control_RunDLL appwiz.cpl
  3. Click Next, give your shortcut a name (e.g., “Add or Remove Programs”), and click Finish.

You now have a shortcut that, when double-clicked, will open the “Add or Remove Programs” applet.

Windows includes approximately 50 Control Panel applets, each identified by its .cpl file. Using RunDLL32 commands, you can launch any of these applets directly - saving time and eliminating the need to navigate through the traditional Control Panel interface.

Exploring RunDLL32 Options

For those who wish to dive deeper into the capabilities of RunDLL32.exe, it’s essential to explore the extensive range of options available. While Windows does not provide a built-in list of all RunDLL32 commands, you can use third-party tools to discover and list these options.

Total PE

Total PE  is a great tool that simplifies the process of exploring DLL files and identifying potential RunDLL32 commands. By loading a DLL like shell32.dll, you can delve into the details of the file and examine the list of exported functions.

To start, load the desired DLL into Total PE. The tool’s intuitive interface will display a wealth of information, including the list of exported functions. These functions represent the commands that can potentially be called using Rundll32.exe.

Total PE 2 - shell32.dll exported functions

By carefully scrolling through this list, it is possible to identify the relevant functions and understand their respective roles. This method not only aids in uncovering hidden functionalities but also enhances the overall understanding of the DLL’s capabilities.

RunDLL32.exe commands can simplify various tasks, enhancing efficiency and control over the Windows environment. These commands will provide quick access to essential system functions and settings, enabling users to navigate and configure their system with ease.

Finding RunDLL32 Command-lines with Process Monitor

Process Monitor (Procmon)  is another great tool to explore RunDLL32 commands, and comes as part of the Sysinternals  suite. Process Monitor is an advanced monitoring tool for Windows that shows real-time file system, Registry and process/thread activity.

You can use Procmon to capture RunDLL32 command lines as they are executed by the system or applications.

Download and run Procmon from Microsoft Sysinternals. It immediately begins capturing all system activity, which can be overwhelming without filters.

To add filters, open the Filter dialog by pressing CTRL + L or clicking the filter icon in the toolbar. This is where you define rules to narrow down the flood of events.

Process Monitor - RunDLL32 filter

Add a Process Name filter In the filter window, set:

  • Condition: Process Name
  • Relation: is
  • Value: rundll32.exe

Click Add. This ensures Procmon only shows events generated by RunDLL32.

Add an Operation filter Still in the filter window, add another rule:

  • Condition: Operation
  • Relation: is
  • Value: Process Start

Click Add. This narrows the view to just the moments when RunDLL32 starts a new process.

Click Apply and click OK to apply the filters.

Procmon will display events, where RunDLL32.exe is invoked and the Operation is Process Start. Notice the command line arguments used in the Details column. Each entry will show the command line arguments used, revealing which DLL and function were executed.

By capturing these command lines, you gain insight into:

  • System behavior: See which DLLs Windows itself is calling through RunDLL32.
  • Troubleshooting: Identify misbehaving or redundant DLL calls that may slow down startup or cause errors.
  • Security analysis: Detect suspicious or unauthorized DLLs being launched, a common tactic in malware persistence.

To get deeper into Process Monitor, head over to Windows IT Pro  on YouTube, and find loads of great videos on Sysinternals tools, e.g.;

Sysinternals Fireside Chat - Mark Russinovich | Interview, History, Windows | Microsoft

Sysinternals | Fireside Chat - Mark Russinovich

A fantastic fireside chat with Mark Russinovich, co-founder of Sysinternals. A must-watch for anyone interested in Windows internals and troubleshooting.

Sysinternals: Process Monitor deep dive (demo) | ProcMon, registry, process, Windows | Microsoft

Sysinternals | Process Monitor deep dive | Sami Laiho

A deep dive into Process Monitor, one of the most powerful tools in the Sysinternals suite. A must-watch for anyone interested in Windows internals and troubleshooting.

Commonly used RunDLL32 commands

Here is a list of commonly used RunDLL32 commands for various tasks in Windows 11.

Below is a comprehensive reference of RunDLL32 commands organized by category.

Categories:

General

About Windows

Rundll32.exe shell32.dll,ShellAbout

Control Panel

Rundll32.exe shell32.dll,Control_RunDLL

Device Installation Settings - Automatically download manufacturers’ apps for your devices

Rundll32.exe %SystemRoot%\System32\newdev.dll,DeviceInternetSettingUi

Device Manager

Rundll32.exe devmgr.dll DeviceManager_Execute

Environment Variables

Rundll32.exe sysdm.cpl,EditEnvironmentVariables

Hibernate or Sleep

Rundll32.exe powrprof.dll,SetSuspendState

To use the command Rundll32.exe powrprof.dll,SetSuspendState for putting your computer to sleep, follow these steps:

  1. Open the Start menu and search for Command Prompt.
  2. Right-click on Command Prompt and select Run as administrator.
  3. Disable hibernation by typing the command powercfg -hibernate off and pressing Enter. This step is necessary because the SetSuspendState command may trigger hibernation instead of sleep if hibernation is enabled.
  4. Enter the command Rundll32.exe powrprof.dll,SetSuspendState 0,1,0 and press Enter. This will put your computer into sleep mode.

The parameters 0,1,0 are arguments passed to the SetSuspendState function:

  • The first parameter is for hibernation mode. 0 disables hibernation and puts the system into sleep mode.
  • The second parameter, 1, is to force the sleep state, bypassing any settings that may prevent the system from entering sleep.
  • The third parameter is generally reserved and set to 0.

Note: If your system uses Modern Standby (S0) instead of traditional sleep states (S3), this command may not work as expected. In such cases, alternative tools like PsShutdown or PowerShell scripts may be required.

Lock computer

Rundll32.exe user32.dll,LockWorkStation

Indexing Options

Rundll32.exe shell32.dll,Control_RunDLL srchadmin.dll

Power Options

Rundll32.exe shell32.dll,Control_RunDLL powercfg.cpl

Process idle tasks

Rundll32.exe advapi32.dll,ProcessIdleTasks

Note: The command rundll32 advapi32.dll,ProcessIdleTasks is used in Windows to trigger the execution of idle system maintenance tasks. These tasks are typically deferred by the operating system until the system is idle. Running this command forces their immediate execution.

System Properties

System Properties - Computer Name tab

Rundll32.exe shell32.dll,Control_RunDLL Sysdm.cpl,,1

System Properties - Hardware tab

Rundll32.exe shell32.dll,Control_RunDLL Sysdm.cpl,,2

System Properties - Advanced tab

Rundll32.exe shell32.dll,Control_RunDLL Sysdm.cpl,,3

System Properties - System Protection tab

Rundll32.exe shell32.dll,Control_RunDLL Sysdm.cpl,,4

System Properties - Remote tab

Rundll32.exe shell32.dll,Control_RunDLL Sysdm.cpl,,5
Display & Personalization

Display - Settings -> System -> Display page

Rundll32.exe shell32.dll,Control_RunDLL desk.cpl

Desktop Icon Settings

Rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,0

Screen Saver Settings

Rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,1

Personalization - Settings -> Personalization page

Rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,2

Taskbar - Settings -> Personalization -> Taskbar page

Rundll32.exe shell32.dll,Options_RunDLL 1

Start - Settings -> Personalization -> Start page

Rundll32.exe shell32.dll,Options_RunDLL 3

Notifications - Settings -> System -> Notifications page

Rundll32.exe shell32.dll,Options_RunDLL 4
Sound & Audio

Sound - Playback tab

Rundll32.exe shell32.dll,Control_RunDLL Mmsys.cpl,,0

Sound - Recording tab

Rundll32.exe shell32.dll,Control_RunDLL Mmsys.cpl,,1

Sound - Sounds tab

Rundll32.exe shell32.dll,Control_RunDLL Mmsys.cpl,,2

Sound - Communications tab

Rundll32.exe shell32.dll,Control_RunDLL Mmsys.cpl,,3

Speech Properties - Text to Speech tab

Rundll32.exe shell32.dll,Control_RunDLL %SystemRoot%\System32\Speech\SpeechUX\sapi.cpl,,1
Network & Connectivity

Add Network Location Wizard

Rundll32 %SystemRoot%\system32\shwebsvc.dll,AddNetPlaceRunDll

Bluetooth Settings - Options tab

rundll32.exe shell32.dll,Control_RunDLL bthprops.cpl,,1

Bluetooth Settings - COM Ports tab

rundll32.exe shell32.dll,Control_RunDLL bthprops.cpl,,2

Bluetooth Settings - Hardware tab

rundll32.exe shell32.dll,Control_RunDLL bthprops.cpl,,3

Map Network Drive wizard

Rundll32.exe shell32.dll,SHHelpShortcuts_RunDLL Connect

Network Connections

Rundll32.exe shell32.dll,Control_RunDLL ncpa.cpl

Offline Files - General tab

Rundll32.exe Shell32.dll,Control_RunDLL cscui.dll,,0

Offline Files - Disk Usage tab

Rundll32.exe Shell32.dll,Control_RunDLL cscui.dll,,1

Offline Files - Encryption tab

Rundll32.exe Shell32.dll,Control_RunDLL cscui.dll,,2

Offline Files - Network tab

Rundll32.exe Shell32.dll,Control_RunDLL cscui.dll,,3

Set Up a Network wizard

Rundll32.exe shell32.dll,Control_RunDLL NetSetup.cpl
Mouse & Input Devices

Keyboard Properties - Speed tab

Rundll32.exe shell32.dll,Control_RunDLL main.cpl @1

Mouse Button swap left and right button function

Rundll32.exe user32.dll,SwapMouseButton

Mouse Properties - Buttons tab

Rundll32.exe shell32.dll,Control_RunDLL main.cpl

Mouse Properties - Pointers tab

Rundll32.exe shell32.dll,Control_RunDLL main.cpl,,1

Mouse Properties - Pointer Options tab

Rundll32.exe shell32.dll,Control_RunDLL main.cpl,,2

Mouse Properties - Wheel tab

Rundll32.exe shell32.dll,Control_RunDLL main.cpl,,3

Mouse Properties - Hardware tab

Rundll32.exe shell32.dll,Control_RunDLL main.cpl,,4

Pen and Touch - Pen Options tab

Rundll32.exe shell32.dll,Control_RunDLL tabletpc.cpl

Pen and Touch - Touch tab

rundll32.exe shell32.dll,Control_RunDLL tabletpc.cpl,,1

Note: The Tablet and Pen Settings applet (tabletpc.cpl) is unavailable if compatible pen or touch hardware is not present on the system.

Game Controllers

Rundll32.exe shell32.dll,Control_RunDLL joy.cpl
Internet & Browser

Internet Properties - General tab

Rundll32.exe shell32.dll,Control_RunDLL inetcpl.cpl

Internet Properties - Security tab

Rundll32.exe shell32.dll,Control_RunDLL inetcpl.cpl,,1

Internet Properties - Privacy tab

Rundll32.exe shell32.dll,Control_RunDLL inetcpl.cpl,,2

Internet Properties - Content tab

Rundll32.exe shell32.dll,Control_RunDLL inetcpl.cpl,,3

Internet Properties - Connections tab

Rundll32.exe shell32.dll,Control_RunDLL inetcpl.cpl,,4

Internet Properties - Programs tab

Rundll32.exe shell32.dll,Control_RunDLL inetcpl.cpl,,5

Internet Properties - Advanced tab

Rundll32.exe shell32.dll,Control_RunDLL inetcpl.cpl,,6
Files & Folders

File Explorer Options - General tab

Rundll32.exe shell32.dll,Options_RunDLL 0

File Explorer Options - Search tab

Rundll32.exe shell32.dll,Options_RunDLL 2

File Explorer Options - View tab

Rundll32.exe shell32.dll,Options_RunDLL 7

Fonts folder

Rundll32.exe shell32.dll,SHHelpShortcuts_RunDLL FontsFolder
Programs & Features

Programs and Features

Rundll32.exe shell32.dll,Control_RunDLL appwiz.cpl,,0

Get Programs

Rundll32.exe shell32.dll,Control_RunDLL appwiz.cpl,,1

Windows Features

Rundll32.exe shell32.dll,Control_RunDLL appwiz.cpl,,2

Default apps - Settings -> Apps -> Default apps page

Rundll32.exe shell32.dll,Control_RunDLL appwiz.cpl,,3
Printers & Devices

Add a device

Rundll32.exe shell32.dll,SHHelpShortcuts_RunDLL AddPrinter

Add Standard TCP/IP Printer Port Wizard

Rundll32.exe tcpmonui.dll,LocalAddPortUI

Printer User Interface Help dialog

Rundll32.exe Printui.dll,PrintUIEntry /?

Printers folder

Rundll32.exe shell32.dll,SHHelpShortcuts_RunDLL PrintersFolder

Safely Remove Hardware

Rundll32.exe shell32.dll,Control_RunDLL HotPlug.dll
Security & Maintenance

Forgotten Password Wizard

Rundll32.exe keymgr.dll,PRShowSaveWizardExW

Note: The command Rundll32.exe keymgr.dll,PRShowSaveWizardExW requires a removable media, such as a USB flash drive.

Security and Maintenance

Rundll32.exe shell32.dll,Control_RunDLL wscui.cpl

Stored User Names and Passwords

Rundll32.exe keymgr.dll,KRShowKeyMgr

User Accounts

Rundll32.exe shell32.dll,Control_RunDLL nusrmgr.cpl

Windows Defender Firewall

Rundll32.exe shell32.dll,Control_RunDLL firewall.cpl
Date, Time & Region

Date and Time - Date and Time tab

Rundll32.exe shell32.dll,Control_RunDLL timedate.cpl

Date and Time - Additional Clocks tab

Rundll32.exe shell32.dll,Control_RunDLL timedate.cpl,,1

Date and Time - Internet Time tab

Note: There is no direct RunDLL32 command to open the Internet Time tab.

Region - Formats tab

Rundll32.exe shell32.dll,Control_RunDLL Intl.cpl,,0

Region - Administrative tab

Rundll32.exe shell32.dll,Control_RunDLL Intl.cpl,,1

Language & region - Settings -> Time & language -> Language & region page

Rundll32.exe Shell32.dll,Control_RunDLL input.dll,,1

Text Services and Input Languages - Language Bar tab

Rundll32.exe Shell32.dll,Control_RunDLL input.dll,,{C07337D3-DB2C-4D0B-9A93-B722A6C106E2}
Accessibility

Ease of Access Center

Rundll32.exe shell32.dll,Control_RunDLL access.cpl
Database & Advanced

ODBC Data Source Administrator (64-bit)

Rundll32.exe shell32.dll,Control_RunDLL odbccp32.cpl

Security Considerations

The flexibility that makes RunDLL32 useful also introduces security risks. Because it can execute arbitrary code from any DLL, attackers frequently abuse it to run malicious payloads while evading detection - a technique known as living off the land .

To mitigate these risks:

  • Verify command sources: Only execute RunDLL32 commands from trusted documentation or scripts you’ve reviewed.
  • Monitor for abuse: Use endpoint detection tools to flag unexpected RunDLL32 activity, especially commands referencing unusual DLL paths.
  • Keep systems protected: Ensure endpoint security software is current and configured to detect suspicious DLL executions.
  • Apply least privilege: Limit administrative access to reduce the impact of potential exploitation.

Final Thoughts

RunDLL32 is a powerful utility that bridges the gap between command-line efficiency and Windows system management. By invoking DLL functions directly, it enables IT professionals and power users to automate tasks, create custom shortcuts, and access system settings without navigating through layers of UI.

As with any powerful tool, responsible use is essential - always verify commands before execution and remain mindful of the security considerations outlined above.

Whether you’re streamlining administrative workflows or simply looking for faster access to frequently used settings, RunDLL32 commands are a valuable addition to your Windows toolkit.

–Jesper