Попробуйте:
Get-WmiObject -ComputerName Server_Name -Class Win32_logicaldisk -Filter "DriveType = '3'" | ForEach {
Read-Host -prompt ('Criptam' + $letter + '?')
$letter = "$($_.DeviceId):"
& "manage-bde.exe" -on $let -recoverypassword -skiphardwaretest
}
Или
$disk=Get-WmiObject -Class Win32_logicaldisk -Filter "DriveType = '3'" | Select -ExpandProperty DeviceID
ForEach($letter in $disk){
Read-Host -Prompt ("Criptam"+ $letter + "?")
$let = $letter + ":"
manage-bde.exe -on $let -recoverypassword -skiphardwaretest
}
Добавлен параметр -ComputerName для указания имени удаленного хоста в Get-WmiObject
конвейерный вывод Get-WmiObject в ForEach
Фиксированная часть Read-Host, строка приглашения прерывается без скобок
Изменено $ let
Используется оператор (&) для запуска manage-bed.exe
Самой большой ошибкой было то, что Select- Объект, вы получили список дисков не в виде массива, и это можно сделать с помощью -ExpandProperty, который выбирает свойства как массив без заголовка.