我的 Windows Server NO Gui 生存日志 (1)

经常安装 Windows Server 的同学都可能会注意到,Windows Server 在安装的时候是可以选择 no gui 版本,我也很好奇,Windows Server no gui 版本是个什么样的东西,会不会和 Linux 一样?

带着这些疑问,我开始了 Windows Server no gui 旅程。

系统安装

这个不需要说,和所有 Windows Server 安装方式都一样,只是安装的时候选择 No Gui 版本即可。

安装好系统后,我怀着激动的心情登陆到桌面。

此时我十分好奇,没有了窗口的 Windows 还是 Windows 么?

此刻微软给我了如电击般的冲击。

Windows Server NO GUI 登陆后界面

登陆系统后,映入眼帘的是一个窗口,对没错是窗口,NO GUI 还是依然会有窗口,因为人家是 Windows 系统,没有了窗口还叫个屁 Windows?

系统自动启动了个CMD,让你操作,当然你也可以关掉这个窗口,

关掉 CMD 后的界面

对,一片漆黑,你可以使用 Ctrl+Shift+Esc 唤出任务管理器,再新建任务,可以输入CMD,也可以直接打开 Powershell。

值得注意的是,任务管理器新建任务那边有个浏览按钮,点击下去是没有任何反应的,因为 NO GUI 版本就是阉割了 Explorer.exe 而已。

一些基本生存技能

设置IP地址

设置IP地址我们可以使用 netsh 这个命令,Windows 一直以来都可以使用 CMD 设置 IP 地址。

首先查看网卡在系统里面的名字,netsh 需要用到。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
PS C:\Users\Administrator> ipconfig
Windows IP 配置
以太网适配器 Ethernet0:
连接特定的 DNS 后缀 . . . . . . . :
IPv4 地址 . . . . . . . . . . . . : 192.168.2.210
子网掩码 . . . . . . . . . . . . : 255.255.255.0
默认网关. . . . . . . . . . . . . : 192.168.2.1
隧道适配器 Teredo Tunneling Pseudo-Interface:
媒体状态 . . . . . . . . . . . . : 媒体已断开
连接特定的 DNS 后缀 . . . . . . . :
隧道适配器 isatap.{42D987CD-B4FC-4711-9E49-6C6C9B51267C}:
媒体状态 . . . . . . . . . . . . : 媒体已断开
连接特定的 DNS 后缀 . . . . . . . :

Windows Server 一般安装好后的网络接口名称是 Ethernet0

其实这个是 CMD 的做法,不在 PowerShell 下也可以使用,但 PowerShell 也有自己的命令可以获取名称。

1
2
3
4
5
PS C:\Windows\system32> Get-NetAdapter
Name InterfaceDescription ifIndex Status MacAddress LinkSpeed
---- -------------------- ------- ------ ---------- ---------
Ethernet0 Intel(R) 82574L 千兆网络连接 12 Up 00-0C-29-25-56-75 1 Gbps

修改IP地址:

1
netsh interface ip set address "Ethernet0" static 192.168.2.210 255.255.255.0 192.168.2.1

修改DNS:

1
netsh interface ip set dns "Ethernet0" static 192.168.2.208 primary

其他的一些基本命令

修改计算机名称:

1
Rename-Computer -Newname OFFICEONLINE

重启计算机:

1
Restart-Computer

加入域:

1
Add-Computer -DomainName Domain1 -Restart

Get-Help 万能的帮助命令

这个命令我最喜欢,新学习 Powershell 的话,对很多命令都不了解,而这个 Get-Help 就类似于 Linux 的 man 命令了,但我最最最喜欢它的地方在于,他的文档全是中文的,不得不佩服微软财大气粗,有专人来翻译。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
[OFFICEONLINE]: PS C:\Users\Administrator.RSLNC\Documents> Get-Help Add-Computer
名称
Add-Computer
摘要
将本地计算机添加到域或工作组中。
语法
Add-Computer [-DomainName] <String> [-ComputerName <String[]>] [-Force] [-LocalCredential <PSCredential>] [-NewName
<String>] [-Options {AccountCreate | DeferSPNSet | InstallInvoke | JoinReadOnly | JoinWithNewName | PasswordPass |
UnsecuredJoin | Win9XUpgrade}] [-OUPath <String>] [-PassThru] [-Restart] [-Server <String>] [-UnjoinDomainCredenti
al <PSCredential>] [-Unsecure] -Credential <PSCredential> [-Confirm] [-WhatIf] [<CommonParameters>]
Add-Computer [-WorkgroupName] <String> [-ComputerName <String[]>] [-Credential <PSCredential>] [-Force] [-LocalCred
ential <PSCredential>] [-NewName <String>] [-PassThru] [-Restart] [-Confirm] [-WhatIf] [<CommonParameters>]
说明
Add-Computer cmdlet 将本地计算机或远程计算机添加到域或工作组,或者将它们从一个域移到另一个域。它还为添加到域中的无帐
户计算机创建域帐户。
可以使用此 cmdlet 的参数来指定组织单位 (OU) 和域控制器,或执行不安全的加入。
若要获取该命令的结果,请使用 Verbose 和 PassThru 参数。
相关链接
Online Version: http://go.microsoft.com/fwlink/p/?linkid=289795
Checkpoint-Computer
Remove-Computer
Restart-Computer
Rename-Computer
Restore-Computer
Stop-Computer
Test-Connection
备注
若要查看示例,请键入: "get-help Add-Computer -examples".
有关详细信息,请键入: "get-help Add-Computer -detailed".
若要获取技术信息,请键入: "get-help Add-Computer -full".
有关在线帮助,请键入: "get-help Add-Computer -online"

