Gå til innhold

Anbefalte innlegg

Hei

 

Jeg prøver å kjøre et installasjonsprogram i "unatended" -modus fra Powershell, men får det ikke til.

 

Fra vanlig cmd-shell kan jeg skrive:

 

c:>setupconsole.exe -f inputfil.txt -i silent

 

Dette starter installasjonen med installasjonsvalgene fra inputfil.txt.

 

MEN, jeg ønsker å scripte dette i Powershell.

 

PS>.\setupconsole.exe -f inputfil.txt -i silent

 

Når jeg skriver dette i et shell eller i et powershell -script returnerer setupconsole.exe med en gang uten noen feilmelding...

 

Hvordan starter jeg .exe -filer på en bedre måte?

 

Mvh

Pål

Lenke til kommentar
Videoannonse
Annonse
Gjest Slettet+9871234

Gjør du det fra webserveren hos din hoster? Det er en tid siden jeg så på dette, men min hoster anbefalte meg så vidt jeg husker - for noen år siden å bruke Putty

 

Jeg kjenner ikke PowerShell, så kanskje jeg ikke svarer på akkurat det du vil oppnå?

Endret av Slettet+9871234
Lenke til kommentar

Hei,

 

Vil tippe at dette er fordi PowerShell vinduet ditt ikke har administrative rettigheter, og derfor vil ikke installeren starte.

 

Hvis du starter PowerShell som administrator, vil du kunne gjør slik som du beskriver.

 

Og for referanse, her viser alle måtene du kan starte kommandoer på i PowerShell: http://social.technet.microsoft.com/wiki/contents/articles/7703.powershell-running-executables.aspx

Lenke til kommentar

Siden Powershell er et Shell, håndteres argumenter litt anderledes enn CMD.EXE. Når du skal kjøre et eksternt program (eller et Win32 API-kall) må du ta hensyn til dette slik som eksemplene i linken grapz viser til.

 

Artikkelen PowerShell and external commands done right synes jeg beskriver på en god måte hva man må gjøre for å få et eksternt program til å kjøre med de parametre du oppgir fra Powershell. Denne artikkelen viser også bruk av ECHOARGS.EXE (en del av PSCX) som er et verktøy for å se hvilke argumenter du har gitt som input, dvs. hvordan de ser ut etter at Powershell har prosessert argumentene dine. Nyttig!

 

Powershell v3 har forøvrig en forbedret måte å løse dette på, --% kan brukes for å angi at alt etter --% skal håndteres av CMD.EXE.

  • Liker 1
Lenke til kommentar
  • 2 uker senere...

Takk for bra svar særlig til graps og NoBo som satte meg på riktig spor. Ved å bruke echoargs fant jeg ut at jeg hadde vært slurvete med mellomromene mellom opsjon og opsjonsargument... Løsningen ble noe slikt:

 

$CMD = 'SuperApp.exe'

$arg1 = 'filename1'

$arg2 = '-someswitch'

$arg3 = 'C:\documents and settings\user\desktop\some other file.txt'

$arg4 = '-yetanotherswitch'

 

& $CMD $arg1 $arg2 $arg3 $arg4

 

Takk

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...