Что такое бесовщина в PowerShell?

Что вызывает ошибку "Не удается выполнить команду из-за следующей ошибки: Неверно задано имя папки" при запуске скрипта из командной строки? Код скрипта, который вызывает ошибку, включает команду "Start-Process -FilePath C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -Credential $credential -NoNewWindow". Но если выполнить эту команду в самом PowerShell, она успешно выполняется. Почему так происходит?
  • 10 октября 2023 г. 4:17
Ответы на вопрос 2
Бесовщина (Flaming) в PowerShell - это термин, который используется для описания небезопасных или проблемных действий, выполняемых с использованием PowerShell.

Ошибка "Не удается выполнить команду из-за следующей ошибки: Неверно задано имя папки" может возникать по разным причинам. Однако, в данном случае ошибка вероятнее всего вызвана несуществующим или неправильно указанным путем (именем) к папке.

Ошибку можно исправить, убедившись в правильности указанного пути к папке. Например, проверьте существование и правильность пути C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe. 

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

Проверьте следующее:
1. Убедитесь, что учетные данные (credential) правильно инициализированы.
2. Проверьте, нет ли ошибок или опечаток в команде Start-Process.
- Указывайте правильный рабочий каталог при запуске.
- Пример: `WorkingDirectory C:\`
- Передавайте параметры, используя переменные.
- Пример: `$argument1 = '-noprofile -command "Start-Process powershell.exe -Verb RunAs -ArgumentList ''-noprofile -file C:\run.ps1''"'`
- Запускайте процесс, указывая нужные аргументы.
- Пример: `Start-Process -FilePath "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -Credential $credential -ArgumentList $argument1`
Похожие вопросы