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.
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.