你还可以添加 -Examples 参数来获得例子,这个就很不错啦。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
[OFFICEONLINE]: PS C:\Users\Administrator.RSLNC\Documents> Get-Help Add-Computer -Examples
名称
Add-Computer
摘要
将本地计算机添加到域或工作组中。
-------------------------- 示例 1 --------------------------
PS C:\>Add-Computer -DomainName Domain01 -Restart
此命令将本地计算机添加到 Domain01 域,然后重新启动计算机以使更改生效。
-------------------------- 示例 2 --------------------------
PS C:\>Add-Computer -WorkGroupName WORKGROUP-A
此命令将本地计算机添加到 Workgroup-A 工作组中。
-------------------------- 示例 3 --------------------------
PS C:\>Add-Computer -DomainName Domain01 -Server Domain01\DC01 -Passthru -Verbose
此命令使用 Domain01\DC01 域控制器将本地计算机添加到 Domain01 域中。
该命令使用 PassThru 和 Verbose 参数来获取有关命令的结果的详细信息。
-------------------------- 示例 4 --------------------------
PS C:\>Add-Computer -DomainName Domain02 -OUPath "OU=testOU,DC=domain,DC=Domain,DC=com"
此命令将本地计算机添加到 Domain02 域中。它使用 OUPath 参数为新帐户指定组织单位。
-------------------------- 示例 5 --------------------------
PS C:\>Add-Computer -ComputerName Server01 -LocalCredential Server01\Admin01 -DomainName Domain02 -Credential Domai
n02\Admin02 -Restart -Force
此命令将 Server01 计算机添加到 Domain02 域中。它使用 LocalCredential 参数指定有权连接到 Server01 计算机的用户帐户。
它使用 Credential 参数指定有权将计算机加入到域中的用户帐
户。它使用 Restart 参数在加入操作完成后重新启动计算机,并使用 Force 参数取消用户确认消息。
-------------------------- 示例 6 --------------------------
PS C:\>Add-Computer -ComputerName Server01, Server02, localhost -Domain Domain02 -LocalCredential Domain01\User01 -
UnjoinDomainCredential Domain01\Admin01 -Credential Domain02\Admin01 -Restart
此命令将 Server01 和 Server02 计算机以及本地计算机从 Domain01 移至 Domain02。
它使用 LocalCredential 参数指定有权连接到三台受影响计算机的用户帐户。它使用 UnjoinDomainCredential 参数指定有权将计
算机退出 Domain01 域的用户帐户,并使用 Credential 参
数指定有权将计算机加入到 Domain02 域的用户帐户。它使用 Restart 参数在移动操作完成后重新启动所有三台计算机。
-------------------------- 示例 7 --------------------------
PS C:\>Add-Computer -ComputerName Server01 -Domain Domain02 -NewName Server044 -Credential Domain02\Admin01 -Restar
t
此命令将 Server01 计算机移至 Domain02 并将计算机名称更改为 Server044。
该命令使用当前用户的凭据连接到 Server01 计算机并将其从其当前域中退出。它使用 Credential 参数指定有权将计算机加入到 D
omain02 域的用户帐户。
-------------------------- 示例 8 --------------------------
PS C:\>Add-Computer -ComputerName (Get-Content Servers.txt) -Domain Domain02 -Credential Domain02\Admin02 -Options
Win9xUpgrade -Restart
此命令将 Servers.txt 文件中列出的计算机添加到 Domain02 域。它使用 Options 参数指定 Win9xUpgrade 选项。Restart 参数将
在加入操作完成后重新启动所有新添加的计算机。

总结

其实感觉微软做这个 NO GUI 版本和 GUI 版本没啥区别,就是阉割了一些桌面的功能,节省了一部分内存。
看得出 Windows 是希望通过 powershell 来做自动化部署的。

接下来我会尝试用 NO GUI 版本安装 Office Online Server 试试。