При вводе where в PS это не то же самое, что и выполнение where.exe
PS C:\Users\Bill> where <press ENTER>
cmdlet Where-Object at command pipeline position 1
Supply values for the following parameters:
Property:
Поэтому, когда вы вводите where calc, он выполняет Where-Object calc (псевдоним Where-Object равен where и ?) и, таким образом, ничего не возвращает и не выполняет where.exe calc.
Командлет Get-Command (псевдоним gcm) можно использовать вместо where.exe. Вот пример функции, чтобы сделать функцию Get-Command точно так же, как where.exe. Если вы поместите это в свой профиль PowerShell, он всегда будет доступен в вашем сеансе.
function which ($command) {
Get-Command -Name $command -ErrorAction SilentlyContinue |
Select-Object -ExpandProperty Path -ErrorAction SilentlyContinue
}