Чтобы ответить на ваш вопрос:
Проблема, с которой вы сталкиваетесь, заключается в том, что вы сравниваете строку с целым числом в вашем if ($free -lt $minspace) {}
, в этом сравнении $ free - это строка (потому что применяемого вами форматирования), а $ minspace является целым числом.
Если вы хотите проверить место на диске менее 2 ГБ, проверьте его с помощью чисел:
if ($disk.FreeSpace -lt 2GB) {
## Do something when below 2GB limit
}
, если вы введете из 2 ГБ и нажмите клавишу ввода в приглашении PowerShell, вы увидите, что PowerShell преобразует его в целое число: 2147483648
Используйте форматирование строки (с -f), если вы хотите, чтобы числа выглядели более человечно. читаемые, но оставьте их как числа (int, float и т. д. c.), если вы хотите провести численное сравнение.