WindowsServerVersion1709管理之入門篇

牧羊的人發表於2018-04-04

相信有部分同學們會有這樣的體驗,在公有云上購買了Windows Server Version 1709資料中心版的虛擬機器,通過遠端連線進去之後,裡面全是黑乎乎的一個命令列,其它啥也沒有。是不是中毒了?系統壞了???這,一臉懵懂啊。

image.png

首先,請不要驚慌,系統是正常的。

什麼是 Windows Server, version 1709?

Windows Server, version 1709 執行在伺服器核心(Server Core)模式下。這意味著沒有圖形使用者介面。為啥要這樣做?根據微軟的說法:它可以提供強大的優勢,如硬體要求較低、攻擊面更小並且減小了更新需求(減小了更新需求,這一點我無法認同,其他的還可以接受)。而且在這一版本里,微軟沒有提供圖形介面到 Server Core的轉換。可能是在Windows Server 2012/R2裡,圖形介面到Server Core的轉換經常會出錯,在2016裡就簡單粗暴一點,一旦安裝,禁止轉換。到了1709,直接就沒有圖形介面了。
Server Core和普通的帶GUI圖形介面的Windows Server 的主要區別如下:

  • 資源管理器沒有了。我們熟悉的Windows Explorer,無法出現在Server Core裡。
  • 所有依賴MMC的控制檯介面沒有了。也就是說執行*.msc將不會工作。例如:我們無法通過執行devmgmt.msc開啟裝置管理器了。
  • 除了區域和語言及時間,其他的控制皮膚選項也沒有了。
  • 比較”著名”的IE也沒有了。

Windows 管理工具簡介

可能是為了像Linux看齊吧,Windows Server Version 1709更像Linux風格。很多習慣了Windows操作介面的人(用Windows 不用圖形介面,生活將毫無意義:), 對Server core的使用無從下手。本節會提供幾個Windwows 管理大殺器:PowerShell和 Project Honolulu等並對此作簡單介紹。

PowerShell

幸虧有了PowerShell, 讓 Windows 從傳統的DOS命令列和批處理中解放了生產力。PowerShell 之父 Jeffrey Snover,在加入微軟之前是搞Linux的。所以,我們可以在PowerShell裡隨處看到Linux Shell的影子如ls, wget, curl 等。但PowerShell絕對不是shell的簡單升級。PowerShell 依賴.NET Framework實現了強大的物件導向的指令碼。隨著.NET FrameWork的開源和跨平臺,PowerShell Core在Linux上也已經正式推出。
微軟命名從來都是很低調的,但PowerShell命名直接就帶了一個Power,可見此功能的強大。Jeffrey 在發明了PowerShell這後,直接就晉升為微軟的Distinguished Engineer並且主導了Windows Server 2012的架構設計(跑遠了,回來)。
在Windows Server Version 1709裡開啟PowerShell很簡單,直接在命令列裡輸入 PowerShell(大小寫不敏感)就可以開啟PowerShell進行操作了。

image.png

PowerShell還可以像SSH那樣遠端管理Windows 機器。以下示例在工作組的環境下如何配置PowerShell遠端,假定被管理的機器IP是 172.16.158.183。

  • 在被管理的機器上,執行以下PowerShell命令:
Enable-PSRemoting -Force
Set-NetFirewallRule -Name "WINRM-HTTP-In-TCP-PUBLIC" -RemoteAddress Any

image.png

  • 如果安全組有限制, 請開放對此機器入方向的5985(HTTP)和5986(HTTPS)埠。
  • 在客戶端機器上(需要遠端連線被管理的機器上),執行以下命令以接受被管理的機器是受信任的。如果想管理任何機器,替換 172.16.158.183 為 *。
Set-Item WSMan:localhostclient	rustedhosts -value 172.16.158.183 -Force

否則執行下一步Enter-PsSession可能報以下錯誤:

