Я не уверен, что принял бы решение. Это не совсем то или другое ... вы можете выбрать оба варианта.
WMI может потребляться разными способами, а не только PowerShell. Почему бы не написать инструментарий управления в PowerShell, а затем обернуть этот WMI в некоторые ориентированные на задачи командлеты, чтобы упростить работу администраторов? Это то, что некоторые команды разработчиков MS выбирают, особенно когда у них есть другие потребители WMI, которых они хотят продолжать поддерживать.
Если у вас уже есть подходящий код .NET, его превращение в командлет может быть быстрее, чем превращение его в поставщика WMI. Если дело обстоит именно так, и скорость - это проблема, то пойдем с тем, что проще. Но независимо от того, что вы делаете, вы всегда можете поместить его в командлет PowerShell для администраторов, что, безусловно, является рекомендуемым подходом.