ZetCode

Windows 命令提示符用户与权限

最后修改于 2025 年 7 月 14 日

用户和权限管理对于 Windows 系统管理至关重要。命令提示符提供了强大的工具来管理这些方面。了解这些命令有助于保护系统和控制访问。本教程涵盖了基本的​​用户和权限管理技术。

Windows 使用基于用户帐户和权限的安全模型。每个资源都有一个访问控制列表 (ACL),用于定义谁可以访问它。权限决定了用户可以在资源上执行哪些操作。管理员需要管理这些设置以确保系统的正常安全。

命令行工具可以精确控制用户和权限设置。它们允许通过脚本和批处理文件进行自动化。许多管理任务可以通过 cmd 比 GUI 执行得更快。在管理多个系统或用户时尤其如此。

基本定义

用户帐户:用于登录 Windows 系统的身份。每个帐户都有一个唯一的安全标识符 (SID)。在 Active Directory 环境中,帐户可以是本地的,也可以是基于域的。

权限:定义用户可以执行哪些操作的规则。这些包括读取、写入、执行、修改和完全控制。权限被分配给文件、文件夹、注册表项和其他对象。

:共享权限的用户帐户集合。组通过将设置应用于多个用户来简化权限管理。示例包括管理员、用户和高级用户。

ACL (访问控制列表):附加到对象的权限列表。ACL 中的每个条目都是一个 ACE (访问控制条目)。ACL 确定哪些用户可以访问对象以及他们的访问级别。

管理员:具有完全系统特权的用户帐户。管理员可以修改任何系统设置并访问所有资源。默认情况下,普通用户的权限有限,以确保安全。

查看用户帐户

net user 命令显示有关用户帐户的信息。这对于审计系统上的现有帐户很有用。您可以查看所有帐户或特定帐户的详细信息。

view_users.bat
@echo off
echo Listing all user accounts:
net user

echo Detailed info about Administrator:
net user Administrator

此脚本演示了基本的用户帐户查看命令。第一个命令列出所有帐户,第二个命令显示详细信息。

net user

列出本地计算机上的所有用户帐户。输出包括内置和自定义用户帐户。在加入域的计算机上运行时,不会显示域帐户。

net user Administrator

显示有关 Administrator 帐户的详细信息。这包括帐户状态、密码要求和组的成员身份。将“Administrator”替换为任何用户名以查看其详细信息。

C:\>view_users.bat
Listing all user accounts:

User accounts for \\COMPUTERNAME
-------------------------------------------------------------------------------
Administrator            Guest                    JohnDoe
The command completed successfully.

Detailed info about Administrator:
User name                    Administrator
Full Name
Comment                      Built-in account for administering the computer/domain
...

输出显示可用的用户帐户和管理员详细信息。实际输出因您的系统配置而异。

创建和删除用户

用户管理包括创建和删除帐户。带有适当参数的 net user 命令可处理这些任务。这些操作需要管理员权限。

manage_users.bat
@echo off
echo Creating new user account...
net user TestUser P@ssw0rd /add /fullname:"Test User" /comment:"Temporary account"

echo Verifying creation:
net user TestUser

echo Deleting test account...
net user TestUser /delete

此脚本演示了用户帐户的生命周期管理。它会创建、验证然后删除一个测试用户帐户。

net user TestUser P@ssw0rd /add /fullname:"Test User" /comment:"Temporary account"

创建一个名为 TestUser、密码为 P@ssw0rd 的新本地用户帐户。/add 参数指定帐户创建。/fullname 和 /comment 为帐户添加描述性信息。

net user TestUser /delete

从系统中删除 TestUser 帐户。/delete 参数删除指定的​​用户帐户。此操作无法撤销 - 用户数据将丢失。

C:\>manage_users.bat
Creating new user account...
The command completed successfully.

Verifying creation:
User name                    TestUser
Full Name                    Test User
Comment                      Temporary account
...

Deleting test account...
The command completed successfully.

脚本输出显示了成功的帐户创建和删除。请注意,在生产环境中,您应该使用更安全的密码。

管理组的成员资格

组通过将设置应用于多个用户来简化权限管理。net localgroup 命令管理组的成员资格。这对于正确的权限委派至关重要。

manage_groups.bat
@echo off
echo Creating new user...
net user GroupUser P@ssw0rd /add

echo Adding user to Administrators group...
net localgroup Administrators GroupUser /add

echo Verifying membership...
net localgroup Administrators

