Произошла исключительная ситуация wshshell exec не удается найти указанный файл

Обновлено: 06.07.2024

То есть ожидал полноценную командную строку с возможностью ввода/вывода.

Скажите, а Вы совсем не догадывались что именно я ожидал увидеть? А если у Вас были догадки, скажите, среди них была "открывая командную строку ожидал увидеть немецкое порно"?

Последний раз редактировалось morebeauty, 12-11-2013 в 11:10 .

Скажите, а Вы совсем не догадывались что именно я ожидал увидеть? А если у Вас были догадки, скажите, среди них была "открывая командную строку ожидал увидеть немецкое порно"? »

Нет, на это моей фантазии не хватило.

То есть ожидал полноценную командную строку с возможностью ввода/вывода. »

Вы и получили полноценную командную строку с возможностью ввода/вывода. Программного — поскольку потоки ввода, вывода и ошибок (stdin, stdout, stderr) перехвачены. Поскольку перехвачен поток вывода — вывод идёт к объекту WshExec, а не на консоль — посему Вы не видите вывод в окне консоли. Поскольку перехвачен поток ввода — ввод ожидается от объекта WshExec, а не из консоли — посему Вы не можете осуществить ввод в окно консоли: этот ввод некому обрабатывать. С потоком ошибок аналогично потоку вывода.

Пример программной работы с потоками дочернего консольного приложения:

Назначение: создаёт новый дочерний процесс (т.е. процесс с теми же переменными среды), который запускает заданное консольное приложение. Возвращается объект "WshScriptExec", который позволяет контролировать ход выполнения запущенного приложения и обеспечивает доступ к потокам StdIn, StdOut и StdErr этого приложения.

<Command> - строка, командная строка запуска приложения.

Описание: с помощью данного метода можно запускать и графические оконные приложения. В этом случае возвращаемый объект "WshScriptExec" полезен тем, что позволяет получить идентификатор запущенного процесса, который можно использовать, например, для активизации приложения с помощью метода AppActivate.

Set WshShell = CreateObject("WScript.Shell")
Set WshExec = WshShell.Exec("nslookup 127.0.0.1")
WScript.Sleep 7000
Set TextStream = WshExec.StdOut
Str = vbNullString
While Not TextStream.AtEndOfStream
Str = Str & Trim(TextStream.ReadLine()) & vbCrLf
Wend
MsgBox Str

мне кажется, что то, что вы ожидаете увидеть, выводится в этот самый stdout, который надо ещё перехватывать и обрабатывать. Так что тут надо искать другие пути.

Ну тогда вопрос такой.
Как мне открыть командную строку с возможностью ей управлять и иметь информацию о выводе в скрипте.
Мне это нужно для того, чтобы, например, подключиться по telnet к чему либо и автоматом ввести логин и пароль при приглашении их ввести. Ну и выполнить так же автоматом нужный набор команд. И само собой иметь возможность ввести команды самостоятельно с клавиатуры. Ну и еще с несколькими утилитами требуется работа.
SendKeys + Sleep не предлагать.

Если это будет собственная консоль для ввода/вывода заместо стандартной, то необходимо еще и как то скрыть это черное окошко (зачем оно будет висеть на экране смущать людей). Ну и наброски на Delphi или на C++, чтобы я хоть имел представление с чего начать.

Хотя я все же представляю себе это так. Открывается консольное окошко, скрипт все с него перехватывает, потом каким то образом отключает перехват и отправляет перехваченное снова в окно, чтобы это было видно пользователю. Ну или как то так.

Привет, сейчас речь пойдет об ошибке Windows Script Host «Не удается найти указанный файл», которая возникает в операционных системах Windows, а также мы разберем причины возникновения данной ошибки и что нужно делать, чтобы подобного рода ошибки не появлялись в будущем.

Чтобы сразу было понятно, о каких ошибках мы сейчас будем разговаривать, давайте посмотрим на окно с этой ошибкой.

Скриншот 1

Сегодня я покажу, как устранить ошибку в обоих случаях. Но сначала давайте поговорим о причинах возникновения этих ошибок.

Причины возникновения ошибки Windows Script Host «Не удается найти указанный файл»

Примечание! Существуют и другие причины появления ошибок Windows Script Host, но они менее распространены, в данном материале речь идет именно об ошибках, связанных с вредоносными скриптами.

Что делать, чтобы такие ошибки не появлялись?

