0
votes

Brief summary of what I'm trying to do. I have a script in powershell that takes 2 files and reads in the embedded credentials and stores them in a variable to which then I can run administrative commands from.

This works great, however, after the files are read and the key is stored, I'm trying to delete the 2 files and I keep getting the following error:

Start-Process : Parameter set cannot be resolved using the specified named parameters. At \mars\Client-Installs\NetSmart Test3\Setup.ps1:137 char:15 + Start-Process <<<< -FilePath "powershell.exe" -Credential $adminCreds -WindowStyle Hidden -ArgumentList "Remove-Item -Path $file1 -Force" -WorkingDirectory $path -NoNewWindow -PassThru + CategoryInfo : InvalidArgument: (:) [Start-Process], ParameterBindingException + FullyQualifiedErrorId : AmbiguousParameterSet,Microsoft.PowerShell.Commands.StartProcessCommand

Start-Process : Parameter set cannot be resolved using the specified named parameters. At \mars\Client-Installs\NetSmart Test3\Setup.ps1:138 char:15 + Start-Process <<<< -FilePath "powershell.exe" -Credential $adminCreds -WindowStyle Hidden -ArgumentList "Remove-Item -Path $file2 -Force" -WorkingDirectory $path -NoNewWindow -PassThru + CategoryInfo : InvalidArgument: (:) [Start-Process], ParameterBindingException + FullyQualifiedErrorId : AmbiguousParameterSet,Microsoft.PowerShell.Commands.StartProcessCommand

The account I'm running with is part of domain admin and when I look in task manager I can see it running in Administrative mode.

I also know that the folder path where the files reside also have full share and security access to.

Here is a snippit of my code (The bottom 2 lines are the ones that don't seem to work)

function Authentication
{
    #---------------------------------------------------
    #Authenticate Admin Account using encrypted password
    #---------------------------------------------------
    $TempFolder = $env:temp

    #The 2 lines underneath is if you are running the auth files from the same directory
    #$global:AESKeyFilePath = $path + "\aeskey.txt"
    #$global:SecurePwdFilePath =  $path + "\credpassword.txt"

    #Move the files to the temp folder
    $global:file1 = $path + "\aeskey.txt"
    $global:file2 =  $path + "\credpassword.txt"

    Copy-Item -Path $file1 -Destination $TempFolder -force
    Copy-Item -Path $file2 -Destination $TempFolder -force

    #If you choose to run it from the temp directory comment the lines above and uncomment the 2 below.
    $global:AESKeyFilePath = $TempFolder + "\aeskey.txt"
    $global:SecurePwdFilePath =  $TempFolder + "\credpassword.txt"
    $global:userUPN = "domain\user"

    #use key and password to create local secure passwordtemp
    $global:AESKey = Get-Content -Path $AESKeyFilePath 
    $global:pwdTxt = Get-Content -Path $SecurePwdFilePath
    $global:securePass = $pwdTxt | ConvertTo-SecureString -Key $AESKey

    #create a new psCredential object with required username and password
    $global:adminCreds = New-Object System.Management.Automation.PSCredential($userUPN, $securePass)

    #Remove the files below
    Start-Process -FilePath "powershell.exe" -Credential $adminCreds -WindowStyle Hidden -ArgumentList "Remove-Item -Path $file1 -Force" -WorkingDirectory $path -NoNewWindow -PassThru
    Start-Process -FilePath "powershell.exe" -Credential $adminCreds -WindowStyle Hidden -ArgumentList "Remove-Item -Path $file2 -Force" -WorkingDirectory $path -NoNewWindow -PassThru
}
1

1 Answers

0
votes

You cannot specify -NoNewWindow and -WindowStyle together, its contradicting.

See Get-Command Start-Process -Syntax for the parameter sets.

I hope below way is what you need. Just use -WindowStyle Hidden.

 Start-Process -FilePath "powershell.exe" -Credential $adminCreds -WindowStyle Hidden -ArgumentList "Remove-Item -Path $file2 -Force" -WorkingDirectory $path -PassThru