Я пытаюсь настроить громкость микрофона на определенный уровень (например, 100) с помощью PowerShell или командной строки в Windows 11. Мне нужен надежный метод, который можно выполнить программно без сторонних приложений.
Я хотел бы настроить первую полосу «Вывод VoiceMeeter»:
Вот что я пробовал до сих пор:
Использование PowerShell с классами WMI Я попытался управлять настройками звука с помощью классов WMI, но столкнулся с проблемами с несуществующими классами и методами:
$AudioEndpointDevices = [wmiclass]"ROOT\CIMV2:Win32_PerfRawData_Counters_AudioEndpoint"
Это привело к ошибке: «Невозможно преобразовать значение «ROOT\CIMV2:Win32_PerfRawData_Counters_AudioEndpoint» в тип « System.Management.ManagementClass». Erreur: «Non trouvé»» с сообщением о том, что класс WMI не найден.
Использование модуля AudioDeviceCmdlets
Я успешно перечислил и получил аудиоустройства с помощью Get-AudioDevice
, но не нашел доступной команды, например Set-AudioDeviceVolume
, для установки громкости:
Get-AudioDevice -List | Where-Object { $_.Type -eq "Recording" }
Этот шаг сработал нормально, но я не смог приступить к настройке громкости.
Учитывая эти проблемы, есть ли у кого-нибудь рабочее решение для программной настройки громкости микрофона с помощью собственных команд PowerShell или другого подхода из командной строки в Windows? Я бы предпочел по возможности избегать сторонних инструментов, но я готов использовать небольшие утилиты, если они являются единственным решением.
Хорошо, спасибо @js2010.
После более внимательного изучения документации AudioDeviceCmdlets на GitHub я понял, что был довольно близок к решению, используя второй подход. Стало понятно, что задачу нужно выполнить в два этапа: сначала выбрать идентификатор аудиоустройства, а затем выполнить над ним нужную операцию. Вот полный сценарий PowerShell, который устанавливает громкость микрофона на 100 %:
# Script to set microphone volume to 100% using PowerShell
# Import the necessary module
Import-Module AudioDeviceCmdlets
# Specify the device by its ID
$microphoneId = "{0.0.1.00000000}.{a849033f-716e-4d33-80cc-9c5f49b913ba}"
# Select the specific microphone
Set-AudioDevice -Id $microphoneId
# Set the microphone volume to 100%
Set-AudioDevice -RecordingCommunicationVolume 100
# Confirmation output
Write-Output "The microphone volume has been set to 100%."
Использование Windows API stackoverflow.com/questions/255419/… Кто-то там также прокомментировал модуль AudioDeviceCmdlets.