Enter-PSSession : 連線到遠端伺服器 172.16.158.183 失敗,並顯示以下錯誤訊息: WinRM 客戶端無法處理該請求。如果身份驗證方案與 Kerberos 不同,或者客戶端計算機未加入到域中, 則必須使用
HTTPS 傳輸或者必須將目標計算機新增到 TrustedHosts 配置設定。 使用 winrm.cmd 配置 TrustedHosts。請注意,TrustedHosts 列表中的計算機可能未經過身份驗證。 通過執行以下命令可獲得有關此內容的更多資訊: winrm help config。 有關詳細資訊,請參閱 about_Remote_Troubleshooting 幫助主題。

所在位置 行:1 字元: 1
Enter-PSSession `172.16.158.183` -Credential:`administrator`

 CategoryInfo          : InvalidArgument: (172.16.158.183:String) [Enter-PSSession],PSRemotingTransportException
 FullyQualifiedErrorId : CreateRemoteRunspaceFailed 
  • 這樣,在客戶端機器上通過以下PowerShell命令就可以遠端”SSH”到被管理的機器上了。(該輸入密碼還是要輸入密碼)
Enter-PsSession –ComputerName 172.16.158.183

image.png

Microsoft Project Honolulu

微軟在1709釋出時同時也宣佈了一個叫火奴魯魯的專案。火奴魯魯是美國夏威夷州首府和港口城市。華人稱之為檀香山(又跑遠了)。火奴魯魯專案是一個基於瀏覽器的圖形管理工具。他是在Server Core裡替代Server Manager 和MMC的管理工具。火奴魯魯可以從以下網站下載:
https://www.microsoft.com/en-us/evalcenter/evaluate-windows-server-honolulu
火奴魯魯管理配置方法:

  1. 在被管理的Server 1709機器上,執行以下PowerShell命令:
Enable-PSRemoting -Force
Set-NetFirewallRule -Name "WINRM-HTTP-In-TCP-PUBLIC" -RemoteAddress Any
  1. 如果安全組有限制, 請開放對此機器入方向的5985(HTTP)和5986(HTTPS)埠。
  2. (第3步和第4步只需要做一步就可以了。)下載並安裝火奴魯魯工具並安裝在被管理的Server 1709機器上。

    • 首先介紹在Server 1709機器上安裝。筆者使用了以下PowerShell命令在被管理的機器上下載了這個msi工具。
    wget -Uri http://download.microsoft.com/download/E/8/A/E8A26016-25A4-49EE-8200-E4BCBF292C4A/HonoluluTechnicalPreview1802.msi -UseBasicParsing -OutFile c:HonoluluTechnicalPreview1802.msi
    • 下載完後用以下命令列執行安裝。命令是立即返回的。
    msiexec /i c:HonoluluTechnicalPreview1802.msi /qn /L*v log.txt SME_PORT=443 SSL_CERTIFICATE_OPTION=generate
    • 要驗證是否安裝成功,可以使用PowerShell命令 cat log.txt檢視安裝結果。如果有以下字樣,表明安裝成功。

    MSI (s) (14:44) [09:48:37:885]: Product: Project `Honolulu`(技術預覽版) — Installation completed successfully.
    MSI (s) (14:44) [09:48:37:885]: Windows Installer 已安裝產品。產品名稱: Project `Honolulu`(技術預覽版)。產品版本: 1.1.10326.0。產品語言: 1033。製造商: Microsoft Corporation。安裝成功或錯誤狀態: 0。

  3. (第3步和第4步只需要做一步就可以了。)此工具也可以安裝在任何一個作為PowerShell遠端的客戶端機器上。

    • 可以用瀏覽器下載並安裝.
    • 安裝完成後,可以開啟 https://localhost/ 然後新增我們需要管理的Server 1709的機器的地址。
      image.png
  4. 安裝完成後,可以通過任何可以訪問到安裝了火奴魯魯的機器的瀏覽器開啟。很意外的,居然不支援IE瀏覽器。必須要Microsoft Edge或者Chrome。

