標籤:營運
摘要: 相信有部分同學們會有這樣的體驗,在公用雲端上購買了Windows Server Version 1709資料中心版的虛擬機器,通過遠端連線進去之後,裡面全是黑乎乎的一個命令列,其它啥也沒有。這,一臉懵懂啊。
相信有部分同學們會有這樣的體驗,在公用雲端上購買了Windows Server Version 1709資料中心版的虛擬機器,通過遠端連線進去之後,裡面全是黑乎乎的一個命令列,其它啥也沒有。是不是中毒了?系統壞了???這,一臉懵懂啊。
首先,請不要驚慌,系統是正常的。
什麼是 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進行操作了。
PowerShell還可以像SSH那樣遠端管理Windows 機器。以下樣本在工作群組的環境下如何配置PowerShell遠程,假定被管理的機器IP是 172.16.158.183。
- 在被管理的機器上,運行以下PowerShell命令:
Enable-PSRemoting -ForceSet-NetFirewallRule -Name "WINRM-HTTP-In-TCP-PUBLIC" -RemoteAddress Any
- 如果安全性群組有限制, 請開放對此機器入方向的5985(HTTP)和5986(HTTPS)連接埠。
- 在用戶端機器上(需要遠端連線被管理的機器上),運行以下命令以接受被管理的機器是受信任的。如果想管理任何機器,替換 172.16.158.183 為 *。
Set-Item WSMan:localhost\client\trustedhosts -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
Microsoft Project Honolulu
微軟在1709發布時同時也宣布了一個叫火奴魯魯的項目。火奴魯魯是美國夏威夷州首府和港口城市。華人稱之為檀香山(又跑遠了)。火奴魯魯項目是一個基於瀏覽器的圖形管理工具。他是在Server Core裡替代Server Manager 和MMC的管理工具。火奴魯魯可以從以下網站下載:
https://www.microsoft.com/en-us/evalcenter/evaluate-windows-server-honolulu
火奴魯魯管理配置方法:
- 在被管理的Server 1709機器上,運行以下PowerShell命令:
Enable-PSRemoting -ForceSet-NetFirewallRule -Name "WINRM-HTTP-In-TCP-PUBLIC" -RemoteAddress Any
- 如果安全性群組有限制, 請開放對此機器入方向的5985(HTTP)和5986(HTTPS)連接埠。
- (第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的機器的地址。
4.安裝完成後,可以通過任何可以訪問到安裝了火奴魯魯的機器的瀏覽器開啟。很意外的,居然不支援IE瀏覽器。必須要Microsoft Edge或者Chrome。
Sconfig
這個工具在Server Core誕生的那一天就有。不過現在被隱藏了。在命令列中輸入sconfig就能出現此命令。能滿足基本需要,功能不是很強大。
遠程Server Manager
這個是目前主要的管理形式,不過唯讀功能較多,可以操作的配置很少。暗地裡已經被Project Honolulu取代,因此本文不做描述。
管理 Windows Server, version 1709的常見操作FAQ
如何拷貝檔案到Server 1709?
這裡假定要複製的檔案在用戶端機器上。通過PowerShell遠程和通過Project Honolulu的方法都在用戶端機器和Server 1709的被管理機器已經按上面的方法進行了配置。
通過遠程RDP
- 在用戶端機器上,右擊檔案並選擇複製。
- 遠程mstsc 到Server 1709上
- 在遠程機器上開啟notepad.依次 檔案 -> 開啟。在開啟對話方塊裡,選擇一個盤的路徑,右擊粘貼。檔案就複製過來了。這是我最喜歡的一種方法。
通過PowerShell遠程
在用戶端機器上運行以下PowerShell命令即可:
$session = New-PSSession -ComputerName 172.16.158.183Copy-Item -ToSession $session -Path C:\1.txt -Destination c:\2.txt
C:1.txt是用戶端機器的檔案位置。C:2.txt是要拷貝到目標機器上的位置。
通過Project Honolulu
依次點擊被管理的機器-> 檔案 -> 上傳。
如何從內部關閉或者重啟Server 1709虛擬機器?
通過遠程RDP
- 遠程RDP到Server 1709上。
- 在命令列裡輸入sconfig, 然後根據需要選擇13 -重啟,14-關機並斷行符號就可以了。
- 或者輸入以下命令列/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.183Restart-Computer -Force #重啟Stop-Computer -Force #關機
通過Project Honolulu
依次點擊被管理的機器-> 概述。
如何安裝IIS服務?
通過遠程RDP
- 遠程RDP到Server 1709上。
- 在命令列裡輸入PowerShell, 然後再執行以下PowerShell命令:
Import-Module ServerManagerAdd-WindowsFeature Web-Server, Web-CGI, Web-Mgmt-Console
通過PowerShell遠程
在用戶端機器上運行以下PowerShell命令即可:
Enter-PsSession –ComputerName 172.16.158.183Import-Module ServerManagerAdd-WindowsFeature Web-Server, Web-CGI, Web-Mgmt-Console
通過Project Honolulu
依次點擊被管理的機器-> 角色和功能 -> 選擇 Web伺服器 並確定需要的功能。
不小心在RDP會話中關閉了命令列視窗怎麼辦?
如果在遠端工作階段中不小心關閉了命令列視窗,可以通過遠端桌面發送 Ctrl + Alt + Del按鍵組合,在出現的介面選擇 工作管理員 斷行符號後出現工作管理員,依次點 檔案 -> 建立任務,輸入cmd就可以了。
原文連結
閱讀更多乾貨好文,請關注掃描以下二維碼:
Windows Server Version 1709 管理之入門篇