Перезагрузите компьютер и удерживайте скрипт

4

Я запускаю скрипт Powershell, который требует перезагрузки в середине скрипта. После перезагрузки скрипт выполняет некоторые команды (которые не могут быть выполнены до перезагрузки!). Я перезагружаю компьютер с помощью Restart-Computer , и перезагрузка начинается немедленно. Однако первые команды после команды перезагрузки будут выполнены для!

Итак, перезагрузка запущена, но скрипт все еще работает (в течение нескольких секунд ..). Есть ли способ удержать сценарий, чтобы он не продолжался, пока компьютер выключается?

Restart-Computer -Force
"This is some content" >> C:\Users\Me\Desktop\Log.txt

В приведенном выше примере компьютер перезагрузится, но также будет создан текстовый файл (с надписью «это какой-то контент»). Я хочу перезагрузить компьютер без создания текстового файла. Так что без продолжения сценария. Сейчас я делаю это с Start-Sleep , но должен быть лучший способ ..?

Спасибо.

Jente
источник
3
Если вы не сделаете что-то, чтобы заставить его перезапуститься, скрипт не будет перезапущен после перезагрузки в любом случае. Итак, просто берите весь код после перезагрузки. Если вы заставляете сценарий перезапускать сценарий после перезагрузки, вам следует перезапустить его с параметром командной строки, который указывает, что он выполняется после перезагрузки, и выполнять код на основе наличия этого параметра.
EBGreen
1
Вы можете сделать то, что предложено выше, или завершить работу сценария при перезагрузке, создать второй сценарий и запустить его автоматически после перезагрузки. HKEY_LOCAL_MACHINE \ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ \ Microsoft \ Windows \ CurrentVersion \ Выполнить, например,
cybernard
2
@Jente, у вас есть способ перезапустить сценарий или продолжить его после строки перезагрузки? В любом случае, может быть, лучше просто разделить их на разные файлы / скрипты.
Прорыв
2
Да, определенно разделите его на два отдельных файла или поместите код предварительной перезагрузки и код последующей перезагрузки в функции, а затем вызовите соответствующую функцию на основе параметра командной строки.
EBGreen
1
Я не знаю, должны ли это быть два отдельных файла, но два поведения сценария должны быть разделены переключателем или параметром. -RunAfterRebootВыключатель с условным в самом скрипте будет вполне достаточно.
Бекон Бит