Sconfig

這個工具在Server Core誕生的那一天就有。不過現在被隱藏了。在命令列中輸入sconfig就能出現此命令。能滿足基本需要,功能不是很強大。
image.png

遠端Server Manager

這個是目前主要的管理形式,不過只讀功能較多,可以操作的配置很少。暗地裡已經被Project Honolulu取代,因此本文不做描述。

管理 Windows Server, version 1709的常見操作FAQ

如何拷貝檔案到Server 1709?

這裡假定要複製的檔案在客戶端機器上。通過PowerShell遠端和通過Project Honolulu的方法都在客戶端機器和Server 1709的被管理機器已經按上面的方法進行了配置。

通過遠端RDP

  1. 在客戶端機器上,右擊檔案並選擇複製。
  2. 遠端mstsc 到Server 1709上。
  3. 在遠端機器上開啟notepad.依次 檔案 -> 開啟。在開啟對話方塊裡,選擇一個盤的路徑,右擊貼上。檔案就複製過來了。這是我最喜歡的一種方法。
    image.png

通過PowerShell遠端
在客戶端機器上執行以下PowerShell命令即可:

$session = New-PSSession -ComputerName 172.16.158.183
Copy-Item -ToSession $session -Path C:1.txt -Destination c:2.txt

C:1.txt是客戶端機器的檔案位置。C:2.txt是要拷貝到目標機器上的位置。

通過Project Honolulu
依次點選被管理的機器-> 檔案 -> 上傳。
image.png

如何從內部關閉或者重啟Server 1709虛擬機器?

通過遠端RDP

  1. 遠端RDP到Server 1709上。
  2. 在命令列裡輸入sconfig, 然後根據需要選擇13 -重啟,14-關機並回車就可以了。
  3. 或者輸入以下命令列/PowerShell直接重啟或者關機:
shutdown -r -t 00 ::命令列 在0秒後重啟
shutdown -s -t 00 ::命令列 在0秒後關機
Stop-Computer -Force # Powershell 立即關機
Restart-Computer -Force # Powershell 立即重啟

通過PowerShell遠端
在客戶端機器上執行以下PowerShell命令即可:

Enter-PsSession –ComputerName 172.16.158.183
Restart-Computer -Force #重啟
Stop-Computer -Force #關機

通過Project Honolulu
依次點選被管理的機器-> 概述。
image.png

如何安裝IIS服務?

通過遠端RDP

  1. 遠端RDP到Server 1709上。
  2. 在命令列裡輸入PowerShell, 然後再執行以下PowerShell命令:
Import-Module ServerManager
Add-WindowsFeature Web-Server, Web-CGI, Web-Mgmt-Console

通過PowerShell遠端
在客戶端機器上執行以下PowerShell命令即可:

Enter-PsSession –ComputerName 172.16.158.183
Import-Module ServerManager
Add-WindowsFeature Web-Server, Web-CGI, Web-Mgmt-Console

通過Project Honolulu
依次點選被管理的機器-> 角色和功能 -> 選擇 Web伺服器 並確定需要的功能。
image.png

不小心在RDP會話中關閉了命令列視窗怎麼辦?

如果在遠端會話中不小心關閉了命令列視窗,可以通過遠端桌面傳送 Ctrl + Alt + Del組合鍵(如果使用的是mstsc,按下ctrl + Alt + End),在出現的介面選擇 工作管理員 回車後出現工作管理員,依次點 檔案 -> 新建任務,輸入cmd就可以了。
image.png
image.png

如果需要功能直達的方法,歡迎在評論區留言,我會根據留言需求更新常見操作FAQ。

Related Links

https://docs.microsoft.com/en-us/windows-server/get-started/get-started-with-1709
https://docs.microsoft.com/en-us/windows-server/manage/honolulu/honolulu
https://docs.microsoft.com/en-us/windows-server/manage/honolulu/honolulu-manage
https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_remote_troubleshooting?view=powershell-6


相關文章