2017-09-06 10 views
0

/qスイッチを使用してmsiをインストールしたいと考えています。私はオンラインで見て、例には/qスイッチがなく、エラーが発生しています。/qスイッチでStart-Processを使用してmsiをインストールしますか?

私のようなものが必要です

$WorkingDirectory = (Split-Path $myinvocation.mycommand.path -Parent) 

Start-Process -FilePath msiexec /i "$WorkingDirectory\LAPS.x64.msi" -ArgumentList /q 

答えて

0

はカッコ

の例(PythonのMSI)で、全体のコマンドを置く:

Start-Process msiexec.exe -Wait -ArgumentList "/I $($LocalPython.FullName) /passive ALLUSERS=1 ADDLOCAL=Extensions" 

は、必ずしもすべて/q

0

/passiveを置き換えますインストーラは同じです。あなたの.msi使用するためのインストーラスイッチを見つけるには:

.\LAPS.x64.msi /? 
.\LAPS.x64.msi -? 

は私も変数にmsiパスを格納し、引数のArrayListを使用することになり、このようなものは、私のスクリプトで私のために働いています

# Path to .msi 
$msiPath= 'C:\LAPS.x64.msi' 

# Define arguments 
[System.Collections.ArrayList]$arguments = 
@("/i `"$msiPath`"", 
"/quiet") 

# Start installation 
Start-Process -FilePath msiexec.exe -ArgumentList "$arguments" -Wait -NoNewWindow 
1

Start-Processで気にしないでください。 call operatorを使用します。

& msiexec.exe /i "$WorkingDirectory\LAPS.x64.msi" /q 
-1
$path="C:\Dat\install.msi" 
$parameters="/q" 

$packageinstall=(split-path $path -leaf) + ' ' + $parameters 
write-host $packageinstall 
$computers = get-content c:\com.txt 

$computers | where{test-connection $_ -quiet -count 1} | ForEach-Object { 

    copy-item $path "\\$_\c$\windows\temp" -Force -Recurse 
    $newProc=([WMICLASS]"\\$_\root\cimv2:win32_Process").Create("C:\windows\temp\$packageinstall") 

    If ($newProc.ReturnValue -eq 0) { 
     Write-Host $_ $newProc.ProcessId 
    } else { 
     write-host $_ Process create failed with $newProc.ReturnValue 
    } 
} 
関連する問題