Start-ADTProcess throws error if file not found

Hi, i tried to figure it out but too new and too dumb for version 4 i guess :slight_smile:

PSADT 4.1.7

if i run

Start-ADTProcess -FilePath 'C:\Program Files\2FAGuard\unins000.exe' -ArgumentList '/Verysilent' -ErrorAction SilentlyContinue

and file doesnt exist then the installation exits but it should silent continue

What i am missing?

some logs:

<![LOG[[Pre-Install] :: Executing ["C:\Program Files\2FAGuard\unins000.exe" /Verysilent]...]LOG]!><time="08:11:16.828+60" date="11-04-2025" component="Start-ADTProcess" context="NT-AUTORITÄT\SYSTEM" type="1" thread="2760" file="C:\WINDOWS\ccmcache\sb\PSAppDeployToolkit\PSAppDeployToolkit.psm1">
<![LOG[[Pre-Install] :: Error occurred while attempting to start the specified process.
Error Record:
-------------
 
Message               : Ausnahme beim Aufrufen von "LaunchAsync" mit 1 Argument(en):  "Der Verzeichnisname ist ungĂĽltig"
InnerException        : System.ComponentModel.Win32Exception (0x80004005): Der Verzeichnisname ist ungĂĽltig
                           bei PSADT.LibraryInterfaces.Kernel32.CreateProcess(String lpApplicationName, Span`1& lpCommandLine, Nullable`1 lpProcessAttributes, Nullable`1 lpThreadAttributes, BOOL bInheritHandles, PROCESS_CREATION_FLAGS dwCreationFlags, SafeEnvironmentBlockHandle lpEnvironment, String lpCurrentDirectory, STARTUPINFOW& lpStartupInfo, PROCESS_INFORMATION& lpProcessInformation) in D:\a\PSAppDeployToolkit\PSAppDeployToolkit\src\PSADT\PSADT\LibraryInterfaces\Kernel32.cs:Zeile 281.
                           bei PSADT.ProcessManagement.ProcessManager.LaunchAsync(ProcessLaunchInfo launchInfo) in D:\a\PSAppDeployToolkit\PSAppDeployToolkit\src\PSADT\PSADT\ProcessManagement\ProcessManager.cs:Zeile 0.
                           bei CallSite.Target(Closure , CallSite , Type , Object )
 
FullyQualifiedErrorId : Win32Exception,Start-ADTProcess
ScriptStackTrace      : bei Start-ADTProcess<Process>, C:\WINDOWS\ccmcache\sb\PSAppDeployToolkit\PSAppDeployToolkit.psm1: Zeile 22246
                        bei Install-ADTDeployment, C:\WINDOWS\ccmcache\sb\Invoke-AppDeployToolkit.ps1: Zeile 145
                        bei <ScriptBlock>, C:\WINDOWS\ccmcache\sb\Invoke-AppDeployToolkit.ps1: Zeile 349
                        bei <ScriptBlock>, <Keine Datei>: Zeile 1
 
PositionMessage       : In C:\WINDOWS\ccmcache\sb\Invoke-AppDeployToolkit.ps1:145 Zeichen:2
                        +     Start-ADTProcess -FilePath "C:\Program Files\2FAGuard\unins000.ex ...
                        +     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
]LOG]!><time="08:11:16.998+60" date="11-04-2025" component="Start-ADTProcess" context="NT-AUTORITÄT\SYSTEM" type="3" thread="2760" file="C:\WINDOWS\ccmcache\sb\PSAppDeployToolkit\PSAppDeployToolkit.psm1">
<![LOG[[Pre-Install] :: An unhandled error within [Invoke-AppDeployToolkit.ps1] has occurred.
Error Record:
-------------
 
Message               : Ausnahme beim Aufrufen von "LaunchAsync" mit 1 Argument(en):  "Der Verzeichnisname ist ungĂĽltig"
InnerException        : System.ComponentModel.Win32Exception (0x80004005): Der Verzeichnisname ist ungĂĽltig
                           bei PSADT.LibraryInterfaces.Kernel32.CreateProcess(String lpApplicationName, Span`1& lpCommandLine, Nullable`1 lpProcessAttributes, Nullable`1 lpThreadAttributes, BOOL bInheritHandles, PROCESS_CREATION_FLAGS dwCreationFlags, SafeEnvironmentBlockHandle lpEnvironment, String lpCurrentDirectory, STARTUPINFOW& lpStartupInfo, PROCESS_INFORMATION& lpProcessInformation) in D:\a\PSAppDeployToolkit\PSAppDeployToolkit\src\PSADT\PSADT\LibraryInterfaces\Kernel32.cs:Zeile 281.
                           bei PSADT.ProcessManagement.ProcessManager.LaunchAsync(ProcessLaunchInfo launchInfo) in D:\a\PSAppDeployToolkit\PSAppDeployToolkit\src\PSADT\PSADT\ProcessManagement\ProcessManager.cs:Zeile 0.
                           bei CallSite.Target(Closure , CallSite , Type , Object )
 
FullyQualifiedErrorId : Win32Exception,Start-ADTProcess
ScriptStackTrace      : bei Start-ADTProcess<Process>, C:\WINDOWS\ccmcache\sb\PSAppDeployToolkit\PSAppDeployToolkit.psm1: Zeile 22246
                        bei Install-ADTDeployment, C:\WINDOWS\ccmcache\sb\Invoke-AppDeployToolkit.ps1: Zeile 145
                        bei <ScriptBlock>, C:\WINDOWS\ccmcache\sb\Invoke-AppDeployToolkit.ps1: Zeile 349
                        bei <ScriptBlock>, <Keine Datei>: Zeile 1
 
PositionMessage       : In C:\WINDOWS\ccmcache\sb\Invoke-AppDeployToolkit.ps1:145 Zeichen:2
                        +     Start-ADTProcess -FilePath "C:\Program Files\2FAGuard\unins000.ex ...
                        +     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
]LOG]!><time="08:11:17.060+60" date="11-04-2025" component="Invoke-AppDeployToolkit.ps1" context="NT-AUTORITÄT\SYSTEM" type="3" thread="2760" file="C:\WINDOWS\ccmcache\sb\Invoke-AppDeployToolkit.ps1">

The -SilentlyContinue parameter on most user created functions doesn't work. It's a known POWERSHELL issue. I've tried myself and failed.

You will have to do a Test-Path on that folder yourself to get what you want.

ok, thank you very much :waving_hand:

It's -ErrorAction Ignore that doesn't work on user-created functions. The use of -ErrorAction SilentlyContinue does work on this function, but it's wired to counteract an executable failure like invalid exit code, etc. A failure like the specified file being missing will cause it to throw and that's deliberate.

this

Preformatted text`#region Remove OpenWebStart
    Write-ADTLogEntry -Message "** Remove OpenWebStart"
    $Mytest=Test-Path "C:\Program Files\OpenWebStart\uninstall.exe"
    Write-ADTLogEntry -Message "** OpenWebStart vorhanden:  $Mytest"
    
    if ($Mytest -notlike "False")
        {
          Write-ADTLogEntry -Message "** Remove OpenWebStart"
          #V3 Execute-Process -Path "C:\Program Files\OpenWebStart\uninstall.exe" -Parameters -q -WindowStyle Normal
          Start-ADTProcess -FilePath "C:\Program Files\OpenWebStart\uninstall.exe" -ArgumentList "-q -WindowStyle Normal"
        }   
    #endregion

good to have an example for other users :heart_eyes: