PowerShell 4.0實現自動化設置服務器

PowerShell 4.0最大的變化是引入了新的Windows PowerShell期望狀態配置,該機制通過集中管理執行類似功能的電腦,來控制電腦的配置方式。

PowerShell是微軟Windows操作系統中一款強大的操作工具。PowerShell的版本隨Windows的發佈而更新,例如最新的Windows Server 2012 R2/Windows 8.1中提供了最新的PowerShell 4.0版本。預計明年Windows Server新版本將帶來PowerShell 5.0版本。

PowerShell 4.0帶來了很多有助於管理員的新功能,最顯著的是增強了自動化功能。這裏筆者分享Mark Minasi在國外網站windowsitpro上發表的一些PowerShell技巧,這些技巧是作者經過多次試驗而得來,專門針對Windows Server 2012、Windows Server 2012 R2以及Windows 8。

讓我們一起來看看PowerShell是如何通過自動化讓Windows服務器管理員的生活變得簡單的。

技巧1:建立USB 3.0 Installation Stick

使用到的工具:裝載Windows Server 2012 R2安裝鏡像的USB 3.0U盤,以及由Windows系統映像管理器(WSIM)創建的XML文件。WSIM是一個免費下載的自動化和部署工具包(ADK)。WSIM需要你提前回答幾十個與創建的系統相關的問題,從產品密鑰到磁盤禁用Internet Explorer(IE)增強的安全配置。
完成這些問題後,WSIM產生名爲autounattend.xml的文件。如果你將該文件複製到U盤安裝的根目錄下,Windows Setup將會讀取並執行autounattend.xml中的命令。(如果你覺得通過U盤安裝是一種比較傻瓜的辦法,其實並不是這樣的:Server 2012的Setup支持USB 3.0,而且電量不足的情況下所有的刪除和重建工作只需要3-4分鐘。利用這種方法建立Web服務器時,一些安裝工作只花了不到一分鐘的時間。)

技巧2:轉儲Tunnel Adapters, Tweak IPv6

IPConfig的輸出結果貌似太多了。粘貼複製下面這三行命令,你會發現IPConfig的輸出精簡太多了:
Set-NetTeredoConfiguration -Type Disabled
Set-NetIsatapConfiguration -State Disabled
Set-Net6to4Configuration -State Disabled
如果你用的是IPv6,你的組織使用的是Teredo、Intrasite Automatic Tunnel Addressing Protocol(SATAP)或者6to4技術,那麼不用管了。

撤銷的命令,只是取代禁用默認。根據這些原則,我不是建議你完全禁用IPv6,但是我有很多的客戶和同事做的,所以如果你想去IPv6-less,你可以在任何給定網絡適配器使用這個命令:

如果想撤銷這些命令,只需要還原禁用默認。不是在建議你完全禁用IPv6,但如果你想這麼做的話,可以在任何網絡適配器上使用下面這條命令:


Set-NetAdapterBinding -name <NIC name> -DisplayName "Internet Protocol Version 6 (TCP/IPv6)" -Enabled:$false

如果你正在只有一個有線網卡的硬件上創建一臺服務器,命令如下:


Set-NetAdapterBinding -name Ethernet -DisplayName "Internet Protocol Version 6 (TCP/IPv6)" -Enabled:$false

或者,你可以ComponentID跳過冗長的DisplayName值:


Set-NetAdapterBinding -name Ethernet -ComponentID ms_tcpip6

網卡的DisplayName和ComponentID值:


Get-NetAdapterBinding | select InterfaceAlias,DisplayName,ComponentID | OGV

技巧3:設置服務器的TCP/IP和DNS設置

服務器需要靜態IP地址,但設置起來比較麻煩。使用PowerShell New-NetIPAddress和Set-DNSClientServerAddress cmdlet可以簡化這一過程。雖然有點冗長,但遠比Netsh命令更具可讀性。
New-NetIPAddress如下:


New-NetIPAddress -interfacealias <NICname> -IPAddress <address> -DefaultGateway <address> -PrefixLength <nn>
eg. New-NetIPAddress -InterfaceAlias Ethernet -IPAddress 10.30.30.8 -DefaultGateway 10.30.30.1 -PrefixLength 24

PrefixLength指子網掩碼中1的數目。它使用短無類域間路由(IDR)方法來描述一個IPv4子網掩碼,比如255.255.255.0。微軟沒有將-dnsserver選項添加到這個cmdlet,但是有一堆DNS相關的cmdlet能夠方便爲DNS服務器和DNS客戶端服務。

不管怎樣,在網卡上設置一個靜態的DNS服務器地址只需要使用Set-DNSClientServerAddress。它只需要知道分配給哪個網卡以及DNS服務器的IP地址,如


Set-DnsClientServerAddress -InterfaceAlias Ethernet -ServerAddresses 10.30.30.7

如果你想恢復系統並通過DHCP找到DNS服務器,使用–ResetServerAddresses,如


Set-DnsClientServerAddress -InterfaceAlias Ethernet -ResetServerAddresses
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章