Saya memiliki tugas Penjadwal Tugas untuk menjalankan Robocopy untuk membuat cadangan file lokal ke jaringan berbagi. Saya harus menggunakan kredensial domain untuk mengakses pangsa jaringan tetapi komputer lokal tidak ada di domain, dan pekerjaan dijalankan sebagai admin lokal. Solusi iniuntuk sementara memetakan dan memetakan jaringan berbagi berfungsi tetapi kata sandi saya terbuka di teks biasa untuk siapa saja yang melihat tindakan pekerjaan Penjadwal Tugas. Saya lebih suka memetakan drive jaringan secara normal secara semi-permanen sehingga tugas Penjadwal Tugas hanya menjalankan Robocopy dan merujuk ke huruf drive yang sesuai. Namun saya selalu mendapatkan kesalahan "Sistem tidak dapat menemukan jalur yang ditentukan." di Robocopy log saat menjalankan ini dari Penjadwal Tugas, meskipun perintah berfungsi dengan baik dari prompt perintah yang ditinggikan (pekerjaan diatur untuk dijalankan dengan hak istimewa tertinggi). Juga perhatikan saya telah melakukan tweak registri ini untuk mengakses drive yang dipetakan dari prompt perintah yang ditinggikan.
EDIT: Untuk memperjelas, masuk sebagai admin lokal, saya meluncurkan Windows Explorer sebagai administrator. Saya memetakan jaringan berbagi untuk mendorong huruf Y. Saya meluncurkan prompt perintah sebagai administrator dan menjalankan
C:\Windows\System32\Robocopy.exe C:\temp Y:\temp
Bekerja dengan baik. Saya membuat tugas Penjadwal Tugas untuk menjalankan perintah yang sama persis, apakah pengguna masuk atau tidak, dengan hak istimewa tertinggi. Saya menjalankannya dan mendapatkan kesalahan. Saya menulis ke log dan mendapatkan
ERROR 3 (0x00000003) Getting File System Type of Destination Y:\temp\
The system cannot find the path specified.
diikuti oleh
ERROR 3 (0x00000003) Creating Destination Directory Y:\temp\
The system cannot find the path specified.
sumber
Jawaban:
Drive yang dipetakan adalah konsep Antarmuka Pengguna dan tidak tersedia untuk tugas-tugas latar belakang seperti itu. Akses target melalui UNC dan pastikan bahwa pengguna yang menjalankan tugas memiliki akses ke target.
sumber
Dalam kasus saya yang harus saya lakukan adalah hapus centang pada
run with highest privileges
flag tetapi saya menjalankan tugas pada pengguna yang sama dengan pengguna yang memetakan drive.sumber
Coba gunakan:
dalam file batch tugas terjadwal Anda. Drive yang dibagikan jaringan hanya tersedia dari lingkungan yang dijalankan pengguna. "pushd" akan memungkinkannya dijalankan dalam konteks skrip.
Setelah selesai gunakan:
untuk menghapus peta drive.
Referensi: https://blog.adrianbanks.co.uk/windows/2007/03/08/accessing-network-file-shares-from-a-command-prompt.html
sumber
Opsi lain hanya menggunakan jalur jaringan penuh, karena Robocopy mendukungnya. yaitu robocopy c: \ temp \\ server \ share \ temp
Atau lebih baik lagi, jalankan backup di server itu sendiri. Buat akun admin domain hanya untuk proses pencadangan. Umpan robocopy kata sandi dari file teks yang hanya bisa diakses admin domain.
Beberapa tahun yang lalu saya membuat beberapa skrip .cmd yang akan membuat cadangan file-file penting untuk setiap sistem di jaringan dengan cara ini. Satu-satunya program eksternal yang saya gunakan adalah perintah Grep Cgywin, dan pengirim pesan smtp command prompt.
Saya membuat satu skrip yang akan memindai jaringan untuk sistem. Itu akan membuat file teks dari semua nama sistem, dan mengingatkan saya melalui email dari setiap sistem baru yang ditemukannya. (Saya memiliki file konfigurasi yang akan diuraikan untuk dilewati sistem.) Setiap sistem baru memiliki direktori cadangan yang dibuat untuknya dan file konfigurasi cadangan ditempatkan di dalamnya. Pengguna dapat memodifikasi file ini dan mendaftar direktori mana saja yang perlu didukung. Mereka juga dapat menentukan waktu cadangan mereka sehingga tidak akan terjadi ketika mereka berada di kantor. Saya menjalankan skrip ini di server setiap 5 menit, karena tidak memerlukan waktu pemrosesan dan saya suka fitur keamanan untuk memberi tahu saya ketika sistem baru dicolokkan ke jaringan.
Skrip lain akan mem-parsing semua file konfigurasi pencadangan individu dan menjadwalkan tugas untuk menjalankan pencadangan pada sistem itu. Ini dijalankan setiap hari pukul 12:01 pagi.
Akhirnya skrip cadangan akan mem-parsing file konfigurasi yang diteruskan oleh penjadwal dan menggunakan robocopy akan menyalin semua file. Saya mengalami kesalahan penuh saat memeriksa file konfigurasi karena pengguna akan mengeditnya, dan saya akan menerima email tentang masalah apa pun.
Pengguna dapat membaca file cadangan mereka, tetapi tidak dapat menghapus cadangan. Ini memberikan beberapa perlindungan dari kerusakan dari kemungkinan karyawan yang tidak puas.
Mungkin sesuatu yang jauh lebih elegan bisa dibuat dalam .vbs atau PowerShell, tapi saya bukan benar-benar seorang programmer. Kelas pemrograman saya termasuk Cobal dan JCL. Saya ingat saya menyalin skrip ketika saya pergi, tetapi siapa yang tahu di mana mereka sekarang.
sumber
Saya mengatasi masalah dengan mengubah opsi "Jalankan Apakah pengguna masuk atau tidak" menjadi "Jalankan hanya ketika pengguna masuk". Coba ini dapat membantu Anda.
sumber
Membuat skrip powershell ini, menjadwalkan pekerjaan sebagai SISTEM dan mengaturnya agar dijalankan saat reboot memungkinkan saya untuk menggunakan huruf drive dalam skrip saya karena UNC bukan pilihan karena sakit kepala dari masalah lain.
sumber
cmd /c net use
entri pekerjaan sebelum entri pekerjaan salin dalam tugas dan itu memperbaiki masalah saya. Pos Anda adalah yang pertama setelah empat jam menemukan akun cermin yang disarankan yang memberikan solusi mudah. Pertahankan kerja bagus!\\ServerName\ShareName
logika semacam ini. Selain itu, ini tidak harus berupa PowerShell karenaNET USE
berjalan melalui batch juga dan sejauh penjadwalan dengan Penjadwal Tugas sebagai akun SISTEM, Anda dapat melakukannya terlepas dari apa jenis skrip, logika, dll. Anda menjadwalkan untuk dijalankan melalui Tugas Penjadwal.NET USE \\<ServerName>\<ShareName> <password> /user:<domain>\<username>
begitu saja dan tidak harus menentukan huruf drive sama sekali jika otentikasi sendiri untuk berbagi adalah apa yang dibutuhkan daripada huruf drive yang sebenarnya.Coba ubah lokasi "mulai di" menjadi "c: \". Ini sepertinya memperbaikinya bagi saya jadi mungkin sistem mencegah cmd.exe dari mengeksekusi dari \ windows \ system32 \ default sebagai fitur keamanan.
sumber
Saya mengalami masalah yang sama ketika mencoba mengakses r: /xxxfilename.txt dengan drive yang dipetakan windows r: \ server \ share ketika memanggil skrip dari penjadwal tugas windows.
Saya memecahkan menggunakan //server/share/xxxfilename.txt
Harap perhatikan garis miring dikonversi menjadi garis miring.
Sekarang skrip bash cygwin saya berjalan di windows task scheduler dan cygwin shell.
Catatan: perintah " net use " dapat mengakses drive peta di shell tetapi menunjukkan Tidak Tersedia R: ketika saya menjalankan perintah ini di Penjadwal tugas Windows.
sumber
Seperti yang dicatat oleh pengguna lain, mengatur opsi untuk "Menjalankan Apakah pengguna masuk atau tidak" ke "Menjalankan hanya ketika pengguna masuk" tampaknya bekerja. Anda kemudian dapat menggunakan jalur yang dipetakan (mis. Z :) atau jalur server (mis. \\ ServerName \ Path).
Tentu saja, jika Anda menggunakan opsi ini, maka Anda harus melakukan seperti yang dikatakan dan memastikan bahwa Anda telah masuk ke server sebagai pengguna dengan akses ke drive yang relevan. Saya ingat berada di perusahaan yang lebih tua dengan sejumlah pengaturan pekerjaan seperti ini. Suatu hari seseorang "keluar" dari server pekerjaan utama, tidak berharap bahwa itu akan memiliki dampak apa pun karena mereka tidak mematikan mesin dengan cara apa pun ...
Juga, akhir-akhir ini, Windows suka melakukan banyak reboot sistem secara otomatis. Jadi gunakan solusi ini dengan risiko Anda sendiri.
sumber
Juga perhatikan bahwa jika Anda membuat pemetaan dalam skrip dan kata sandi berisi% maka harus ditulis %% agar skrip bekerja dari penjadwal tugas tetapi% untuk bekerja dari commandprompt
sumber
seseorang dapat menggunakan perintah berikut, untuk ditambahkan dalam skrip batch itu sendiri, untuk menjalankan skrip Batch dari tugas jadwal windows untuk mendapatkan dir, file disalin ke sistem lokal menggunakan tugas jadwal Windows; penggunaan bersih Y: "\\ xxx \ xxx \ xxx cd / d Y: pengguna bersih / d Y: / Y
sumber
Terima kasih, saya pikir bahwa menggunakan "mulai di c: \" memecahkan masalah saya, saya akan melacak masalah ini untuk mengkonfirmasi diselesaikan.
Saya mengalami masalah yang sama, jika saya mengklik langsung pada batch itu berjalan dengan sempurna tetapi tidak di bawah tugas yang dijadwalkan.
sumber