使用独立托管服务帐户执行计划任务
托管服务帐户是 Windows Server 2008 R2 中引入的一项功能,它为我们提供了具有自动密码管理功能的服务帐户,这意味着这些帐户的密码将定期自动更改,无需任何人工交互。独立托管服务帐户的缺点是它们只能从计算机上使用。 Server 2012 中引入的组托管服务帐户解决了这个问题。
在 Windows Server 2012 中,这些帐户还可以用作计划任务的 RunAs 帐户,但无法在 GUI 中进行配置。
使用 powershell 创建和安装服务帐户,使用常规用户帐户作为运行方式帐户在 GUI 中创建新任务,然后使用 schtasks.exe 将运行方式帐户更改为托管服务帐户。
首先在 Server 2008R2 域控制器上创建托管服务帐户(SamAccountName 的长度最多为 14 个字符):
New-ADServiceAccount -SamAccountName "MyRunAsAccount" -Name "MyRunAsAccount" -Description "Account used for running MySchedTask on SERVER01"然后通过运行以下命令让 SERVER01 访问该帐户的密码:
Add-ADComputerServiceAccount -Identity "SERVER01" -ServiceAccount "MyRunAsAccount"
将帐户添加到所需的组,以便为预期目的授予足够的权限。请注意,不能直接提供托管服务帐户
在 SERVER01(必须运行 Server 2012/Windows 8 或更高版本并安装了 powershell AD 模块)上,通过运行以下命令安装服务帐户:
Install-ADServiceAccount -Identity "MyRunAsAccount"现在,使用 GUI 在 SERVER01 上创建一个新的计划任务,并将常规用户帐户指定为运行方式帐户,然后使用命令行工具 schtasks.exe 将运行方式帐户更改为新创建的托管服务帐户,如下所示:
C:>schtasks /Change /TN ScheduledTaskName /RU "domainMyRunAsAcount$" /RP ""如果您收到这样的错误消息,请尝试使用较短的帐户名,我的经验是最大长度为 15 个字符,包括 $符号。
错误:文件名或扩展名太长。
即使域中没有 2012 域控制器,此功能也有效,但这会限制帐户只能由一台计算机使用。
在域中安装运行 Windows Server 2012 的域控制器可以使用组托管服务帐户,从而可以使用多个服务器中的一个帐户。
有关进一步阅读,请参阅托管服务帐户简介和组托管服务帐户概述