Powershell 脚本不通过计划任务运行

2024-01-10

我的域控制器上有一个小脚本,设置为通过 SMTP 向我发送有关最新安全事件 4740 的电子邮件。

该脚本在手动执行时将按预期运行;但是,当设置为通过计划任务运行时,尽管它显示已执行,但什么也没有发生(没有电子邮件)。

脚本如下:

If (-NOT ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator"))

{   
$arguments = "& '" + $myinvocation.mycommand.definition + "'"
Start-Process powershell -Verb runAs -ArgumentList $arguments
Break
}

$Event = Get-EventLog -LogName Security -InstanceId 4740 -Newest 5
$MailBody= $Event.Message + "`r`n`t" + $Event.TimeGenerated

$MailSubject= "Security Event 4740 - Detected"
$SmtpClient = New-Object system.net.mail.smtpClient
$SmtpClient.host = "smtp.domain.com"
$MailMessage = New-Object system.net.mail.mailmessage
$MailMessage.from = "[email protected] /cdn-cgi/l/email-protection"
$MailMessage.To.add("toemail.domain.com")
$MailMessage.IsBodyHtml = 1
$MailMessage.Subject = $MailSubject
$MailMessage.Body = $MailBody
$SmtpClient.Send($MailMessage)

计划任务设置如下:

RunsAs:LOCAL SYSTEM

Trigger: On event - Log: Security, Event ID: 4740

Action:  Start Program - C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe

  Argument:  -executionpolicy bypass c:\path\event4740.ps1

我还尝试过以下方法:

Trigger: On event - Log: Security, Event ID: 4740

Action:  Start Program - C:\path\event4740.ps1

根据任务历史记录:任务已开始、操作已开始、创建的任务流程、操作已完成、任务已完成。我浏览了网站上一些具有相同“问题”的各种链接,但它们似乎都有某种我没有的变量。我还尝试了一些提到的解决方案,认为它们可能有些相关,但可惜没有任何效果。我什至尝试删除我的计划任务并重置它,如下所述:http://blogs.technet.com/b/heyscriptingguy/archive/2012/08/11/weekend-scripter-use-the-windows-task-scheduler-to-run-a-windows-powershell-script.aspx http://blogs.technet.com/b/heyscriptingguy/archive/2012/08/11/weekend-scripter-use-the-windows-task-scheduler-to-run-a-windows-powershell-script.aspx

有人曾经遇到过此类错误或知道如何绕过此问题吗?

故障排除:

我决定尝试通过计划任务调用 .bat 文件。我创建了一个简单的文件,它将当前日期/时间回显到受监视的文件夹。通过 4740 事件触发的任务手动运行该文件取得了预期的结果。更改 .bat 文件以改为手动调用 .ps1 文件。当被 4740 事件触发时,.bat 现在将不再运行。


将您的操作更改为:

powershell -noprofile -executionpolicy bypass -file C:\path\event4740.ps1

在 Windows 2008 Server R2 上:在“任务计划程序”的“常规”选项卡下 - 确保“运行方式”用户设置为具有执行脚本所需的正确权限的帐户。

另外,我相信您已选中“仅在用户登录时运行”选项。将其更改为“无论用户是否登录都运行”。不选中“不存储密码”选项,您可能需要标记“以最高权限运行”选项。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Powershell 脚本不通过计划任务运行 的相关文章

  • 数据太长,导致列错误(包含国家字符)

    我必须移植一些DBS变成独立的MySQL版本 5 0 18运行于Windows 7 64 位我遇到了一个困扰我的问题 如果我尝试将任何国家 Unicode 字符插入varchar我收到错误 ERROR 1406 22001 Data too
  • 如何检查应用程序的另一个实例是否正在运行[重复]

    这个问题在这里已经有答案了 有人可以展示如何检查程序的另一个实例 例如 test exe 是否正在运行 如果是 则停止加载应用程序 如果存在该实例 想要一些严肃的代码吗 这里是 var exists System Diagnostics P
  • WinSock.h 和 WinSock2.h 使用哪个?

    有谁知道 WinSock h 和 WinSock2 h 之间的区别 我知道它们不使用相同的库 lib 但我不知道 WinSock2 是否仅添加了新功能 或者是否还改进了 WinSock 1 功能 我正在使用 IP TCP 套接字 并希望使用
  • Windows Defender 检测 Python EXE 为木马

    我制作了一个 Python 脚本 将 Windows 目录以 zip 形式邮寄给我 我使用 sched 模块添加了一个调度程序 每小时重复一次 我试图制作一个简单的同步应用程序供个人使用 在 Windows 启动时启动 我使用将其转换为 e
  • 我怎么知道PowerShell函数参数被省略了

    考虑这样的函数 function Test foo bar 我们可以称之为 Test foo null Test 我如何知道何时省略了 foo 以及何时为 null 如果您使用的是 Powershell V2 或更高版本 则可以使用 PSB
  • 关于在 Windows 上使用 WiFi Direct Api?

    我目前正在开发一个应用程序 我需要在其中创建链接 阅读 无线网络连接 在桌面应用程序 在 Windows 10 上 和平板电脑 Android 但无关紧要 之间 工作流程 按钮 gt 如果需要提升权限 gt 创建类似托管网络的 WiFi 网
  • 在 Windows 上部署 Meteor

    我觉得很奇怪的是 没有关于如何将自己的 Meteor Web 应用程序部署到自己的 Windows 服务器上的详细分步说明 或者也许我只是无法使用谷歌找到这样的解释 在很多页面上 甚至在关于 SO 的一些问题上 我发现人们只是简单地说 bu
  • 有选择地格式化 PowerShell 管道中的数据并输出为 HTML 的技术

    假设您想要对 powershell 的某些表格输出进行一些奇特的格式化 并且目标是 html 用于网络服务器 或者通过电子邮件发送 举例来说 您希望某些数值具有不同的背景颜色 任何 我可以想到两种可靠的编程方法来实现此目的 输出 XML 并
  • PowerShell:导入不带标题的 CSV 并删除部分重复行

    我有一个日志文件 其格式为 CSV 没有标题 第一列基本上是所记录问题的唯一标识符 对于同一问题标识符 可能有多行具有不同的详细信息 我想删除第一列重复的行 因为此时我不需要其他数据 目前我对 PowerShell 已经有了相当基本的了解
  • Windows 卷曲批处理文件

    我想使用 Windows 批处理文件进行 mailgun 卷曲调用 由于Windows shell不支持多行 如何在Windows批处理文件中执行以下curl函数 curl s user api key xxxxxxxxxx https a
  • Winforms 问题 - 创建窗口句柄时出错[重复]

    这个问题在这里已经有答案了 我们在 Winform 应用程序中看到此错误 任何人都可以帮助您了解为什么会看到此错误 更重要的是如何修复它或避免它发生 System ComponentModel Win32Exception Error cr
  • 将最新的 R 安装路径从注册表添加到 PATH windows 7/8/10

    嗨 我是 Windows 批处理新手 我想向打电话的同事分发一个 runMe bat 文件Rscript myRfile R处理一些数据文件 但众所周知 我的同事在不同地方安装了 R 我不能指望他们知道如何将 Rscript 添加到 PAT
  • Windows 上的 QML:使窗口保持在顶部

    我确实需要让我的窗口保持在 Windows 的顶部 但 Windows 本身似乎并不愿意允许我 https wiki qt io Qt project org faq QWidget activateWindow 28 29 behavio
  • 为什么使用 Get-Variable 访问参数变量的属性仅在第一次在 ISE 中有效?

    感谢 StackOverflow 的优秀人员 我们获得了非常好的评价answer https stackoverflow com questions 42697072 find the values in validateset 42697
  • Powershell - 在时间戳中添加毫秒

    我正在尝试创建以下格式的时间戳字符串 yyyymmddhhmmssfff where f是毫秒 例子 20171013180359235 到目前为止我已经 string Date Get Date UFormat Y m d H M S 这
  • Powershell数组的ForEach不返回System.array?

    我注意到跑步时ForEach在数组对象上并将输出捕获到新变量 新变量不是 System array 类型 PS D Playground gt Arr 1 2 3 PS D Playground gt Arr2 Arr ForEach PS
  • 如何在多个文件上调用动词

    我想使用 PowerShell 在多个文件上调用打印动词 在 Windows 资源管理器中 我可以进入一个文件夹 选择多个文件 右键单击并选择打印选项 这将打开 打印图片 对话框 其中包含所有选定的文件 我可以使用以下方法对一个文件执行此操
  • 为什么加载程序无法加载到所需位置

    据说有时加载器加载 exe 的地址与链接器假定的地址不同 当加载程序这样做时 可能会出现什么情况 基本上 这发生在以下情况 图像要加载的地址已被占用 例如 那里可能已经加载了另一个图像 要加载的图像已编译ASLR http en wikip
  • 如何使用 Windows 上运行的 Java 服务检测用户活动?

    我的目标是使用 Java 创建一个系统监控应用程序 我想知道用户何时在 Windows PC 上进行活动 结果会是这样的 8 00 8 15 活动 9 12 10 29 活动 12 24 15 34 活动 我对任何其他信息 按下了哪个键 使
  • 防止单个可执行文件的多个进程实例

    我正在使用 NET 和 C 我想阻止同一可执行文件的两个实例同时运行 但我不想阻止从另一个文件夹运行的同一进程 例如 我有一个位于两个不同位置的可执行文件 C MyProject Master Program exe C MyProject

随机推荐