Что для этого нужно:

  • Наличие антивирусной программы с актуальными базами данных, т.е. она должна постоянно обновляться. Также необходимо периодически запускать полную проверку компьютера на наличие вирусов. Если не хотите платить за антивирус, можно использовать и бесплатные варианты, для домашнего компьютера они, на самом деле, не так плохи. Несколько лет назад в материале «Какой антивирус установить себе на домашний компьютер?» я рассматривал различные антивирусные решения и представил перечень продуктов, которые заслуживают внимания, основывался я на рейтингах, отзывах и на собственном опыте работы с антивирусами, поэтому если кому интересна эта информация, можете ознакомиться;
  • В большинстве случаев за компьютером работают от имени учетной записи с правами администратора. Но это неправильно, так как права администратора нужны только для выполнения административных задач, в некоторых случаях для Вас это может быть не очень удобно, но большинству вирусов, для того чтобы сделать то, для чего они были разработаны, нужны как раз права администратора. И если Вы работаете с правами администратора, то для вирусов это идеальные условия, так как они без проблем могут установить что-нибудь, изменить параметры системы и так далее. Поэтому рекомендуется работать от имени пользовательской учетной записи, а права администратора использовать при необходимости (Вам нужно просто создать отдельную пользовательскую учетную запись и работать от ее имени);
  • Не стоит посещать сомнительные сайты, скачивать файлы, формат которых не соответствуют своему назначению, например, как я уже говорил музыку в формате exe, как Вы понимаете, аудио файлов в таком формате быть не может. Это также относится и к играм, т.е. не нужно скачивать игры из непроверенных источников. Другими словами, данный пункт подразумевает быть немного осторожней, когда пользуетесь Интернетом и пытаетесь скачать какие-то данные.

Если Вы будете выполнять хотя бы вышеперечисленные действия, то возможностей у вируса заразить Ваш компьютер будет намного меньше, и, соответственно, ошибки, которые мы рассматриваем в данной статье, появляться не будут.

Устранение ошибки, когда рабочий стол доступен

Итак, для того чтобы устранить ошибку нам нужно выяснить, как запускается скрипт, как я уже сказал, начинаем искать в планировщике заданий. Для этого запускаем его, нажимаем «Меню Пуск -> в поиске пишем Планировщик заданий»

Скриншот 2

Скриншот 3

Советую сразу начать поиск с просмотра списка активных задач и истории запуска этих задач. Если журнал всех заданий выключен, то включите его и перезагрузитесь, затем после того как появится ошибка, снова зайдите в планировщик, где Вы сможете увидеть название последних выполненных задач.

Скриншот 4

Скриншот 5

После того как Вы нашли нужное задание или задания можете смело удалять его, затем перезагружайтесь, после чего ошибка должна исчезнуть.

Если задание Вы не нашли, то можете проделать действия, которые описаны ниже (т.е. проверить реестр).

Устранение ошибки, когда рабочий стол не запускается

В этом случае вирус поработал с реестром, а именно изменил параметры запуска системы.

Для того чтобы устранить данную ошибку, необходимо запустить редактор реестра и восстановить значения параметров по умолчанию. Давайте сначала запустим рабочий стол, для этого:

  1. Нажимаем сочетание клавиш ctrl+alt+del;
  2. Выбираем пункт «Запустить диспетчер задач»;
  3. В меню нажимаем «Файл -> Новая задача (Выполнить…)»;
  4. В поле открыть вводим «explorer.exe».

После этого рабочий стол запустится.

Скриншот 6

Скриншот 7

Теперь запускаем редактор реестра. Для этого нажимаем «Пуск -> в поиск вводим regedit».

Скриншот 8

Затем находим раздел

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon для 32 разрядных систем

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows для 64 разрядных.

И проверяем параметры Shell и Userinit. Их значения должны равняться «explorer.exe» и «C:\Windows\system32\userinit.exe,» соответственно.

Скриншот 9

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

У меня на этом все, если Вы столкнулись с подобного рода ошибкой и устранили ее каким-то другим образом, поделитесь решением с другими в комментариях. Пока!

Вот соответствующая часть моего сценария:

Спасибо за любую помощь!

1 ответ

Вы можете вызвать свой сценарий завершения работы, просто запустив его. Однако дайте ему полный путь, а не относительный путь. Сценарии, запускаемые из планировщика задач, часто имеют разные "starting folders", чем те, которые запускаются вручную, поэтому не полагайтесь на то, что ваш сценарий найдет другой относительно. Кроме того, вам придется добавить Chr(34) до и после вашего пути, чтобы учесть любые пробелы.

Наконец, зачем запускать скрипт, а затем спрашивать , нужно ли завершать работу? Почему бы просто не запустить скрипт после того, как пользователь ответил, и тогда вам не придется беспокоиться о завершении запущенного процесса.

