Saya menulis skrip PowerShell yang membuka buku kerja excel dan menjalankan makro. Ketika saya menjalankan skrip itu dari konsol PS, atau bahkan dari baris perintah menggunakan powershell.exe script.ps1, itu hanya berfungsi. Ketika saya mengatur tugas dari Windows Task Scheduler, ia memunculkan pengecualian tentang file Excel itu, mengatakan bahwa itu tidak ada atau sudah digunakan.
File ada pasti, karena skrip berjalan dengan baik dari baris perintah, dan saya yakin itu tidak digunakan.
Saya mencoba untuk memindahkan file Excel ke area lokal dan non-privilege, untuk menghindari masalah kepercayaan jaringan / admin privilege. Tugas masih berjalan dengan hak istimewa tertinggi. Jalan tidak memiliki spasi, atau karakter khusus.
Ketika saya mencoba mengakses file menggunakan objek sistem File, tidak ada kesalahan bahkan ketika dijalankan dari scheduler, jadi saya kira itu khusus untuk Excel.Application.Workbooks.Open("..")
metode.
Apa yang harus saya pertimbangkan sekarang?
Jawaban:
Kemungkinan masalah izin DCOM. Mengotomasi Excel terkadang penuh dengan ...
Satu-satunya cara saya menemukan masalah seperti ini adalah mengatur Excel agar dijalankan sebagai pengguna tertentu melalui izin DCOM.
Menyimpannya sebagai pengguna interaktif atau peluncuran tidak berfungsi dengan penjadwal tugas sayangnya, bahkan ketika mengatur tugas untuk dijalankan di bawah akun yang memiliki akses admin ke mesin.
sumber
Buat dua folder ini:
32Bit:
64Bit:
Excel membutuhkan folder ini jika tidak dijalankan secara interaktif. Buat kedua folder bahkan jika Anda menggunakan OS 64-bit.
sumber
Saat mengatur izin DCOM, jika Microsoft Excel tidak muncul di
dcomcnfg
cobammc comexp.msc /32
referensi
sumber