-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSet-IPv6.ps1
43 lines (34 loc) · 1.36 KB
/
Set-IPv6.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<#
.SYNOPSIS
Включает или отключает IPv6 на всех интерфейсах.
.DESCRIPTION
Скрипт выполняет команду включения или отключения
IPv6 на всех интерфейсах.
.PARAMETER Mode
В какое состояние нужно перевести IPv6.
.PARAMETER Check
Предварительно проверить дополнительное условие на интерфейсе.
.INPUTS
Вы не можете передавать в скрипт объекты по коневееру.
.OUTPUTS
Скрипт не генерит возвращаемые объекты.
.NOTES
Версия: 0.1.2
Автор: @ViPiC
#>
[CmdletBinding()]
Param (
[Parameter (Mandatory = $true)]
[ValidateSet("Enable", "Disable")]
[string]$Mode,
[ValidateSet("IPv4")]
[string]$Check
);
$NetAdapterBindings = switch ($Check) {
"IPv4" { Get-NetAdapterBinding -ComponentID "ms_tcpip" | Where-Object -Property "Enabled" | Get-NetAdapterBinding -ComponentID "ms_tcpip6"; }
default { Get-NetAdapterBinding -ComponentID "ms_tcpip6"; }
};
switch ($Mode) {
"Enable" { $NetAdapterBindings | Enable-NetAdapterBinding -ComponentID "ms_tcpip6" -PassThru; }
"Disable" { $NetAdapterBindings | Disable-NetAdapterBinding -ComponentID "ms_tcpip6" -PassThru; }
};