背景:我是一名新来的初级系统管理员,我继承了一个小型办公室工作组,该工作组由大约 12 台 Windows 计算机、生产和备份文件服务器以及一台 SQL 服务器组成。文件服务器上的所有用户帐户都是管理员组的成员。我意识到这会造成漏洞。此外,高层希望文件服务器上的某些目录不对普通用户开放。
如何将我的用户从管理员组中删除,并将他们纳入两层常规帐户,并避免不便、生产停机等?
如果可行的话,我全力支持自动化,所以我不害怕在 .bat 文件或 powershell 中编写脚本,尽管我的 powershell 已经生疏了,我的 .bat 脚本也很粗糙。
答案1
您应该设置一个域。
- 说真的。如果没有域 (Active Directory),我可不想管理 3 台 Windows 计算机,更不用说 12 台了。
- 如果高层想要限制某些目录的访问级别,那么以可管理的方式进行操作的唯一方法就是使用 Active Directory,即使对于“仅有 12 台”机器/用户也是如此。
- 对你个人而言,这也是最佳选择。“管理一组工作组计算机”在简历中是相当糟糕的一行。相比之下,“为 [公司] 创建、配置和管理新的 Windows Active Directory 域”在简历中是相当不错的一项。
假设您无法设置域(和 Server 2003),我倾向于使用 psexec,它是 SysInternals Suite 的一部分建立远程连接,然后NET USER 和 NET GROUP 命令进行实际添加。这样您就可以进行更改,而不会影响其他人的计算机,如下所示。
- 下载 SysInternals 套件。
- 打开命令行(cmd.exe)
- 连接到要进行更改的计算机
psexec \\thecomputeryouwanttomakechangeson\ cmd
- 执行所需的 NET USER 或 NET GROUP 命令。
NET LOCALGROUP Administrators someuser /ADD
NET LOCALGROUP Administrators someotheruser /DEL
- 提供的链接有更好的示例和完整的语法,只要记住你正在使用
LOCALGROUP
并且LOCALUSER
在这种情况下..
答案2
您可以使用以下命令获取当前属于管理员组的用户列表:
net localgroup administrators > userlist.txt
然后,您可以将该输出中的用户分成 tier1 和 tier2 列表,并循环遍历列表。
$tier1file="c:\path\to\tier1users.txt"
$tier2file="c:\path\to\tier2users.txt"
foreach ($user in get-content $tier1file)
{
net localgroup administrators $user /del
net localgroup tier1 $user /add
}
foreach ($user in get-content $tier2file)
{
net localgroup administrators $user /del
net localgroup tier2 $user /add
}
或类似的东西。
如果所有机器的设置都相同,您可能会得到比这更花哨的东西,但没有 AD 的机器通常并不相同。