Windows Server Core 管理与 PowerShell 笔记(三)———— 用户、组

2019-04-05 332 Words Windows Powershell

Windows Server Core 管理与 PowerShell 笔记(三)———— 用户、组

本文将介绍 Windows 等用户和组管理,以及基于访问控制列表(ACL)提供的 Windows 基本访问控制机制。这里的内容其实已经在《计算机安全》的 “Windows 安全” 专题中有过一定的介绍。因此本文将从实用的角度介绍访问控制机制是如何作用的。

本文介绍的是本地的用户和组访问控制。基于活动目录(Active Directory)域控的强制访问控制,将会在 AD 章节专门介绍。

一、Windows 本地用户、本地组

与 Linux 类似,Windows 的访问控制主体主要是用户,并且具有组这一个中间层结构。此外基于访问控制列表(Access Control List)和特殊访问权限的机制,使得 Windows 可以实现比 Linux 更高细粒度的访问权限控制。

1.1 查看本地用户和组

Winodws 本地用户的相关信息,是存在与本地安全账户数据库(SAM)之中的,由此实现对登陆实体身份对鉴别。我们可以使用 Get-LocalUser 命令来查询本地用户信息:

PS C:\Users\ertuil> Get-LocalUser

Name               Enabled Description
----               ------- -----------
Administrator      True    管理计算机(域)的内置帐户
DefaultAccount     False   系统管理的用户帐户。
ertuil             True
Guest              False   供来宾访问计算机或访问域的内置帐户
WDAGUtilityAccount False   系统为 Windows Defender 应用程序防护方案管理和使用的用户帐户。

在 Windows Server 2019 之中,对外可见对用户主要有如下账户。

  • Administrator 管理员账户,具有管理计算机的最高权限。
  • ertuil 个人用户账户
  • Guest 访客账户,没有被激活

同样的道理,我们可以使用 Get-LocalGroup Comlet 来查询当前有那些本地组:

PS C:\Users\ertuil> get-localgroup

Name                                Description
----                                -----------
Access Control Assistance Operators 此组的成员可以远程查询此计算机上资源的授权属性和权限。
Administrators                      管理员对计算机/域有不受限制的完全访问权
Backup Operators                    备份操作员为了备份或还原文件可以替代安全限制
Certificate Service DCOM Access     允许该组的成员连接到企业中的证书颁发机构
Cryptographic Operators             授权成员执行加密操作。
Device Owners                       此组的成员可以更改系统范围内的设置。
Distributed COM Users               成员允许启动、激活和使用此计算机上的分布式 COM 对象。
Event Log Readers                   此组的成员可以从本地计算机中读取事件日志
Guests                              按默认值,来宾跟用户组的成员有同等访问权,但来宾帐户的限制更多
Hyper-V Administrators              此组的成员拥有对 Hyper-V 所有功能的完全且不受限制的访问权限。
IIS_IUSRS                           Internet 信息服务使用的内置组。
Network Configuration Operators     此组中的成员有部分管理权限来管理网络功能的配置
Performance Log Users               该组中的成员可以计划进行性能计数器日志记录、启用跟踪记录提供程序,以及在本地或通...
Performance Monitor Users           此组的成员可以从本地和远程访问性能计数器数据
Power Users                         包括高级用户以向下兼容,高级用户拥有有限的管理权限
Print Operators                     成员可以管理在域控制器上安装的打印机
RDS Endpoint Servers                此组中的服务器运行虚拟机和主机会话,用户 RemoteApp 程序和个人虚拟桌面将在这些虚...
RDS Management Servers              此组中的服务器可以在运行远程桌面服务的服务器上执行例程管理操作。需要将此组填充到...
RDS Remote Access Servers           此组中的服务器使 RemoteApp 程序和个人虚拟桌面用户能够访问这些资源。在面向 Intern...
Remote Desktop Users                此组中的成员被授予远程登录的权限
Remote Management Users             此组的成员可以通过管理协议(例如,通过 Windows 远程管理服务实现的 WS-Management)...
Replicator                          支持域中的文件复制
Storage Replica Administrators      此组的成员具有存储副本所有功能的不受限的完全访问权限。
System Managed Accounts Group       此组的成员由系统管理。
Users                               防止用户进行有意或无意的系统范围的更改,但是可以运行大部分应用程序

本地组主要有一下这些:

  • Administrators 管理员组,该组内成员可以使用管理员身份有不受限制的完全访问权限。
  • Backup Operators 备份管理员组
  • Power Users 已经被简化,不再单独拥有权限。
  • Guests 访客组,拥有最小权限。
  • RDS Endpoint Servers、RDS Management Servers、Remote Desktop Users 、RDS Remote Access Servers、IIS_IUSRS、 Hyper-V Administrators 等具体服务的用户组。比如 IIS_IUSRS 是 IIS 服务器的管理者。
  • Users 通常新建用户所在的默认组。
  • 有些机器显示 Everyone 组,所有本地用户都在这个组。

1.2 新建用户和组

使用 New-LocalUser 和 New-LocalGroup 来新建新的用户和组。

先使用 Read-Host 读取控制台输入,使用 -AsSecureString 参数,指定输入密码。新建带有密码的用户的例子:

PS C:\> $Password = Read-Host -AsSecureString
PS C:\> New-LocalUser "User03" -Password $Password -FullName "Third User" -Description "Description of this account."
Name    Enabled  Description
----    -------  -----------
User03  True     Description of this account.

新建不带密码的用户:

PS C:\> New-LocalUser -Name "User02" -Description "Description of this account." -NoPassword
Name    Enabled  Description
----    -------  -----------
User02  True     Description of this account.

使用 New-LocalGroup 新建用户组:

New-LocalGroup -Name test -Description test

Name Description
---- -----------
test test

1.3 修改用户和用户组

使用 Set-LocalUserSet-LocalGroup 来修改组权限,具体的 “-Password”, “-Name”, “-Description” 等参数使用于上面的命令用法一样。因此我们不再详细介绍。

1.4 删除用户和用户组

使用命令 Remove-LocalUserRemove-LocalGroup 来删除本地组和用户。我们可以使用 名称、SID以及用户对象来指定具体删除的用户或者用户组。使用下面命令来删除本地的用户组 test :

PS C:\Users\ertuil> remove-localgroup -Name test

二、总结

本文章介绍了 Windows 的用户和用户组管理的相关命令,以及常用的用户、用户组名称。