简单的问题:我可以避免在Windows Server 2008 R2中使用NETSH,而是使用PowerShell CmdLets来操纵HTTP之类的东西吗?
如果是这样,一些CmdLets是什么让我开始,他们是一些额外的模块的一部分?
Powershell 3.0中有一个NetAdapter模块,它涵盖了netsh的function,但是该模块只与Windows 8或Windows Server 2012一起提供,因此您仍然在Windows Server 2008 R2上使用netsh或CIM / WMI。
虽然与netsh问题无关,但版本3添加了一个在2008 R2和Windows 7中包含的invoke-webrequest cmdlet。
powershell运行在.NET的顶部,所以你应该可以做任何你想要的HTTP例如这里是一个简单的RSSfunction:
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'))