DarkLite1
DarkLite1

Reputation: 14735

Can't start PowerShell script file with credentials of other user

I have a GUI that has been created with PowerShell Studio and exported as a PS1-file. I'm now trying to launch this GUI by calling it with another user's credentials.

When I run the code it doesn't even give an error message. PowerShell pops-up and closes again in seconds and nothing is launched. Follwoing this thread, I think I followed the correct syntax.

$Script = 'S:\Prod\Script center\GUI Script.ps1'
$Credentials = Get-Credential
$powershellArguments = "-file '$Script'", "-noexit", "-verb runas"
Start-Process powershell -Credential $Credentials -ArgumentList $powershellArguments

These ones doesn't work either:

Start-Process powershell -Credential $Credentials -ArgumentList "-noprofile -command &{Start-Process powershell -verb runas -File 'S:\Prod\Script center\GUI Script.ps1'}"
Start-Process powershell -Credential $Credentials -ArgumentList "-noprofile -command &{Start-Process $script -verb runas}"

And this one is asking me the credentials, although they are already saved in the variable $Credentials. However, the powershell console launched is not launched as the user in the Credentials :(

$cmd = 'powershell.exe'
$arguments = "-NoExit", "-NoProfile", "-WindowStyle Maximized", '-NoLogo', "Credential $Credentials", "File '$script'"
Start-Process $cmd -ArgumentList $arguments -Verb runAs

I'm sure it's not related to the GUI script, because this works perfectly fine:

& 'S:\Prod\Script center\GUI Script.ps1'

Any help is greatly appreciated.

Upvotes: 1

Views: 968

Answers (1)

Naigel
Naigel

Reputation: 9644

Maybe your error is only on argument single quotes $powershellArguments = "-file '$Script'"; double quotes should be used.

Start-Process -FilePath "powershell" -Credential $cred -ArgumentList @("-file 'cred.ps1'") # doesn't work
Start-Process -FilePath "powershell" -Credential $cred -ArgumentList @("-file ""cred.ps1""") # works

Upvotes: 1

Related Questions