Bagaimana cara memaksakan penggunaan cscript.exe 64-bit?

0

Saya mencoba untuk menggunakan dan menjalankan vbscript yang diterbitkan oleh Microsoft (offscrub10.vbs) untuk tujuan menghapus semua jejak Office 2010 dari suatu sistem. Ketika saya mendorong skrip ke sistem 64-bit, cscript 32-bit dipanggil untuk menjalankannya. Ini menyebabkan skrip gagal ketika mencoba memvalidasi izin registri.

Saya dapat mereplikasi kesalahan sendiri ketika mencoba menjalankan skrip secara manual dari sistem atau akun admin lokal dan secara eksplisit memanggil cscript 32-bit; sebaliknya jika saya hanya menjalankan "cscript" dengan sendirinya maka versi 64-bit mengambil dan skrip berfungsi dengan baik. Saya juga memiliki log ProcMon yang menunjukkan cscript 64-bit dipanggil di baris perintah tetapi memiliki versi 32-bit terdaftar di jalur ke proses yang dapat dieksekusi.

Bagaimana saya mengatasi ini? Jelas ada beberapa logika dalam skrip yang tidak suka dijalankan dalam 32-bit pada PC 64-bit, tetapi ini adalah skrip Microsoft dan saya tidak ingin mengotak-atik dan merusak sesuatu yang lain.

Saya menggunakan KACE untuk penyebaran, yang tampaknya menjadi masalah karena agen lokal adalah proses 32-bit. Saya telah mengkonfigurasi skrip deploy untuk memanggil cscript 64-bit secara eksplisit, membungkusnya dalam file batch, skrip PowerShell, dan mencoba memanggil 64-bit cmd.exe untuk menjalankan cscript, tetapi kemudian cmd.exe default ke 32-bit dan kita kembali ke papan gambar.

Jelas tempat yang ideal untuk memperbaikinya adalah di vbscript itu sendiri atau kbox, dan saya sedang mengerjakan ini dari sudut KACE juga, tapi saya mencoba untuk menutupi semua pangkalan saya di sini.

Brad McCuller
sumber
Kedengarannya seperti skrip itu sendiri tidak dirancang untuk menghapus instalasi kantor 64-bit. Mengapa Anda tidak menggunakan jalur lengkap ke eksekusi 64-bit saat memanggil skrip?
Ramhound
Saya akan mengatakan jawaban Anda menggunakan sesuatu selain KACE untuk menggunakan script.
Ƭᴇcʜιᴇ007
Melihat versi skrip sebelumnya, tampaknya itu cscript disebut dengan melakukan \cscript.exe yang akan tergantung pada proses yang memulai referensi itu, jadi gantikan \cscript.exe dengan path lengkap ke versi 64-bit dari cscript.exe yang akan menjamin skrip akan berjalan dengan akses ke kunci registri 64-bit.
Ramhound

Jawaban:

0

Saya pikir masalah yang Anda hadapi adalah karena Windows 64-bit memiliki fitur untuk proses 32-bit yang disebut pengalihan folder. Ini menyebabkan jalur untuk beralih dari% windir% \ system32 ke% windir% \ sysWOW64

Ada solusi tetapi sudah beberapa saat sejak saya menggunakannya. Di jalur lengkap untuk memanggil skrip, gunakan ini:

% WinDir% \ Sysnative

Ini harus memungkinkan proses KACE 32-bit untuk mengakses file dalam direktori system32 (cscript dalam kasus ini).

Info lebih lanjut di sini:

http://support.microsoft.com/kb/942589

Semoga itu berhasil untuk Anda.

kdenham
sumber