- Author – Just a field to specify who created the custom app. Most default apps you will see are created by “FoolishTech”.
- Last Edit (UTC) – Last time the custom app was saved. This field is populated automatically.
- File Name (Required) – The name of the custom app will also be it’s filename.
- Path Name (Required) – The name of the path the custom app will be stored in. This could be the same as the File Name, or it could be the app’s company name when there are multiple apps by the same company you may want to group together.
- App Website – Exactly what it says, this option becomes available when right-clicking the custom app in the main d7x user interface.
- Download Page – The Download Page URL will open automatically if there is a problem downloading the file.
- Run on Windows platforms – A custom app by default is configured to run on all platforms. Expand this category to modify that behavior to restrict the app from running on certain platforms (e.g. an older version of Windows, a 32bit version, and/or a Server OS.)
Main Download Settings (Optional)
- Google Drive Filename – When filled out, Google Drive will be used to download the filename in this field from the specific path on Google Drive as configured in Config > Apps/Functions > Google Drive Integration.
- When this field is filled out, download from Google Drive will take precedence over any other download settings (http or ftp) that you have configured below, and those methods will only be used should this one fail.
- You must pre-authorize a Google account (by clicking “Sign in with Google” on the same Config tab) of course before this feature can be used.
- Also, YOU MUST UPLOAD THE FILE THROUGH d7x, at least initially, otherwise d7x will not have the appropriate permissions to download the file. See Google Drive Integration for more info!
- Use FTP Server – True/False; when set to True, the “Download URL” field is expected to be populated with an FTP path, e.g. “/files/myapp.zip” (no quotes) and of course you must have an FTP server configured for app storage (in Config > Servers/Email > FTP Servers.)
- Non-Direct URL – True/False; leave False in almost all cases, if you are having trouble with a download link you can try setting it to True. What it does is if you have a download link that is downloading a webpage rather than the expected file, there is likely a redirected URL for the download embedded in the page somewhere, and when set to True d7x will open the download as if it were a text file/web page, and scan the page in an attempt to find the redirected URL pointing to the actual download. A few default custom apps use this functionality.
- Referring URL – This is the “referer” passed by the browser to the download page to show where the browser came from. Some websites will restrict a file download to having been initiated by a referring webpage, the “download page” of course, so that if you were to initiate the download from another website (or an app such as d7x) it would fail. The solution is to always place the final webpage URL before your download starts (if you were to download the file in a browser) in the Referring URL field, so that the website serving the download thinks you initiated it from the download page and not d7x.
- Mimic Web Browser – Does exactly that; some download servers will attempt to detect if a live person is downloading vs. an automation/bot of some sort, in order to refuse to serve the download in those cases. This feature alters the headers sent to the download server so d7x can pretend to be a modern web browser.
- Download URL – Obviously this is the final download URL that served your downloaded file; pasting this same URL into a browser should initiate a file download.
- Auth Username – Some sites may require HTTP login to their web server before you can download (Nirsoft has a download page with this requirement, for example.) When filled out, d7x will attempt basic login to the server using these credentials when retrieving the download.
- Auth Password – The password to go with the username as specified above.
- Alt Download URL – Some sites have alternate download locations incase the primary fails. You could even keep a backup of the file on your own website if you were so inclined.
- Save As Filename – (Required if using Download URL field) The filename of the downloaded file, this field is required because d7x isn’t web browser smart when it comes to file downloading, so you have to tell it what filename to save as.
- Extract Password – If the downloaded file is a zip, rar, or 7z, d7x will attempt to extract it automatically. An extract password is a good idea if you are self-hosting a file on your website/HTTP where the world can download it, well if that is software you paid for and it is licensed to you, then you probably want to protect it, so password protect it. d7x supports plain Zip password protection (hah) to 256 AES encrypted archives (preferred.)
Separate 64bit Download Settings (Optional)
- 64bit Download URL – Use this field when you have a single app that has different downloads for the 32bit and 64bit versions of the app. Obviously on a 64bit platform if this field is filled out then d7x will download this file instead of the one under the standard “Download URL” field above, which will default to 32bit only downloads when this 64bit field is filled out.
- Alt 64bit Download URL – Same concept as the “Alt Download URL” field above, just a backup download location.
- Save As Filename (64bit) – Same concept as “Save As Filename” above, this is required when you are using the “64bit Download URL” field.
Pre-Execution Behavior (Optional)
- Setup File – The filename of an executable that will be run before the main app’s filename configured below. Useful of course to run an installer before running the actual exe that it installs.
- Setup File (64bit) – Same as above, this field can be filled out to specify a different filename for a 64bit version to run on 64bit platforms only.
- Setup Arguments – Command line arguments you pass to the “Setup File” and “Setup File (64bit)” as configured above, to make the install automatic/silent.
- Import Configs – Imports config files prior to running the app’s main executable. Files should be in the app’s directory, separate multiple files in this field using a “;” semi-colon. Registry (.reg) files will be imported to the registry, whereas all other file types are copied to the app’s main executable’s directory, where any files that are batch/vbs will be executed prior to running the main executable. This is used in some custom apps for example to copy over an configuration .ini file with your customized preferences, import saved settings to the registry, or run a batch file to update the app before running it.
- Save Configs After… – Used as a way to perpetuate settings, this will copy any “Import Configs” files from the app directory back to your d7x configuration for future usage. This is useful for example in the CCleaner and PatchMyPC custom apps to run the app manually, modify settings in the app, close it to save the settings and then d7x will copy the app’s .INI file with saved preferences back to the d7x config, for the future usage of copying those same settings for use in future runs of those apps.
Main App Execution Behavior
- App Path/Filename (32/64bit) – Required; this is the actual filename to execute, optionally including a full or partial path. A path can use system environment variables, so “%windir%” and “%programfiles%” can be used for example. A partial path should begin at the app’s extract directory in 3rd Party Tools, so for example “CCleaner\CCleaner.exe” might reference a full path to d7x\3rd Party Tools\Piriform\CCleaner\CCleaner.exe”.
- Path/Filename (64bit Only) – ONLY configure IF there is a separate executable for a 64bit version of the app. Otherwise leave this field blank so that the main settings above will be used for both 32bit and 64bit platforms, the default of most apps today.
- Command Line Arguments – Command line arguments passed to the app’s main executable, used in order to assist in automation of the app.
- Wait for Termination – True/False, this will wait for the app’s main executable process to end prior to performing Post-Execution actions (below), as well as moving to the next app when in d7x Auto Mode.
- Wait on Processes – Wait for these additional processes to end prior to performing Post-Execution actions, as well as moving on to the next app when in d7x Auto Mode. Separate multiple filenames with a “;” semi-colon. This is useful when a custom app’s main EXE launches subsequent EXE files that it uses, then terminates the main EXE before the others are finished.
- Wait in Service Mode – This causes d7x to close itself and wait for the custom app to finish by installing itself as a Windows service and monitoring for the app’s finish. This is necessary with some custom apps that may want to terminate d7x (e.g. Combofix.) Once d7x detects the app has finished it performs any Post-Execution actions you have configured then restarts the PC, then d7x will automatically restart and pick up where it left off before the restart.
- Randomize Filename – Optionally rename the app’s main executable to something random before launching it, this was a thing back in the day when malware on the PC would prevent you from running certain anti-malware or system inspection tools.
- Run inside CMD.EXE – This runs the app inside a hidden CMD.EXE console window. Use only in the event that the app doesn’t run properly if launched normally for any reason, or if the custom app is a console based app that requires the next feature, Pipe Enter Keystroke.
- Pipe Enter Keystroke – When running the app inside CMD.EXE, this will send an ENTER keystroke to the app’s console Window. Use in the event that a console app requires you to press ENTER to continue after starting the app.
- Run as Standard User – Some apps must run under the standard user (non-Administrator) context, and cannot be launched normally by d7x as they would also be launched with Administrator privileges by default; selecting this option forces the process to run as a non-Admin.
- Run as TrustedInstaller – Run the app under the System account with TrustedInstaller privileges, bypassing file system/registry permissions for most anything. Please be aware some apps may not function as expected when running under this account.
- Use Shell API – Some apps (and this has only happened once to my recollection) don’t like being started with CreateProcess API used by d7x in normal cases, and so they should be started with the Shell API instead. The side effects of needing this option enabled (but it not being enabled) can include most any manner of strange/unwanted application behavior but I believe in the instance we noted it, the application was simply not finding it’s required dependencies.
Exit Code Actions (Requires “Wait for Termination”)
Exit codes can be returned by applications to indicate success, failure, error conditions, or other circumstances encountered during operation, that a script (or d7x, rather) could act upon.
In a batch file, you would test for %errorlevel% to get a console app’s exit code, or at a command prompt just type “echo %errorlevel%” and press enter after running any console app. Windows Defender’s command line scanner for example returns exit code 0 when nothing was found, or something was found and removed, and exit code 2 when something could not be removed. (Exit code 0 typically means success with most any app, with other numbers reserved for failures and error conditions.)
You may define up to 2 unique exit codes (1st Exit Code and 2nd Exit Code), with an optional third action for everything else (All Other Exit Codes).
- Exit Code – The number you are testing for.
- Run Custom App – True/False
- Custom App Name – Put the exact name of the custom app in this field.
- Send Email – True/False
- Email Subject and Email Body – Self-explanatory.
- Attach reports/logs – This attaches any reports that d7x has collected so far.
- Show Message Box – True/False
- Message Caption and Message Text – Self-explanatory.
Post-Execution Behavior (Requires “Wait for Termination”)
- Pause/Prompt – True/False, displays a completion message box when the app has completed in Auto Mode. Can be used in testing if the Wait for Termination feature isn’t working as expected.
- Early Termination Seconds – Use to inform d7x to display the Pause/Prompt when the app has completed ONLY IF the app completes in less than the number of seconds specified here. Assume this indicates a failure in the app, that it terminated too quickly, and that would be the reason for the message box prompt.
- Export Registry Key – Used to export a registry key (ex. “HKLM\Software\SomeApp\Options”) to be saved after running the app. Under Pre-Execution behavior you must specify a .reg filename in the “Import Configs” field and you must check the “Save Configs After…” option as well.
- Log File Location – Specify the location (full path or filename only) of log file(s) that your app creates. These logs can then be aggregated into the d7x Info or Malware reports locations. If a filename only, d7x looks in the app’s main executable’s directory. Supports Windows environment variables e.g. “%appdata%”
- Malware Report Type – True/False, this determines where the report goes (Info or Malware reports directory).
- Move Logs – True/False, when set to True this will move instead of copy log files. Useful for clearing out old logs or troubleshooting logs you don’t want to leave around on the system.
- Delete Files/Dirs – Delete the additional files and/or directories specified here. Separate multiple items by a “;” semi-colon. Uses KillEmAll Rule Variables.
Persistent Settings (Optional)
- Short Description – Short description of the app to be displayed in the user interface.
- Work Report Text – Short description for the work report generated by d7x (this can be given to customers.)
- Redownload App – True/False, when True d7x attempts to download a fresh copy of the app after x days, where x = the “Redownload After x Days” field value below. To always attempt download every single time, set that value to 0. Note that an existing version will be used if a download attempt fails.
- Redownload After x Days – Redownload a fresh copy of the app after ‘x’ days from the last download, as specified here (must set “Redownload App” to True above.)
- Prior Audible Alert – True/False, set to sound an audible alert just before running this app when in Auto Mode.
- Prior Tech Email – Send the technician an email just before running this app when in Auto Mode.
- Chain App or Function – Chain a second app or d7x Internal Function to this one, so that the second app or function will always run after this one. For apps, specify the config’s filename for that app; for d7x Internal Functions this expects the function number.
d7x and Tweaky – Set Time Zone issue with Windows 11 (UPDATED Aug 9th 2022) UPDATE: this issue has been resolved in d7x v22.8.9 and...