我有一个 Powershell 脚本,它可以更新 Active Directory 中的用户属性,该脚本可以从 PowerShell ISE 正常运行。但是,当我尝试将脚本作为计划任务运行时,它无法访问 Active Directory 进行更改。
我知道脚本运行了,因为它在启动时会发送一封电子邮件,当它崩溃时,它会在代码的 catch 块中发送一封电子邮件。它在尝试更新 AD 时崩溃。
我使用的帐户是域管理员,因此我认为这不是用户权限问题。此脚本无法访问 AD 的原因是什么?
感谢您的帮助
佩里
答案1
在 Server 2008 R2 上让 PowerShell 脚本作为计划任务运行可能是一项棘手的任务。以下是我所做的,并且成功了。
计划任务设置
一般的
安全选项:
- 无论用户是否登录都运行(已选择)
- 不存储密码。该任务只能访问本地资源(未选中)
- 以最高权限运行(已选中)
- 配置为:(Windows 7、Windows Server 2008 R2)
由于脚本正在运行,因此您的触发器似乎是正确的。
操作
- 操作:启动程序
- 程序/脚本:PowerShell 路径(例如 C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe)
- 添加参数(可选):.\文件.ps1
- 开始于(可选):file.ps1 所在目录的路径(例如 C:\folder\scripts)
答案2
我终于能够让脚本运行了。脚本正在运行,但当它尝试调用 Active Directory 时失败了。解决方案是将 Active Directory 模块添加到 Powershell。我找到了有关如何执行此操作的说明这里。我还在脚本顶部添加了 set-executionpolicy remotesigned 和 import-module activedirectory,以确保这些也已设置。一旦我进行了这些更改,脚本就可以正常工作了。
感谢您的所有评论和建议
佩里