Tidak dapat menginstal salinan lokal MSI dengan msiexec, tetapi dapat melalui jaringan dengan psexec


1

Saya tidak yakin mengapa hal ini terjadi, tetapi saya tidak dapat menginstal salinan lokal MSI jika saya jauh ke mesin di PowerShell dengan msiexec. Saya mendapatkan kesalahan ini:

[computername]: PS C:\temp> msiexec -q -i installer.msi
T h i s   i n s t a l l a t i o n   p a c k a g e   c o u l d   n o t   b e   o p e n e d .     V e r i f y   t h a t   t h e   p a c k a g e   e x i s t s   a n d   t h a t   y o u   c a n  
 a c c e s s   i t ,   o r   c o n t a c t   t h e   a p p l i c a t i o n   v e n d o r   t o   v e r i f y   t h a t   t h i s   i s   a   v a l i d   W i n d o w s   I n s t a l l e r   p 
a c k a g e .

(Saya juga tidak yakin mengapa ada jarak ekstra di sana.)

Namun, saya tidak memiliki masalah menginstalnya dari jaringan menggunakan psexec seperti ini:

psexec -s \\computername msiexec -i -q \\networkpath\to\installer.msi

Saya telah memastikan bahwa salinan lokal tidak diblokir, jadi saya tidak yakin apa yang menyebabkan ini.

Bagaimana saya bisa menyalin MSI ke mesin, dan menginstalnya dari dalam sesi jarak jauh? Atau psexec cara terbaik untuk melakukan ini?

Jawaban:


1

Inilah jawaban yang memecahkan masalah bagi saya:

Jika Anda mencoba menjalankan perintah berikut dari dalam folder yang berisi file msi:

msiexec / i. \ package-to-install.msi / qn

Jika Anda menggunakan penyelesaian-tab, ( gelombang di Linux saya bros & sista! ) Power-shell menyertakan nama file dengan tampak tidak berbahaya . \ , Yang menyebabkan pesan kesalahan spasi aneh muncul.

Hapus. \ Di depan nama file .msi

Perintahnya adalah:

msiexec / i package-to-install.msi / qn

Sebagai referensi, informasi ini ditemukan di sini .


Selamat datang di komunitas pengguna super! Saya menambahkan info tambahan dari tautan yang Anda berikan. Ini untuk mencegah orang di masa depan TIDAK mengklik tautan mati. (Tautan busuk)
Tim_Stewart

0

Apakah Anda menjalankan mesin 64-bit? Saya telah melihat masalah ini sebelumnya di mana saya menjalankan PowerShell pada desktop 32-bit lokal dan mengeksekusi Installer MSI 64-bit di seluruh jaringan.

Coba letakkan ini di bagian atas skrip Anda dan lihat apa yang terjadi:

    if ($pshome -like "*syswow64*") {
    & (join-path ($pshome -replace "syswow64", "sysnative") powershell.exe) -file (join-path $psscriptroot $myinvocation.mycommand) @args
    exit
}

0

Saya seharusnya memposting ini jauh sebelumnya, tetapi saya telah menemukan bahwa di PowerShell, yang terbaik adalah meneruskan path lengkap ke paket (dalam tanda kutip, tentu saja, jika ada spasi):

[computername]: PS C:\cwd doesn't matter> msiexec -q -i "c:\path to\the package\Software Name.msi"

Saya menduga itu msiexectidak dapat membaca direktori saat ini dari PS.


-1

Versi yang diperbaiki:

psexec -s \\computername msiexec /i /q \\networkpath\to\installer.msi

Catatan /idan /qdi tempat -idan -q.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.