Category Archives: PowerShell

Zmiana adresu ip oraz dns w Powershell v3

Zmiana IP, interfejs wskazujemy po nazwie w parametrze InterfaceAlias. Stałe IP:

New-NetIPAddress -IPAddress 192.168.1.51 -InterfaceAlias "Ethernet" -DefaultGateway 192.168.1.1 -AddressFamily IPv4 -PrefixLength 24

Dynamiczne:

Set-NetIPInterface -InterfaceAlias "Ethernet" -DHCP Enabled

Adresy DNS ustawiamy poleceniem Set-DnsClientServerAddress, interfejs wskazujemy parametrem InterfaceAlias tak jak w poleceniu New-NetIPAddress. Stały DNS:

Set-DnsClientServerAddress -InterfaceAlias "Ethernet" -ServerAddresses ("192.168.1.50","192.168.1.51")

DNS z DCHP:

Set-DnsClientServerAddress -InterfaceAlias "Ethernet" -ResetServerAddresses

Wyłącznie IPv6 powershell’em

Wyłączenie IPv6 w windowsie jedną linijką:

New-ItemProperty “HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters\” -Name  “DisabledComponents” -Value  0xffffffff -PropertyType “DWord”

Szybkie sprawdzenie powershellem rozmieszczenia maszyn na klastrze Hyper-V zarządzanym VMM

Uruchamiamy powershell i dodajmy przystawkę VMM poleceniem:

Add-PSSnapin Microsoft.SystemCenter.VirtualMachineManager

Ustawiamy nazwy serwer VMM oraz klastra Hyper-V który nas interesuje:

$VMMServerName = "vmm.lab.local"
$HVClusterName = "hvcluster.lab.local"

Poleceniem Get-VMHostCluster pobieramy informacje o interesującym nas klastrze:

$HVCluster = Get-VMHostCluster -Name $HVClusterName -VMMServer $VMMServerName

Poniższym kodem przechodzimy po kolei przez każdy node klastra i listujemy maszyny wirtualne znajdujące się na nim:

foreach($HVNode in $HVCluster.Nodes)
{
 $HVNode.VMs | Select Name, VMHost
}

Skrypt w całej okazałości:

Add-PSSnapin Microsoft.SystemCenter.VirtualMachineManager
$VMMServerName = "vmm.lab.local"
$HVClusterName = "hvcluster.lab.local"
$HVCluster = Get-VMHostCluster -Name $HVClusterName -VMMServer $VMMServerName
foreach($HVNode in $HVCluster.Nodes)
{
 $HVNode.VMs | Select Name, VMHost
}

Tak wygląda przykładowy wynik skryptu:

Name       VMHost
----       ------
VM-HUB     hv1.lab.local
VM-TS-1-1  hv1.lab.local
VM-TS-1-2  hv1.lab.local
VM-TS-1-3  hv1.lab.local
VM-TS-1-4  hv2.lab.local
VM-TS-2-1  hv2.lab.local
VM-TS-2-2  hv2.lab.local
REMOTEAPP  hv2.lab.local

W przypadku usunięcia “-Name $HVClusterName” ze skryptu będą wylistowane wszystkie maszyny z klastrów zarządzanych przez VMM.

Usuwanie nadmiarowych spacji ze stringa powershellem

Usuwanie nadmiarowych spacji ze stringa powershellem przy pomocy wyrażeń regularnych:

Function Remove-Redundant-Spaces
{
 Param(
 [System.String]$String
 )
 $regex = New-Object System.Text.RegularExpressions.Regex("`\s+")
 $out = $regex.Replace($String," ")
 return $out
}

Użycie:

PS C:\Users\Lukasz> $foo = "Intel(R) Xeon(R) CPU X7350 @ 2.93GHz"
PS C:\Users\Lukasz> $foo
Intel(R) Xeon(R) CPU X7350 @ 2.93GHz
PS C:\Users\Lukasz> $foo = Remove-Redundant-Spaces $foo
PS C:\Users\Lukasz> $foo
Intel(R) Xeon(R) CPU X7350 @ 2.93GHz
PS C:\Users\Lukasz>
WordPress SEO fine-tune by Meta SEO Pack from Poradnik Webmastera
Skip to toolbar