Trouble Running PowerShell Scripts from CMD

January 6, 2026 5 answers
Asked by TechNinja42
I'm trying to run a couple of PowerShell scripts from a CMD file on an HMI panel. My CMD file includes commands to run PowerShell and execute scripts from a USB stick, but I'm running into issues. I've set the execution policy to unrestricted, but I'm getting errors saying the scripts can't be found or have an invalid extension. When I open PowerShell as an admin and navigate to the USB stick, the scripts run perfectly. I used the "%~dp0" variable to get the directory of the CMD file to reference the scripts, but it's still not working. Last time I tried calling the scripts directly from the CMD file, I had the same errors. Could someone help me figure out what's going wrong when I try to launch the PowerShell files directly from CMD?

Answers

CommandLineKiddo
You should specify the drive letter of your USB stick directly. If your USB is usually the D: drive, try using that in your command: `powershell -noexit -File "D:InstallWifi.ps1"`. Just make sure your script is located on the root of the USB drive for this to work.
Reply to this answer
ScriptMaster88
It sounds like you might be overcomplicating things a bit. Could you use PowerShell 7 instead of 5.1? If so, you could try running it with the command `pwsh -noprofile -noexit -command ".script.ps1"`. This approach allows you to run your scripts directly from the CMD prompt. Also, remember that '$PSScriptRoot' can help get the script directory in PowerShell.

TechNinja42: Thanks for the tip! I modified my CMD file to check for PowerShell 7 and it works better now. I still have a problem with making sure it runs without an existing network, though.

ScriptMaster88: Glad to hear it helped! Let me know if you need more tips on handling network setups.

Reply to this answer
BatchBrawler
It might be an admin problemโ€”make sure you're running both the CMD file and PowerShell as administrators. Sometimes, permissions can mess up execution, even if it seems like you're doing everything right.
Reply to this answer
PowerShellGuru
Double-check how you're calling the scripts, especially if your path has spaces. Wrap the path in quotes like this: `powershell -noexit -File "%~dp0windowsPostInstall.ps1"`. This should help resolve the issue where it can't find your script.

TechNinja42: I tried that, but I still see two new windows popping up and disappearing quickly. Itโ€™s frustrating!

PowerShellGuru: It sounds like the scripts might be exiting immediately. Maybe remove the `-noexit` option for now to see if they run at all.

Reply to this answer
USBWhiz
If you're navigating to external drives, be sure to run these commands while specifying the drive letter. For example: `powershell -noexit -File "D:windowsPostInstall.ps1"`. Since you're using a USB, commands that expect local paths might fail to locate the scripts if incorrectly addressed.
Reply to this answer

Add your answer

Answers are reviewed before publication.

Related Discussions