Command is running fine in console but not when used by Powershell

I have a PS script that should deploy a project to my SSIS server. When I run the generated command in a console it runs fine but when the command is executed from Powershell it fails because of this (windows) error :

TITLE: SQL Server Integration Services

The path format is invalid. Parameter name: DestinationPath (ISDeploymentWizard)

ADDITIONAL INFORMATION:

The path format is invalid. (Microsoft.SqlServer.IntegrationServices.Wizard.Common)

If I run the generated command from a console it runs fine:

D:\Deploy\ISDeploymentWizard.exe /Silent /ModelType:Project /SourcePath:"D:\Deploy\Receive\My_Beautiful_Project.ispac" /DestinationServer:"localhost" /DestinationPath:"/SSISDB/My Beautiful Project/My_Beautiful_Project" /ProjectPassword:"SuperSecretPassword"

The script (thanks to suggestions from Guenther Schmitz and Janne Tukaanen) :

#region script configuration
$SsisServer = "."
$ProjectFileFolder = "D:\Deploy\Receive"
$ProjectFileName = "My_Beautiful_Project.ispac"
$ProjectFilePassword = "SuperSecretPassword"
$FolderName = "My Beautiful Project"
$ProjectName = "My_Beautiful_Project"
$ISDeploymentWizard = "D:\Deploy\ISDeploymentWizard.exe"
#endregion

#region project deployment
# Create command line arguments
$DestinationPath = "/SSISDB/" + $FolderName + "/" + $ProjectName
$ProjectFilePath = $ProjectFileFolder + "\" + $ProjectFileName
$cmd = $ISDeploymentWizard
$arg1 = "/Silent"
$arg1a= "/ModelType:Project"
$arg2 = "/SourcePath:""$ProjectFilePath"""
$arg3 = "/DestinationServer:""$SsisServer"""
$arg4 = "/DestinationPath:""$DestinationPath"""
$arg5 = "/ProjectPassword:""$ProjectFilePassword"""
Write-Host "$cmd" $arg1 $arg1a $arg2 $arg3 $arg4 $arg5
& "$cmd" $arg1 $arg1a $arg2 $arg3 $arg4 $arg5


Write-Host "Done"
#endregion 

There is no need to declare the following variables $arg1 $arg1a $arg2 $arg3 $arg4 $arg5, just run the following command (why declaring variables and storing their values in another variables??):

& $cmd /Silent /ModelType:Project /SourcePath:$ProjectFilePath /DestinationServer:$SsisServer /DestinationPath:$DestinationPath /ProjectPassword:$ProjectFilePassword

Powershell script works fine when fun from powershell console, but , Powershell script works fine when fun from powershell console, but does not when If I run my powershell script from powershell console it works fine, if I run it using the powershell command, and the script does then still start the console​  Once all was done and working, I saved the PS1 file and moved it to a shared server to be run. When I run the Powershell console (as Admin) and point to the file, the Form loads ok. Once I click the button to begin generating the info, It just changes to (Not Responding) and grays out.

you are missing the executable in the line below Write-Host.

change

& $arg1 $arg2 $arg3 $arg4 $arg5 

to

& $cmd $arg1 $arg2 $arg3 $arg4 $arg5 

Powershell scripts run in console but does not run as Job, I have a Powerscript script that run great when run in the console but as soon New-PSSession -ComputerName $Computer Invoke-Command -Session If I didn't use these parameters, I could not get the child scripts to wait. the PowerShell console worked fine as the run scope (console) did not auto  I have a PS script that should deploy a project to my SSIS server. When I run the generated command in a console it runs fine but when the command is executed from Powershell it fails because of th

If you have troubles to start console apps in powershell (typically because of multiple arguments), you may execute it through cmd (in powershell)

cmd /c "$cmd $arg1 $arg2 $arg3 $arg4 $arg5"

There is also another option using Process class, so you don't have to use cmd:

$ProcessInfo = New-Object System.Diagnostics.ProcessStartInfo 
$ProcessInfo.FileName = "D:\Deploy\ISDeploymentWizard.exe"
$ProcessInfo.Arguments = "$arg1 $arg1a $arg2 $arg3 $arg4 $arg5"
$ProcessInfo.RedirectStandardError = $true 
$ProcessInfo.RedirectStandardOutput = $true 
$ProcessInfo.UseShellExecute = $false 
$Process = New-Object System.Diagnostics.Process 
$Process.StartInfo = $ProcessInfo 

