Crescendo icon indicating copy to clipboard operation
Crescendo copied to clipboard

Add a way to specify a value for $PSNativeCommandArgumentPassing

Open sdwheeler opened this issue 1 year ago • 0 comments

Summary of the new feature / enhancement

Take for example the Windows native command vaultcmd.exe. That command has parameters that take values that require quotes. When $PSNativeCommandArgumentPassing = 'Windows' (which is the default) the command fails. When set to Legacy it works.

Example

vaultcmd /listcreds:"windows credentials"

Output

Credentials in vault: windows credentials

Credential schema: Windows Domain Password Credential
Resource: Domain:target=mydomain
Identity: COMPUTER\admin
Hidden: No
Roaming: No
Property (schema element id,value): (100,3)
Property (schema element id,value): (101,SspiPfc)

Credential schema: Windows Domain Password Credential
Resource: Domain:target=myotherpc
Identity: [email protected]
Hidden: No
Roaming: No
Property (schema element id,value): (100,3)
Property (schema element id,value): (101,SspiPfc)
$cmd = 'vaultcmd'
$arg = '/listcreds:"windows credentials"'
& $cmd $arg

Output

Invalid vault: Element not found.

When you switch to Legacy mode, the command invocation works.

$PSNativeCommandArgumentPassing = 'Legacy'
& $cmd $arg

Output

Credentials in vault: windows credentials

Credential schema: Windows Domain Password Credential
Resource: Domain:target=mydomain
Identity: COMPUTER\admin
Hidden: No
Roaming: No
Property (schema element id,value): (100,3)
Property (schema element id,value): (101,SspiPfc)

Credential schema: Windows Domain Password Credential
Resource: Domain:target=myotherpc
Identity: [email protected]
Hidden: No
Roaming: No
Property (schema element id,value): (100,3)
Property (schema element id,value): (101,SspiPfc)

Proposed technical implementation details (optional)

Add a property that allows you to set the value of $PSNativeCommandArgumentPassing.

Add the assignment to the begin block of the cmdlet function generated.

sdwheeler avatar May 08 '24 15:05 sdwheeler