echo Removing from group...
net localgroup Administrators GroupUser /delete

echo Cleaning up...
net user GroupUser /delete

此脚本演示了组的成员资格管理。它会创建一个用户,将其添加到管理员组,然后进行清理。

net localgroup Administrators GroupUser /add

将 GroupUser 添加到本地管理员组。这会授予用户完全的系统特权。将用户添加到特权组时要小心。

net localgroup Administrators

列出本地管理员组的所有成员。这会验证用户是否已成功添加到组中。类似的语法适用于任何本地组。

net localgroup Administrators GroupUser /delete

将 GroupUser 从管理员组中删除。这会撤销用户的管理员特权。用户帐户仍然存在,但权限降低了。

C:\>manage_groups.bat
Creating new user...
The command completed successfully.

Adding user to Administrators group...
The command completed successfully.

Verifying membership...
Alias name     Administrators
Comment        Administrators have complete and unrestricted access to the computer/domain

Members

-------------------------------------------------------------------------------
Administrator
GroupUser
...

Removing from group...
The command completed successfully.

Cleaning up...
The command completed successfully.

输出显示了完整的组管理过程。实际的成员列表将根据您的系统而有所不同。

查看文件权限

icacls 命令显示和修改文件和文件夹的权限。在进行更改之前,了解当前权限至关重要。这有助于避免意外的权限问题。

view_permissions.bat
@echo off
echo Creating test file...
echo Permission test > testfile.txt

echo Current permissions:
icacls testfile.txt

echo Cleaning up...
del testfile.txt

此脚本创建一个测试文件,显示其权限,然后将其删除。icacls 输出揭示了文件的安全设置。

icacls testfile.txt

显示 testfile.txt 的访问控制列表。输出显示哪些用户/组拥有哪些权限。权限使用字母代码(F、M、RX 等)显示。

C:\>view_permissions.bat
Creating test file...
Current permissions:
testfile.txt BUILTIN\Administrators:(I)(F)
             NT AUTHORITY\SYSTEM:(I)(F)
             BUILTIN\Users:(I)(RX)
             NT AUTHORITY\Authenticated Users:(I)(M)

Successfully processed 1 files; Failed processing 0 files

Cleaning up...

输出显示了新文件的典型权限。管理员和 SYSTEM 具有完全控制权 (F)。已验证的用户可以修改 (M),普通用户可以读取/执行 (RX)。

修改文件权限

更改权限对于安全或访问要求通常是必要的。icacls 命令可以授予或撤销特定权限。始终验证更改以避免安全问题。

modify_permissions.bat
@echo off
echo Creating test file...
echo Permission test > securefile.txt

echo Granting read-only to Users...
icacls securefile.txt /grant:r "Users:(R)"

echo Removing all other permissions...
icacls securefile.txt /remove:g "Authenticated Users"
icacls securefile.txt /remove:g "Administrators"
icacls securefile.txt /remove:g "SYSTEM"

echo Final permissions:
icacls securefile.txt

echo Cleaning up...
del securefile.txt

此脚本演示了修改文件权限。它会创建一个文件,将访问限制为仅供用户只读,然后显示结果。

icacls securefile.txt /grant:r "Users:(R)"

授予 Users 组读取 (R) 权限。/grant:r 参数会替换现有权限。如果没有 :r,它将添加到现有权限中。

icacls securefile.txt /remove:g "Authenticated Users"

删除已验证用户的​​所有权限。/remove:g 参数会删除指定组的权限。类似的语法适用于用户和其他安全主体。

C:\>modify_permissions.bat
Creating test file...
Granting read-only to Users...
processed file: securefile.txt
Successfully processed 1 files; Failed processing 0 files

Removing all other permissions...
processed file: securefile.txt
Successfully processed 1 files; Failed processing 0 files
...

Final permissions:
securefile.txt BUILTIN\Users:(R)

Successfully processed 1 files; Failed processing 0 files

Cleaning up...

最终输出显示只有 Users 具有读取访问权限。这演示了如何创建高度受限的文件。在生产环境中,请注意不要锁定管理员。

来源

Windows 命令参考

本教程涵盖了命令提示符中基本的用户和权限管理。这些技能对于 Windows 系统管理和安全至关重要。

作者

我的名字是 Jan Bodnar,我是一名热情的程序员,拥有丰富的编程经验。我从 2007 年开始撰写编程文章。至今,我已撰写了 1400 多篇文章和 8 本电子书。我在教授编程方面拥有十年以上的经验。