Вам не нужен iconv, штатные MultiByteToWideChar и WideCharToMultiByte работают и проблем не имеют.
Если добавляется мусор — ищите проблемы в своей программе. Видимо, выделяете буфер меньшего размера, чем нужно.
Если же действительно есть необходимость выполнять linux-команды, то можно в C:\windows\command, например, создать shell-скрипт. Его вызывать из Wine (он будет доступен), а уже в нём будут доступны все команды Linux.