Διορθώστε την προγραμματισμένη εργασία που δεν θα εκτελεστεί για το αρχείο .BAT

Εάν διαθέτετε ένα αρχείο .BAT και προσπαθείτε να το κάνετε να εκτελείται αυτόματα χρησιμοποιώντας το Task Scheduler στα Windows , μπορεί να αντιμετωπίσατε το πρόβλημα όπου απλά δεν εκτελείται εκτός εάν εκτελέσετε μη αυτόματα την εργασία.

Δημιούργησα ένα αρχείο δέσμης που διαγράφει τα πάντα μέσα σε έναν προσωρινό φάκελο κάθε φορά που ξεκινά ο υπολογιστής. Δημιούργησα μια βασική εργασία στο Task Scheduler και ήλπιζα για το καλύτερο. Δυστυχώς, δεν συνέβη τίποτα κατά την εκκίνηση του υπολογιστή μου. Μετά από πολλές δοκιμές και λάθη, κατάλαβα πώς να εκτελέσω το σενάριο.

Σε αυτό το άρθρο, θα σας καθοδηγήσω στις ρυθμίσεις και τις άδειες που πρέπει να προσαρμόσετε για να εκτελείται το αρχείο δέσμης χωρίς μη αυτόματη παρέμβαση.

Βήμα 1: Ελέγξτε τα δικαιώματα File/Folder

Το πρώτο βήμα για την επίλυση αυτού του προβλήματος είναι να διασφαλίσετε ότι ο λογαριασμός που χρησιμοποιείτε για την εκτέλεση της δέσμης ενεργειών στο Task Scheduler έχει δικαιώματα πλήρους ελέγχου(Full Control) στον φάκελο που περιέχει το σενάριο, το ίδιο το σενάριο και τυχόν φακέλους/αρχεία που αγγίζει το σενάριο όταν εκτελείται.

Για παράδειγμα, δημιούργησα το ακόλουθο σενάριο δέσμης παρακάτω:

set folder="C:\test"
cd /d %folder%
for /F "delims=" %%i in ('dir /b') do (rmdir "%%i" /s/q || del "%%i" /s/q)

Αποθήκευσα το αρχείο .BAT στο φάκελο Documents. Η διαδρομή είναι C:\Users\username\Documents . Πήγα στο C:\Users\username, έκανα δεξί κλικ στο φάκελο Documents και έκανα κλικ στο (Documents)Properties . Στη συνέχεια, έκανα κλικ στην καρτέλα Ασφάλεια .(Security)

Όπως μπορείτε να δείτε, ο λογαριασμός χρήστη Aseem έχει προστεθεί ρητά και έχει λάβει το δικαίωμα πλήρους ελέγχου.(Full Control) Τώρα πρέπει να κάνετε το ίδιο πράγμα για το φάκελο που περιέχει το σενάριο και για το ίδιο το σενάριο. Μην υποθέσετε απλώς ότι εάν δώσετε δικαιώματα στο φάκελο που περιέχει το σενάριο, είστε έτοιμοι να προχωρήσετε, γιατί δεν είστε. Τέλος, ορίστε δικαιώματα σε όλα τα αρχεία και τους φακέλους με τους οποίους θα αλληλεπιδράσει το σενάριο.

Στην περίπτωσή μου, έπρεπε να πάω στο C:\test , να κάνω δεξί κλικ σε αυτόν τον φάκελο και να προσθέσω τον λογαριασμό χρήστη μου εκεί με δικαιώματα πλήρους ελέγχου(Full Control) . Είναι κάπως ενοχλητικό που πρέπει να το κάνετε αυτό, αλλά είναι ο μόνος τρόπος για να εκτελέσετε το σενάριο.

Σημείωση: Ο λογαριασμός που χρησιμοποιείται για την εκτέλεση του σεναρίου πρέπει να αποτελεί μέρος της τοπικής ομάδας Administrators στον υπολογιστή. Στην περίπτωσή μου, ο λογαριασμός Aseem είναι λογαριασμός διαχειριστή και επομένως μέρος της τοπικής ομάδας Administrators. (Note: The account that is being used to run the script has to be part of the local Administrators group on the computer. In my case, the Aseem account is an administrator account and therefore part of the local Administrators group. )

Βήμα 2: Ελέγξτε τις ρυθμίσεις του Προγραμματιστή εργασιών(Task Scheduler Settings)

Τώρα ας πάμε στο Task Scheduler και αλλάξτε τις κατάλληλες ρυθμίσεις εκεί. Ανοίξτε το Task Scheduler και βρείτε την εργασία σας στην ενότητα Active Tasks . Θα πρέπει να παρατίθενται με αλφαβητική σειρά.

Κάντε διπλό κλικ σε αυτό και θα ανοίξει η εργασία από μόνη της στο ίδιο παράθυρο. Για να επεξεργαστείτε την εργασία, θα πρέπει να κάνετε δεξί κλικ πάνω της και να επιλέξετε Ιδιότητες(Properties) .

