摘要: 相信有部分同窗们会有这样的体验,在公有云上购买了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 的主要区别以下:服务器
Windows 管理工具简介session
多是为了像Linux看齐吧,Windows Server Version 1709更像Linux风格。不少习惯了Windows操做界面的人(用Windows 不用图形界面,生活将毫无心义:), 对Server core的使用无从下手。本节会提供几个Windwows 管理大杀器:PowerShell和 Project Honolulu等并对此做简单介绍。架构
PowerShellcurl
幸好有了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-...
火奴鲁鲁管理配置方法:
Enable-PSRemoting -Force Set-NetFirewallRule -Name "WINRM-HTTP-In-TCP-PUBLIC" -RemoteAddress Any
首先介绍在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
经过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就能够了。
阅读更多干货好文,请关注扫描如下二维码: