How to use powershell.exe with the -Command command using script block and parameters

For reasons that should not affect the current question, I need to run a script with the definition and parameters outside the command inside another PowerShell instance without using PSSessions, background jobs or files (I have working examples for PSSession, background jobs and .ps1 files, and I know that they can replace what I'm trying to do, but I also need a working example with powershell.exe -Command ).

I looked for help for powershell.exe and it should support what I am trying to do, but I can’t get it working with everything I need (script definition and parameters outside the command).

As a working example, I have:

 $abc = powershell.exe -WindowStyle Hidden -NonInteractive -Command {Invoke-Command -ScriptBlock { param($a1,$a2) $a1*6 $a2*5} -Argumentlist @(8,'abc')} 

I need to be able to at least move -ArgumentList outside the command, for example:

 $abc = powershell.exe -WindowStyle Hidden -NonInteractive -Command {Invoke-Command -ScriptBlock { param($a1,$a2) $a1*6 $a2*5} -Argumentlist @($args[0],$args[1])} -args @(8,'abc') 

and even better:

 $script={ param($a1,$a2) $a1*6 $a2*5} $args=@ (8,'abc') $abc = powershell.exe -WindowStyle Hidden -NonInteractive -Command $script -args $args 

I have already addressed the following similar questions, but could not find what I need:

+6
source share
1 answer

Not sure if this helps me add a few things to your original script and change $ args to $ z, and that seemed to work.

 $script={ param($a1 =1 ,$a2 = 2) $a1*6 $a2*5 test-connection -Count 2 www.google.com Write-Output $a1 Write-Output $a2 } $z=@ (8,'abc') $abc = powershell.exe -WindowStyle Hidden -NonInteractive -Command $script -args $z 

$ a

 48 abcabcabcabcabc PSComputerName : ok IPV4Address :1.1.1.4 IPV6Address : __GENUS : 2 __CLASS : Win32_PingStatus __SUPERCLASS : __DYNASTY : Win32_PingStatus __RELPATH : Win32_PingStatus.Address="www.google.com",BufferSize=32,NoFragmentation=FALSE,RecordRoute=0,ResolveAddressNames=FALSE,SourceRou te="",SourceRouteType=0,Timeout=4000,TimestampRoute=0,TimeToLive=80,TypeofService=0 __PROPERTY_COUNT : 24 __DERIVATION : {} __SERVER : ok __NAMESPACE : root\cimv2 __PATH : \\ok\root\cimv2:Win32_PingStatus.Address="www.google.com",BufferSize=32,NoFragmentation=FALSE,RecordRoute=0,ResolveAddressName s=FALSE,SourceRoute="",SourceRouteType=0,Timeout=4000,TimestampRoute=0,TimeToLive=80,TypeofService=0 Address : www.google.com BufferSize : 32 NoFragmentation : False PrimaryAddressResolutionStatus : 0 ProtocolAddress :1.1.1.4 ProtocolAddressResolved : RecordRoute : 0 ReplyInconsistency : False ReplySize : 32 ResolveAddressNames : False ResponseTime : 19 ResponseTimeToLive : 252 RouteRecord : RouteRecordResolved : SourceRoute : SourceRouteType : 0 StatusCode : 0 Timeout : 4000 TimeStampRecord : TimeStampRecordAddress : TimeStampRecordAddressResolved : TimestampRoute : 0 TimeToLive : 80 TypeofService : 0 PSComputerName : ok IPV4Address :1.1.1.4 IPV6Address : __GENUS : 2 __CLASS : Win32_PingStatus __SUPERCLASS : __DYNASTY : Win32_PingStatus __RELPATH : Win32_PingStatus.Address="www.google.com",BufferSize=32,NoFragmentation=FALSE,RecordRoute=0,ResolveAddressNames=FALSE,SourceRou te="",SourceRouteType=0,Timeout=4000,TimestampRoute=0,TimeToLive=80,TypeofService=0 __PROPERTY_COUNT : 24 __DERIVATION : {} __SERVER : ok __NAMESPACE : root\cimv2 __PATH : \\ok\root\cimv2:Win32_PingStatus.Address="www.google.com",BufferSize=32,NoFragmentation=FALSE,RecordRoute=0,ResolveAddressName s=FALSE,SourceRoute="",SourceRouteType=0,Timeout=4000,TimestampRoute=0,TimeToLive=80,TypeofService=0 Address : www.google.com BufferSize : 32 NoFragmentation : False PrimaryAddressResolutionStatus : 0 ProtocolAddress :1.1.1.4 ProtocolAddressResolved : RecordRoute : 0 ReplyInconsistency : False ReplySize : 32 ResolveAddressNames : False ResponseTime : 21 ResponseTimeToLive : 252 RouteRecord : RouteRecordResolved : SourceRoute : SourceRouteType : 0 StatusCode : 0 Timeout : 4000 TimeStampRecord : TimeStampRecordAddress : TimeStampRecordAddressResolved : TimestampRoute : 0 TimeToLive : 80 TypeofService : 0 8 abc 
0
source

Source: https://habr.com/ru/post/1011886/


All Articles