Похожие вопросы:

Когда я запускаю свой проект BlackBerry в Eclipse, я получаю следующую ошибку: Ошибка: не удается запустить программу jar: CreateProcess Ошибка=2, система не может найти указанный файл Как это.

Я набираю: C:\Program Files (x86)\Android\android-sdk\tools>zipalign [- f] [- v] B10816062011-unaligned.apk B10816062011-aligned.apk он возвращается: Система не может найти указанный файл. Это.

У меня есть программа в файле jar с несколькими файлами csv, расположенными в корневом каталоге файла jar. Мой код для импорта файлов в программу выглядит следующим образом : public static final.

У меня есть проблема с модулем Pydub, работающим в Windows и Linux. Когда я пытаюсь открыть файл mp3 таким образом: from pydub import AudioSegment sound = AudioSegment.from_mp3(test.mp3) Консоль.

import os def create_temporary_directory(path, name): if not os.path.exists(os.path.join(path, name)): os.mkdir(os.path.join(path, name)) if __name__ == __main__: name = 'tmp'.

ошибка keytool: java.io.FileNotFoundException: api.sepa.express.crt (система не может найти указанный файл) Я пробовал различные примеры, которые я нашел в stackoverflow. keytool -importcert -file.

Как я могу решить эту проблему, показанную на рисунке? .. / tools/lib/proguard.cfg (система не может найти указанный файл)

Я хочу переименовать все файлы в тестовой папке как 1, 2, 3 и так далее import os, sys, path path = rF:\test dirs = os.listdir(path) print(dirs) count = 1 for files in dirs: str1 = str(count).


На некоторых компьютерах не запускается программа через WScript.Shell

Не знаю даже куда копать.

Только вчера столкнулся с той же проблемой. Причем exec работате, а run нет. Выскакивает ошибка 80070002- система не может найти файл. А мне нужно было запустить именно через RUN приложение в скрытом виде. Связано это с тем, что в системных папках с длинными именами система почему то файл не находит. Вышел из положения, приобразовав путь к файлу в систему 8+3.
Мой файл в папке: C:\Program Files\Common Files\Gadget Terminal\GadgetTerminal.exe.
Циклом прошел через команду ADIR по всем веткам и создал коректный короткий путь: C:\Progra

1\GadgetTerminal.exe и все заработало/

Циклом по всем веткам пути проходил именно для возврата корректного значения. Мало ли, вдруг на диске есть папка Program Files и Папка ProgrammFiles. Какая из них будет первая,- не известно. Наверное есть более простой и правильный способ вернуть короткий путь, но я его не знаю и не заморачивался на поиск. На время работы программы это не влияет

Исправлено: Chemberzhy, 26.02.13 14:19

А дополнительные кавычки не помогают?

Смотреть журнал Windows на предмет ошибок, возможно, там есть какие-то комментарии.


------------------
Совершенство - это не тогда, когда нельзя
ничего прибавить, а тогда, когда нечего убавить. Мне не помогло. Это первое, что я попробовал. Причем, что интересно. Любые пути в HOME папке отрабатывают без проблем, а вот за ее пределами- болт с газовой резьбой
Может дело именно в Винде-7?

Похоже, что не достаточно прав или не используются двойные кавычки в ограничении строк в путях с пробелами.
Например,
cmd /c "с:\Program Files\Prog\моя программа.exe" /с param1


------------------
Совершенство - это не тогда, когда нельзя
ничего прибавить, а тогда, когда нечего убавить. Chemberzhy
Может дело именно в Винде-7? Влад Колосов
Смотреть журнал Windows на предмет ошибок, возможно, там есть какие-то комментарии. В журналах нет вообще ничего.
Я повторюсь. Я сказал, что на некоторых компьютерах.
Видимых различий между компьютерами (системой) на которых запускается и теми на которых нет я не нашел.
Пути везде одинаковые если речь о кавычках. Владимир Максимов
А дополнительные кавычки не помогают?


Исправлено: FoxShip, 27.02.13 12:32

Например, запрет на запуск exe с сетевых шар. Либо вообще всех, либо неподписанных. Смотреть настройки безопасности IE (и там же добавлять этот server-ivc в доверенную зону - с которой разрешён запуск exe-ников).
Я так подозреваю, что проблему можно увидеть и при "ручном" запуске этого exe с данных машин - возможно она проявится не в том что он "вообще не будет работать", а в том что появятся всякие диалоги UAC-а типа "Чо, разрешить потенциальный вирус, а нафига тебе это".

Читайте также: