任务未正常运行 - Windows Server 2019
Posted
技术标签:
【中文标题】任务未正常运行 - Windows Server 2019【英文标题】:Tasks not running properly - Windows Server 2019 【发布时间】:2021-12-12 18:13:33 【问题描述】:我正在建立一个 Windows Server 2019 系统,该系统主要用于通过任务计划程序运行脚本。之前在 2016 2012 服务器上运行的脚本不再在新服务器上运行。我已经编写了简单的脚本来查看具体是什么不起作用,并且想知道是否有人以前见过。
test-wsman $DFSIPADDRESS | tee-object -variable test | out-file errortest.log
$test | out-file \\$DFSIPADDRESS\my\personal\share\wsmantest.log
$error | out-file errortest.log
错误输出表明用户“未在此计算机上获得请求的登录类型”。用于 DFS 的输出文件。如果我在 ISE 中运行与用户相同的脚本,它可以正常工作。如果我通过任务计划程序运行脚本但要求用户登录它也可以工作。
用户是域用户并且在本地管理员组中。我已经验证了用户的批量登录。
我已验证批量登录。当脚本通过任务计划程序运行时,就好像用户没有获得域访问权限,但仍然具有本地管理员权限。
任何想法都将不胜感激。
编辑:我更新了标题以反映它是任何任务,而不仅仅是 powershell 脚本。我无法使用保存的凭据访问任务中的任何远程资源。我在远程服务器上看到 NT Authority\Anonymous 登录,并且脚本返回未经授权的访问。
【问题讨论】:
您的服务帐户似乎没有运行计划任务的权限,您是否看到它至少添加为Log on as a batch job
?除此之外,您应该保存文件的绝对路径以避免进一步的错误。
我在实际脚本中使用绝对路径,它甚至可以在本地保存到仅限管理员访问的路径,似乎只有域权限没有被扩展。作为批处理作业登录是由用户专门设置的(在故障排除时添加)和用户所属的管理员组。
【参考方案1】:
有几个可能的罪魁祸首会产生此错误。如果您可以手动访问该用户的文件共享,则前三个不太可能:
AD 用户设置了LogonWorkstations
属性,限制了其远程连接的能力。
在本地计算机上,Allow Log On Locally
策略设置为特定用户。
在远程机器上,Access this computer from the network
设置为特定用户
请继续检查以下内容:
本地机器不允许Log on as a batch job
,你提到你已经检查过(如果你改变了这个,请确保你已经重新启动)。验证 域 组策略和 本地 组策略之间没有可能覆盖您的设置的差异。
在任务的安全选项中,Do not store password
选项已启用。
还可以尝试创建一个非常基本的任务,以该用户身份运行,设置为only run while user is logged in
,使用类似这样的内容来查看它是否连接成功:
Action: Powershell.exe
Args: -c "Hello" | Out-File \\server\share\hello.txt
【讨论】:
如果“仅在用户登录时运行”被选中并且运行正常,它确实有效。如果未选中它就会运行,但无法写入(验证?)任何网络共享。我不认为问题出在帐户上,因为它是我在当前服务器上使用的帐户。LogonWorkstations
- <not set>
Deny Log On Locally
- 设置为组此帐户 100% 不是(企业管理员/域管理员/访客)的成员
允许本地登录设置为管理员,并且该帐户是本地管理员的成员。来自网络的访问设置为经过身份验证的用户和管理员,该帐户是两者的成员。在设置批处理作业时登录,并且服务器已多次重新启动。该服务器允许通过 GPO 存储密码,并且实际上可以正常工作。脚本运行它们只是不能做任何需要网络身份验证的事情(例如访问共享/访问 SQL 服务器)。我使用 Microsoft Policy Analyzer 尝试查找差异,但似乎除了 os 版本之外没有其他差异。
@JoshuaPape 如果它在“用户登录时”运行良好,那么几乎肯定是Allow/Deny Logon as Batch Job
的错或类似的东西。请注意,域 gpo 在此处覆盖本地,并且它们不结合。尝试使用gpresult /h c:\folder\gpresult.html
转储域组策略,并通过应用设置挖掘线索。有 许多 挑剔的设置,例如限制可以转发的凭据。
谢谢,我已经为这两个系统提取了 gpresults,它们在第一次查看时似乎是相同的。我会更深入地查看是否可以找到任何不一致之处。我已经在使用 microsoft 策略分析器,它可以更轻松地进行比较,并显示有效的状态与基线。
@JoshuaPape 这更深入,但您可能能够找到拒绝访问该用户的安全或系统事件日志,并提供更多信息。值得一提的是,我能够在 2019 年服务器上将您的脚本作为计划任务运行,并且它能够成功写入域文件服务器。以上是关于任务未正常运行 - Windows Server 2019的主要内容,如果未能解决你的问题,请参考以下文章
Windows Server下把BAT批处理注册成服务在后台运行且注销后能正常运行
Windows Server 2008 R2 上的 .NET 2.0 Web 服务未找到模块异常