Υπάρχουν πολλές καρτέλες και μερικά πράγματα πρέπει να ελεγχθούν και να αλλάξουν εδώ. Αρχικά, στην καρτέλα Γενικά(General) , πρέπει να ελέγξετε τον λογαριασμό χρήστη που χρησιμοποιείται για την εκτέλεση της εργασίας. Στην περίπτωσή μου, είναι ο λογαριασμός Aseem , στον οποίο είχα δώσει δικαιώματα νωρίτερα στο σύστημα αρχείων και ο οποίος είναι μέρος της ομάδας Administrators στον υπολογιστή.

Στη συνέχεια, πρέπει να επιλέξετε την επιλογή Εκτέλεση αν ο χρήστης είναι συνδεδεμένος ή όχι( Run whether user is logged on or not) και επιλέξτε Windows Vista, Windows Server 2008 στο πλαίσιο Ρύθμιση παραμέτρων για(Configure for) .

Στην καρτέλα Ενέργειες(Actions) , πρέπει να επιλέξετε το σενάριο, να κάνετε κλικ στο Επεξεργασία(Edit) και στη συνέχεια να προσθέσετε τη διαδρομή προς το φάκελο που περιέχει το σενάριο στο πλαίσιο Έναρξη σε (προαιρετικό)(e Start in (optional)) . Αυτό μπορεί να φαίνεται περιττό, αλλά δεν είναι. Στην περίπτωσή μου, έβαλα το C:\Users\Aseem\Documents\ στο πλαίσιο.

Τώρα κάντε κλικ στο OK για να αποθηκεύσετε τις ρυθμίσεις. Όταν το κάνετε αυτό, μπορεί να εμφανιστεί ένα παράθυρο διαλόγου όπου πρέπει να εισαγάγετε τον κωδικό πρόσβασης για τον λογαριασμό χρήστη που θα εκτελέσει την εργασία. Αυτό αναδεικνύει μια άλλη απαίτηση. Δεν μπορείτε να χρησιμοποιήσετε έναν λογαριασμό που δεν έχει κωδικό πρόσβασης. Ο λογαριασμός χρήστη πρέπει να έχει κωδικό πρόσβασης για να εκτελεστεί η εργασία.

Τέλος, θα πρέπει να εκτελέσετε την εργασία χειροκίνητα μία φορά στο Task Scheduler για να βεβαιωθείτε ότι εκτελείται. Εάν εκτελείται σωστά με μη αυτόματο τρόπο αφού αλλάξετε όλες τις ρυθμίσεις, τότε θα πρέπει να εκτελεστεί όταν υποτίθεται ότι πρέπει να ενεργοποιηθεί. Στην περίπτωσή μου, υποτίθεται ότι θα συνέβαινε κατά την εκκίνηση και αφού έκανα τις αλλαγές, όλα λειτουργούσαν καλά.

Σημειώστε ότι εάν το σενάριό σας έχει πρόσβαση σε διαφορετικούς υπολογιστές σε έναν τομέα κατά την εκτέλεση, θα πρέπει να προσπαθήσετε να χρησιμοποιήσετε τον λογαριασμό διαχειριστή τομέα για να εκτελέσετε την εργασία. Αυτό θα διασφαλίσει ότι ο λογαριασμός έχει αρκετά δικαιώματα για πρόσβαση στους απομακρυσμένους υπολογιστές.

Ένα άλλο στοιχείο που πρέπει να σημειώσετε είναι εάν το σενάριό σας έχει πρόσβαση σε πόρους σε ένα κοινόχρηστο στοιχείο δικτύου. Εάν το σενάριό σας χρησιμοποιεί γράμματα για πρόσβαση στο δίκτυο, ενδέχεται να μην εκτελεστεί. Για παράδειγμα, αντί να χρησιμοποιήσετε το F:\data\ , θα πρέπει να χρησιμοποιήσετε το \\machinename\share_name\data\ Â στο σενάριο. Εάν εξακολουθείτε να μην μπορείτε να εκτελέσετε το σενάριό σας, δημοσιεύστε ένα σχόλιο εδώ και θα προσπαθήσω να σας βοηθήσω. Απολαμβάνω!



About the author

Είμαι επαγγελματίας τεχνικός ήχου και πληκτρολογίου με πάνω από 10 χρόνια εμπειρία. Έχω εργαστεί στον εταιρικό κόσμο, ως σύμβουλος και διευθυντής προϊόντων, και πιο πρόσφατα, ως μηχανικός λογισμικού. Οι δεξιότητες και η εμπειρία μου μου επιτρέπουν να εργάζομαι σε διάφορα είδη έργων από μικρές επιχειρήσεις έως μεγάλες εταιρείες. Είμαι επίσης ειδικός στα Windows 11 και εργάζομαι πάνω στο νέο λειτουργικό σύστημα για πάνω από δύο χρόνια τώρα.



Related posts