Isso é uma coisa muito irritante, para executar qualquer um .exe
que esteja dentro do diretório atual no Powershell, sou obrigado a usar um .\
adiante.
Por exemplo, se eu tenho o programa fastboot.exe
dentro da pasta atual, não posso simplesmente digitar fastboot
, como dentro cmd
. Sou forçado a digitar:
.\fastboot
Se eu apenas digitar fastboot
(sem .\
eu receber algum erro como:
O termo 'inicialização rápida' não é reconhecido como o nome de um cmdlet, função, arquivo de script ou programa operável. Verifique a ortografia do nome ou, se um caminho foi incluído, verifique se o caminho está correto e tente novamente.
+ fastboot + ~~~~~~~~ + CategoryInfo: ObjectNotFound: (fastboot: String) [], CommandNotFoundException + FullyQualifiedErrorId: CommandNotFoundException
Como evitar isso?
fonte
Respostas:
O PowerShell não carrega comandos do local atual por padrão.
Então você tem duas opções
Reduza a barreira de segurança adicionando o diretório atual ao seu caminho
Entre no hábito de sempre prefixar o comando com
.\
fonte
cmd.exe
comportamento era inseguro. Se essa é uma verdadeira vulnerabilidade de segurança,cmd.exe
tenho certeza que a Microsoft precisaria atualizá-la ....
ao PATH então PS é tão seguro quanto cmd?cmd
se comporta de maneira diferente a esse respeito, mas eu diria que é deixado para compatibilidade com versões anteriores. Afaik, este é um problema de segurança no Windowscmd
. Se eu conseguir que um administrador de domínio abra um prompt de comando no meu computador, navegue até uma pasta sob meu controle onde coloquei umdir
executável malicioso : posso fazer com que ele faça o que eu quiser. Você deve postar sua pergunta como uma nova pergunta.