$Process.Start() | Out-Null 
$output = $Process.StandardOutput.ReadToEnd() 
$errors = $Process.StandardError.ReadToEnd()
$Process.WaitForExit() 
Write-Host $output 
Write-Error $errors 

You can check this for some more details: PowerShell, stream Process output and errors while running external process

Professional SharePoint 2013 Administration eBook And , Chapter 6, “Claims Identity Management and Security,” explains in detail how CBA you can find more than 770 cmdlets in the SharePoint Management Console, all the magical things you can do from the command line using PowerShell. (fulltrust) solutions and sandbox solutions — which still work fine but have not  Running the Powershell command in a command line / batch file I am creating a batch file which involves converting a SID to local/domain username. Since we can not achieve this using the command prompt I am planning to use powershell and I have the PS command as well. I am able to run it in powershell console w

Pretty sure that the $DestinationPath needs to be a non relative path. Change it to the full path including the drive and I think that will solve your problem.

Professional Windows PowerShell Programming: Snapins, Cmdlets, , Snapins, Cmdlets, Hosts and Providers Arul Kumaravel, Jon White, Michael Naixin Li, 57–60 TypeNames,53–54 using ImmediateBaseObject and BaseObject, 33–34 ReadToEnd( ) method, non-terminating errors, 173 registry list of registered executing command in PowerShell Engine, 166–167 fine-​tuning, 179–181  Why: Used to treat a string as a SINGLE command. Useful for dealing with spaces. In PowerShell V2.0, if you are running 7z.exe (7-Zip.exe) or another command that starts with a number, you have to use the command invocation operator &. The PowerShell V3.0 parser do it now smarter, in this case you don’t need the & anymore .

Topic: If loop works fine when running on ISE's F5/F8 but not when , But if I run it with ISE's F5/F8 it works fine. When executed as script in ISE's Console or Powershell's console. or powershell) it will say “Success” because the 'New-PSDrive' command doesn't care if you have word of advice if you're ever trying to trap an error you do not want to use -SilentlyContinue. Any new console you open will not have a PSDrive called ‘dummy’ and the first time you run the script in that console (ISE or powershell) it will say “Success” because the ‘New-PSDrive’ command doesn’t care if you have permission to file system you’re mapping a name to unless you use the -Credentials parameter.

Run powershell task silently, Alternatively, you can use the built-in PowerShell ISE console to code your Run command,0 And that runs silently if I point the scheduled task straight to the . BIOS fine, but it does it no matter what, if the BIOS needs to be updated or not. How to Use the Command-Line Buffer. RELATED: Geek School: Learn How to Automate Windows with PowerShell PowerShell technically has two types of command history. First, there’s the commandline buffer, which is actually part of the graphical PowerShell terminal application and not part of the underlying Windows PowerShell application.

Access Denied When Running Powershell Script, I am trying to run a powershell script with a different user but it is not running it with that. Then try to execute the script again using the command line. right click powershell and "Run as Administrator", then in the console run your script. Manually i have tested script and it runs fine with the user but with AO it is able to​  How to Use the Console Pane in the Windows PowerShell ISE. 01/02/2020; 2 minutes to read; In this article. The Console pane in the Windows PowerShell Integrated Scripting Environment (ISE) operates exactly like the stand-alone Windows PowerShell ISE console window. To run a command in the Console Pane, type a command, and then press ENTER.

Comments
  • Isn't $cmd missing from you execution line? You are trying to run $arg1 now.
  • It was indeed. But now I have a different error :| (see question)
  • replace all the curly 'smart' quotes with straight ones
  • That is formatting due to stackoverflow :|
  • did you try the pure powershell solution? docs.microsoft.com/en-us/sql/integration-services/…
  • This did it! Now the deploy runs.
  • I did that. I also noticed that the string provided when I manually run ISDeploymentWizard has an extra parameter. I added that also. But when I run it now I get a different error (updated question)
  • Unfortunately, it still fails on the Destinationpath. I tried a destinationpath without spaces but it gives me the same error. So it seems not to be the content of destinationpath that causes the error.
  • Strange. Can you just copy a working command from console (without string building). Like cmd /c 'working command here' Also try to use single quotes, sometimes it matters
  • Also check this link, it uses slightly diffferent approach for that (for PS) stackoverflow.com/questions/21555086/…
  • Try to remove spaces from destination folder (somebody mentioned that might be an issue). I think you can also save your working cmd command as a bat file, and just call it from powershell (by typing full path to that bat)
  • Just realized there is another approach for that, updated my answer
  • DestinationPath is the destinationpath within the SSIS catalog. I do not think there is a drive involved?