Windows Server 中的用户与权限
如何创建一个没有管理员权限的工作账户,授予 RDP 和文件夹访问权限,并避免整台机器只用一个密码。
更新于 2026年8月23日
您的机器自带一个管理员账户。一直用它工作是个坏习惯:任何失误或恶意文件都会立刻获得完全控制权。从一开始就把角色分开。
创建用户
$pw = Read-Host -AsSecureString "Password"
New-LocalUser -Name "app" -Password $pw -FullName "Application Service" -PasswordNeverExpires
Add-LocalGroupMember -Group "Users" -Member "app"
允许其通过远程桌面登录:
Add-LocalGroupMember -Group "Remote Desktop Users" -Member "app"
在英文版系统上,这些组分别叫 Users 和 Remote Desktop Users。通用做法是用标识符引用它们:Get-LocalGroup | Where-Object SID -like "*-555" 可找到 RDP 组。
查看机器上有哪些用户,以及谁属于管理员:
Get-LocalUser | Select-Object Name, Enabled, LastLogon
Get-LocalGroupMember Administrators
文件夹权限
应授予目录访问权限,而不是管理员成员身份。例如:让用户 app 对自己的目录拥有完全访问权限,对共享目录只有只读权限。
icacls "C:\apps\myapp" /grant "app:(OI)(CI)M" /T
icacls "C:\shared" /grant "app:(OI)(CI)R" /T
icacls "C:\apps\myapp" # view current permissions
解读:M — 修改,R — 读取,F — 完全控制,(OI)(CI) — 继承到文件和子文件夹,/T — 应用到现有内容。
服务账户
需要访问互联网或处理上传文件的服务不应以 LocalSystem 运行。最佳选择是托管账户:
New-Service -Name myapp -BinaryPathName "C:\apps\myapp\myapp.exe" -StartupType Automatic
sc.exe config myapp obj= "NT SERVICE\myapp" password= ""
更简单且安全性几乎相当的是内置的 NT AUTHORITY\LocalService 和 NT AUTHORITY\NetworkService,只授予它们所需目录的权限。
密码策略
net accounts /minpwlen:14 /maxpwage:unlimited
net accounts /lockoutthreshold:5 /lockoutduration:30
如果 RDP 可从外部访问,五次失败后锁定尤为重要——详情请参阅 RDP 防护。
常见错误
- 一直以管理员身份工作。 为自己创建一个普通账户,只在需要的地方提升权限。
- 为了让用户“能直接用”就把它加入管理员组。 十有八九,您真正需要的是对某个文件夹的访问权限,或者“作为服务登录”权限(
secpol.msc→ 本地策略 → 用户权限分配)。 - 在未验证第二个登录的情况下禁用内置管理员。 先确认新账户确实能通过 RDP 登录,然后再执行:
Disable-LocalUser -Name adm-local。 - 在脚本中以明文存储服务密码。 位于用户可写目录中的脚本任何人都能读取。
如果您锁定了所有账户,仍可通过控制面板中
/hosting/vds/m/<id>的“Console”标签页,以“Screen”模式获得访问权限。创建时下发的管理员密码始终可在“Access”标签页查看。