Skip to content
VDS · Windows Server

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”标签页查看。