А инсталлятор у программы есть? Обычно в инсталляторах определить наличие .NET и поставить при отсутствии делается элементарно, стандартными средствами.
Как вариант, проверить наличие файлов, свойственных .NET 4.6, и если их нет, скачать с сервера M$ инсталлятор (тут я точно не помню, раньше URL были фиксированными, download.microsoft.com/..., сейчас могло поменяться), после чего запустить его в unattended режиме. Через установку компонентов неты старше 3.5 не ставятся.
Естественно, проверялка должна быть написана на нативном для винды фреймворке, или хотя бы на VB6 (msvbvm в виндах с поддержкой .NET 4.6 имеется).
Никак. MS .NET Framework 4.6 жёстко вшит в Windows 10, и не входит в список компонентов лицензионных Windows 7/8/8.1. На пиратках свежий .NET обычно ставится без спросу (аналогично Win10), и тоже не является обычным компонентом.