Как изменить этот сценарий powershell, чтобы снять флажок «разрешить компьютеру выключать это устройство для экономии энергии» для Wi-Fi в дополнение к Ethernet - PullRequest
0 голосов
/ 24 июня 2019

У меня есть этот скрипт, и он работает, чтобы снять флажок для адаптера Ethernet, но, как бы я с ним не работал, я не могу заставить его делать то же самое для Wi-Fi.

$NICs = Get-WmiObject Win32_NetworkAdapter -filter "AdapterTypeID = '0' AND PhysicalAdapter = 'true' AND NOT Description LIKE '%wireless%' AND NOT Description LIKE '%virtual%' AND NOT Description LIKE '%WiFi%' AND NOT Description LIKE '%Bluetooth%'"
Foreach ($NIC in $NICs)
{
    $powerMgmt = Get-WmiObject MSPower_DeviceEnable -Namespace root\wmi | where {$_.InstanceName -match [regex]::Escape($nic.PNPDeviceID)}
    If ($powerMgmt.Enable -eq $True)
    {
         $powerMgmt.Enable = $False
         $powerMgmt.psbase.Put()
    }
}

Попытался удалить все строки И НЕ. Пробовал несколько других сценариев, которые я нашел в сети, но безрезультатно.

$NICs = Get-WmiObject Win32_NetworkAdapter -filter "AdapterTypeID = '0' AND PhysicalAdapter = 'true' AND NOT Description LIKE '%wireless%' AND NOT Description LIKE '%virtual%' AND NOT Description LIKE '%WiFi%' AND NOT Description LIKE '%Bluetooth%'"
Foreach ($NIC in $NICs)
{
    $powerMgmt = Get-WmiObject MSPower_DeviceEnable -Namespace root\wmi | where {$_.InstanceName -match [regex]::Escape($nic.PNPDeviceID)}
    If ($powerMgmt.Enable -eq $True)
    {
         $powerMgmt.Enable = $False
         $powerMgmt.psbase.Put()
    }
}

Я хочу снять флажок «Разрешить компьютеру отключать это устройство для экономии энергии» в разделе «Управление питанием для адаптера Wi-Fi» в разделе «Сетевые подключения».

1 Ответ

0 голосов
/ 25 июня 2019

Командлет Powershell Get-NetAdapter можно использовать для определения интерфейсов WLAN. Для этого вы можете использовать свойство PhysicalMediaType.

В этом случае вы хотите искать адаптеры WLAN, поэтому сопоставьте его с 'Native 802.11'. Для более старых операционных систем иногда приходится сопоставлять его с 'Wireless LAN'.

Чтобы получить все адаптеры WLAN, вы можете использовать это в своем скрипте:

$NICs = Get-NetAdapter | Where-Object {$_.PhysicalMediaType -eq 'Native 802.11' -or $_.PhysicalMediaType -eq 'Wireless LAN'}
...