摘要: 相信有部分同窗們會有這樣的體驗,在公有云上購買了Windows Server Version 1709數據中心版的虛擬機,經過遠程鏈接進去以後,裏面全是黑乎乎的一個命令行,其它啥也沒有。這,一臉懵懂啊。shell
相信有部分同窗們會有這樣的體驗,在公有云上購買了Windows Server Version 1709數據中心版的虛擬機,經過遠程鏈接進去以後,裏面全是黑乎乎的一個命令行,其它啥也沒有。是否是中毒了?系統壞了???這,一臉懵懂啊。windows
首先,請不要驚慌,系統是正常的。瀏覽器
什麼是 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 的主要區別以下:session
Windows 管理工具簡介架構
多是爲了像Linux看齊吧,Windows Server Version 1709更像Linux風格。不少習慣了Windows操做界面的人(用Windows 不用圖形界面,生活將毫無心義:), 對Server core的使用無從下手。本節會提供幾個Windwows 管理大殺器:PowerShell和 Project Honolulu等並對此做簡單介紹。curl
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。
Enable-PSRemoting -Force Set-NetFirewallRule -Name "WINRM-HTTP-In-TCP-PUBLIC" -RemoteAddress Any
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
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
火奴魯魯管理配置方法:
Enable-PSRemoting -Force Set-NetFirewallRule -Name "WINRM-HTTP-In-TCP-PUBLIC" -RemoteAddress Any
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
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。
Sconfig
這個工具在Server Core誕生的那一天就有。不過如今被隱藏了。在命令行中輸入sconfig就能出現此命令。能知足基本須要,功能不是很強大。
遠程Server Manager
這個是目前主要的管理形式,不過只讀功能較多,能夠操做的配置不多。暗地裏已經被Project Honolulu取代,所以本文不作描述。
管理 Windows Server, version 1709的常見操做FAQ
如何拷貝文件到Server 1709?
這裏假定要複製的文件在客戶端機器上。經過PowerShell遠程和經過Project Honolulu的方法都在客戶端機器和Server 1709的被管理機器已經按上面的方法進行了配置。
經過遠程RDP
經過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
依次點擊被管理的機器-> 文件 -> 上傳。
如何從內部關閉或者重啓Server 1709虛擬機?
經過遠程RDP
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
依次點擊被管理的機器-> 概述。
如何安裝IIS服務?
經過遠程RDP
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服務器 並肯定須要的功能。
不當心在RDP會話中關閉了命令行窗口怎麼辦?
若是在遠程會話中不當心關閉了命令行窗口,能夠經過遠程桌面發送 Ctrl + Alt + Del組合鍵,在出現的界面選擇 任務管理器 回車後出現任務管理器,依次點 文件 -> 新建任務,輸入cmd就能夠了。
閱讀更多幹貨好文,請關注掃描如下二維碼: