Назад | Перейти на главную страницу

Был ли NETSH заменен на PowerShell (декабрь 2012 г.)

Простой вопрос: могу ли я избежать использования NETSH в Windows Server 2008 R2 и вместо этого использовать PowerShell CmdLets для управления такими вещами, как HTTP?

Если да, то какие CmdLet помогут мне начать работу и являются ли они частью дополнительного модуля?

Powershell работает поверх .NET, поэтому вы можете делать с http все, что захотите, например, вот простая функция RSS:

function RSS{
    Param ($Rssurl='http://news.google.com/news?pz=1&cf=all&ned=us&hl=en&output=rss')
    $proxy = New-Object System.Net.WebProxy("http://10.10.18.18:8080")
    $Webclient = new-object net.webclient 
    $Webclient.proxy=$proxy
    $Webclient.UseDefaultCredentials = $True
    $rss = [xml]$Webclient.DownloadString($Rssurl)
    $rss.rss.channel.item | ForEach {
    New-Object PSObject -Property @{
        Title = $_.Title
        PublicationDate = (Get-Date $_.PubDate)
        Link = $_.Link
    }
}

вот другой пример изменения настроек сетевой карты на чистом PS:

$card=Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter "IPEnabled=true"
if($profile -eq 'dhcp' ){
    $card.EnableDhcp()
    write-host OK -ForegroundColor 'green'
    exit
}
# manual IP settings :
$card.EnableStatic($address,'255.255.255.0')
$card.SetGateways($gw)
$card.SetDNSServerSearchOrder(@($dns,'10.24.1.8'))

В Powershell 3.0 есть модуль NetAdapter, который, по-видимому, охватывает функциональность netsh, однако модуль поставляется только с Windows 8 или Windows Server 2012, так что вы все еще застряли с netsh или CIM / WMI в Windows Server 2008 R2.

Хотя это не связано с вопросом netsh, версия 3 добавила командлет invoke-webrequest, который включен в 2008 R2 и Windows 7.