Påberope-Expression: posisjonparameteren kan ikke bli funnet som aksepterer argumentet / s

stemmer
4

Jeg har en .ps1 script som inneholder en linje

Invoke-Expression -Command C:\Builds\$BuildName /s /v`/l*v c:\build_install.txt /qn`<br/>

Dette utfører Silent installasjon av et produkt.

Nå, hvis jeg prøver å kjøre denne kommandoen fra Linux-boksen gjennom ssh det gir følgende feil:

Invoke-Expression : A positional parameter cannot be found that accepts argument '/s'.
At line:1 char:1
+ Invoke-Expression C:\NWTBuilds\Setup-NimbleNWT-x64.2.0.4.117.exe /s /v`/l*v c:\n ...
+ CategoryInfo          : InvalidArgument: (:) [Invoke-Expression], ParameterBindingException
+ FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.InvokeExpressionCommand

Har du noen forslag på dette? Trenger jeg å gi noen legitimasjon?

Så jeg har også prøvd følgende alternativer:

  1. Send kommandoen gjennom ssh eller telnet powershell.exe -Command ...
  2. Ring Powershell script fra ssh eller telnet powershell.exe -File C:\Sample.ps1

Men hvis jeg kjørte samme Sample.ps1fra Windows Powershell er stille installasjon gjort?

Publisert på 06/09/2013 klokken 19:06
kilden bruker
På andre språk...                            


2 svar

stemmer
1

Dine / s blir tolket som å være en del av Invoke-Expression samtale. Kan du prøve Invoke-Command , dvs:

Invoke-Command { C:\Builds\$BuildName /s /v "/l*v c:\build_install.txt /qn" }
Svarte 06/09/2013 kl. 19:14
kilden bruker

stemmer
1

Feilmeldingen indikerer at Power prøver å analysere /ssom navnet på en parameter av Invoke-ekspresjon i stedet for som en del av argumentet tilføres -command , som det ikke ville gjøre dersom den /svar en del av strengen. Dette innebærer at strengen blir avsluttet like før det. Sjekk verdien av $ BuildName , inneholder det trolig noe som avslutter strengen. Jeg er ikke helt sikker på hva det kan være, fordi et par doble anførselstegn i variabelverdien ikke skal ha den effekten. Minst ville det ikke på et Powershell ledeteksten. Kanskje ssh klienten tolke hva du skriver på noen måte som avslutter strengen før /s?

I alle fall ville jeg være villig til å satse penger på at svaret ligger i verdien av $ BuildName , fordi logisk feil indikerer at strengen argument for å -kommandoen avslutter på det tidspunktet.

Svarte 06/09/2013 kl. 19:59
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more