首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在PowerShell中检查脚本是在后台运行(例如,Windows Task Scheduler)还是在用户会话中运行

在PowerShell中检查脚本是否在后台运行(例如,通过Windows Task Scheduler)或在用户会话中运行,可以通过检查当前会话的类型来实现。以下是一些方法:

方法一:使用$Host.UI.RawUI对象

代码语言:txt
复制
$sessionType = $Host.UI.RawUI.SessionHost.Name
if ($sessionType -eq "ConsoleHost") {
    Write-Output "脚本在用户会话中运行"
} elseif ($sessionType -eq "WindowsPowerShell") {
    Write-Output "脚本在后台运行(例如,通过Windows Task Scheduler)"
}

方法二:使用Get-PSHostProcessInfo cmdlet

从PowerShell 7.2开始,可以使用Get-PSHostProcessInfo cmdlet来获取当前进程的信息,从而判断脚本的运行环境。

代码语言:txt
复制
$processInfo = Get-PSHostProcessInfo
if ($processInfo.SessionId -eq 0) {
    Write-Output "脚本在后台运行(例如,通过Windows Task Scheduler)"
} else {
    Write-Output "脚本在用户会话中运行"
}

方法三:检查$env:SESSIONNAME环境变量

代码语言:txt
复制
$sessionName = $env:SESSIONNAME
if ($sessionName -eq "") {
    Write-Output "脚本在后台运行(例如,通过Windows Task Scheduler)"
} else {
    Write-Output "脚本在用户会话中运行"
}

应用场景

  • Windows Task Scheduler:当你通过Windows Task Scheduler安排任务时,脚本通常会在后台运行,没有用户会话。
  • 手动运行:当你在PowerShell控制台中手动运行脚本时,脚本会在用户会话中运行。

参考链接

通过这些方法,你可以有效地判断PowerShell脚本是在后台运行还是在用户会话中运行。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

终端安全系列-计划任务详解

任务计划程序服务(Task Scheduler service)是Windows操作系统的一个核心服务,它负责管理和执行计划任务。...任务计划程序服务(Task Scheduler service)在后台运行,并由 svchost.exe 进程来托管。任务计划程序服务允许用户创建、编辑和删除计划任务。...用户可以通过图形用户界面(Task Scheduler GUI)、命令行工具(schtasks)或编程接口来管理计划任务,用于预定的时间或特定事件发生时自动执行一系列任务。...通过Windows计划任务,用户可以: 定时运行程序:指定的日期和时间,自动运行特定的应用程序、脚本或命令行工具。...例如,任务可能会在任务开始后的一段时间内停止,或者某个特定的事件发生后停止。 设置(Settings): 允许任务不登录用户的情况下运行:如果选中此选项,任务可以没有用户登录的情况下运行

2K10
  • 精心构造的PS1文件名导致Powershell命令执行

    我们一次测试偶然发现,由于信任未过滤的文件名,因此在运行特殊命名的脚本时,PowerShell可能会执行任意代码。...测试发现运行带有特殊格式文件名的脚本后,可以导致执行其他木马exe文件,也可以是任何可执行文件.com,.exe,.bat,.cpl,.js,.vbs和.wsf。 例如:使用”....\calc;1.ps1”则可以用来执行calc.exe,如果使用标准调用了该脚本Windows外壳程序“ cmd.exe”和“ calc.exe”与ps1本位于同一目录。如下图所示: ?...另外,如果用户尚未启用PowerShell来打开.ps1本, ?...例如 test; powershell -e ; 2.ps1 3、双击以PowerShell打开,效果如下: ? 或者命令行下执行: ?

    1.9K20

    11.反恶意软件扫描接口 (AMSI)

    例如,可以将恶意负载的不同片段关联起来做出更明智的决定,而仅通过单独地查看这些片段就很难做出决定。 AMSI 功能已集成到 Windows 10 的这些组件。...当脚本准备好提供给脚本引擎时,应用程序可以调用 Windows AMSI API 来请求对内容进行扫描。这样,就可以决定继续执行之前安全地确定脚本是否是恶意的。 即使脚本是运行时生成的,也是如此。...涵盖攻击链各个阶段的操作(例如,有效载荷下载、持久性、执行等都会检测高风险函数或触发器的列表,并根据它们恶意和良性宏的普遍性进行选择。...Office 应用程序会通知用户,并关闭应用程序会话以避免任何进一步的损害。这可以阻止攻击,保护设备和用户。...后记 对于 Windows 用户,任何在 Windows 10 的内置脚本主机上使用混淆和规避技术的恶意软件都会在比以往任何时候都更深的层次上进行自动检查,从而提供额外的保护级别。

    4.3K20

    安全工具 | PowerSploit使用介绍

    我们先下载PowerView.ps1本到本地,然后在当前目录下打开cmd,执行以下命令执行PowerView.ps1的Get-NetDomain模块,如果要执行该脚本的其他模块,亦是如此 powershell...PowerUp.ps1本的使用 PowerUp.ps1本是 Privsec 目录下的一个脚本,功能非常强大。拥有很多用来寻找目标主机Windows服务配置错误来进行提权的模块。...Windows系统服务文件操作系统启动时会加载执行,并且在后台调用可执行文件。比如在每次重启系统时,Java升级程序都会检测出Oracle网站是否有新版Java程序。...而类似Java程序之类的系统服务程序,加载时往往都是运行在系统权限上的。...还可以域环境传输文件(前提是执行命令的用户是域用户) 注:该脚本需要管理员权限运行 复制文件 Import-Module .

    5.6K20

    windows提权看这一篇就够了

    / https://i.hacking8.com/tiquan/ ........... 2.系统配置错误提权 2.1 错误权限配置 简介:windows系统服务文件操作系统启动时加载和运行,并在后台调用可执行文件...windows允许低权限用户以System权限运行安装文件。.../用户的特定配置,通过组策略管理控制台中配置的组策略首选项,管理员可以推出多种策略,例如,当用户登录其计算机时自动映射网络驱动器,更新内置管理员帐户的用户名或对注册表进行更改。...会话令牌(Session Token):是交互会话唯一的身份标识符。 密保令牌(Security Token):又叫做认证令牌或硬件令牌,是一种计算机身份校验的物理设备,例如U盾。...mof文件,就能获得system权限 利用条件 Windows<=2003(虽然很久远了,还是温习一下) mysqlc:windows/system32/mof目录有写权限 已知数据库账号密码 利用手法

    16.4K31

    windows提权看这一篇就够了

    / https://i.hacking8.com/tiquan/ ........... 2.系统配置错误提权 2.1 错误权限配置 简介:windows系统服务文件操作系统启动时加载和运行,并在后台调用可执行文件...windows允许低权限用户以System权限运行安装文件。.../用户的特定配置,通过组策略管理控制台中配置的组策略首选项,管理员可以推出多种策略,例如,当用户登录其计算机时自动映射网络驱动器,更新内置管理员帐户的用户名或对注册表进行更改。...会话令牌(Session Token):是交互会话唯一的身份标识符。 密保令牌(Security Token):又叫做认证令牌或硬件令牌,是一种计算机身份校验的物理设备,例如U盾。...mof文件,就能获得system权限 利用条件 Windows<=2003(虽然很久远了,还是温习一下) mysqlc:windows/system32/mof目录有写权限

    3.4K20

    工具的使用|PowerSploit脚本的用法

    本的使用 PowerSploit PowerSploit是一款基于PowerShell的后渗透框架软件,包含了很多PowerShell的攻击脚本,它们主要用于渗透的信息侦测,权限提升、权限维持等。...我们先下载PowerView.ps1本到本地,然后在当前目录下打开cmd,执行以下命令执行PowerView.ps1的Get-NetDomain模块,如果要执行该脚本的其他模块,亦是如此 powershell...PowerUp.ps1本的使用 PowerUp.ps1本是 Privsec 目录下的一个脚本,功能非常强大。...Windows系统服务文件操作系统启动时会加载执行,并且在后台调用可执行文件。比如在每次重启系统时,Java升级程序都会检测出Oracle网站是否有新版Java程序。...还可以域环境传输文件(前提是执行命令的用户是域用户) 注:该脚本需要管理员权限运行 复制文件 Import-Module .

    1.7K10

    何在远程系统执行程序

    序言 我们获得用户名口令后,尝试远程登陆目标主机并执行程序,结合实际环境做了如下测试....条件: 启动Task Scheduler服务 2、psexec PsTools工具之一,指定的一台或多台计算机上运行应用程序 条件: 需要开放ADMIN$共享 3、WMIC 功能强大,可做系统管理、远程主机信息获取...1、at&schtasks at \\192.168.40.137 找不到网络路径,判断是目标主机已禁用Task Scheduler服务 ?...分析 整理下目前掌握的目标主机信息: 目标主机: 1、已获得登陆用户名及口令 2、可以net use连接 3、开放共享C 但是: 1、默认admin$共享关闭,无法使用psexec 2、Task scheduler...关闭,无法使用at、schtasks 3、Windows Management Instrumentation服务关闭,关闭135端口无法使用wmic、wmiexec 4、不支持3389 那么,如何在目标主机远程执行程序

    1.6K20

    干货 | 常用提权辅助工具推荐

    /linux-exploit-suggester.sh 三、使用Sherlock工具 1、简介 Sherlock是一个Windows下用于本地提权的PowerShell脚本。...目前包含了以下漏洞: MS10-015 : User Mode to Ring (KiTrap0D) MS10-092 : Task Scheduler MS13-053 : NTUserMessageCall...2、在运行Invoke-AllChecks后,便会列出当前系统可被提权的弱点之处,之后再执行检查结果AbuseFunction下的命令便能开始提权操作了。...六、accesschk.exe 1、简介 AccessChk是微软提供的一款安全检查工具,是Sysintenals集合的一款工具,使用它可以对Windows系统的一些系统文件、服务、注册表等进行管理和维护排查等功能...自定义产品版本,20H2 -f FILE, --file FILE ps1运行后产生的.json文件 2.使用方式 1.

    59711

    传播恶意软件最有效帮手:超95%的PowerShell脚本都是恶意脚本

    对很多IT专业人士来说,Powershell的确是Windows系统中一个相当强大的工具,而且微软也有意将PowerShell作为Windows系统的默认命令行工具。...当然PowerShell脚本的终极目标还是要在设备上执行恶意代码,整个网络传播恶意软件。 ?...研究人员还提到,今年观察的10797个PowerShell脚本——也包括那些没有恶意的脚本,55%的脚本是以cmd.exe开始执行的。 如果只考虑恶意脚本,95%都是通过cmd.exe执行。...针对已经被攻陷的网络,攻击者采用的PowerShell手法注入Invoke-Command、Enter-PSSession、WMI/wmic/Invoke-WMImethod、Task Scheduler...而且为了能够保证存在的持久性,PowerShell也会安排任务、替换启动文件夹的脚本、采用组策略或者WMI、感染本地配置文件,注册表存储脚本(2014年的Trojan.Poweliks)等。

    1.6K60

    干货 | 网络安全之渗透实战学习笔记总结

    用户的NTLM值破解方法、evil-winrm的运用、windows主机信息收集工具、msf运行powershell脚本、远程运行powershell脚本、PrintNightmare漏洞提权等多个知识点...;然后重点照顾下445端口; nmap -A --script smb-vuln* -p 445 10.10.11.106 并没有发现直接的突破口,那我们还是从web入手。...evil-winrm上传hack.exe,运行; 程序会报错且会话中断,迁移下进程,再次尝试; 需要事先上传ps1本到主机对应的位置,否则找不到脚本;!...目前,SMB 的最新版本是 SMB 3.1.1,它是 Windows 10 和 Windows Server 2016 引入的。...一旦受害者在运行提示符或命令提示符内运行恶意代码,我们就会在 Metasploit 上获得一个 Meterpreter 会话

    1.7K20

    Ansible 客户端需求–设置Windows主机

    您可以使用Upgrade-PowerShell.ps1本来更新它们。...注意 ConfigureRemotingForAnsible.ps1本仅用于培训和开发目的,不应在生产环境中使用,因为它可以启用Basic本质上不安全的设置(身份验证)。...要检查的一些事情包括: 确保防火墙未设置为阻止已配置的WinRM侦听器端口 确保主机变量所设置的端口和路径上启用了WinRM侦听器 确保该winrm服务正在Windows主机上运行并配置为自动启动 连接被拒绝错误...当将SSH密钥身份验证与Ansible结合使用时,远程会话将无权访问用户的凭据,并且尝试访问网络资源时将失败。这也称为双跳或凭据委派问题。...也可以看看 剧本简介 剧本介绍 技巧和窍门 剧本的提示和技巧 Windows模块列表 Windows特定的模块列表,全部PowerShell实现 用户邮件列表 有一个问题?

    10.1K41

    Antimalware Scan Interface (AMSI)—反恶意软件扫描接口的绕过

    『1』 它通过执行之前分析脚本来工作,以确定该脚本是否为恶意软件。此外,它旨在通过每个评估步骤递归调用来检测混淆的恶意软件。...原理: 通过每个代码评估点(Invoke-Expression)被调用,AMSI可以检查原始的,模糊的脚本的中间版本和最终版本。以这种方式,避免初始的静态筛选的简单技术不再有效。...负责决定是否允许运行脚本的函数称为AmsiScanBuffer。『2』 例如PowerShell将在每次要评估任何PowerShell脚本时调用此函数。...这种bypass有多种版本,我将提交最新C#版本嵌入.ps1,该版本完全取自解码器的powershell。...如果我们尝试PowerShell会话执行“amsiutils”,则会得到类似以下的内容 msf5 exploit(multi/handler) > sessions 1 [*] Starting

    2.2K20

    FreeBuf__PowerShell Empire实战入门篇

    PowerShell方面,帝国实现了无需powershell.exe即可运行PowerShell代理的功能,可快速部署的开发后的模块从按键记录到Mimikatz,可逃避网络检测的能力,适应性强的通信,...5.微软 Office Word 无宏命令执行漏洞 无需开启宏即可渗透:Office文档利用DDE执行命令,利用之前爆的这个漏洞配合Emprie反弹一个会话复现下, “制作详细传送门” 我们把之前使用的...编写钓鱼文档,调用cmd远程下载执行powershell脚本 ? 然后诱导对方点击这里需要触发两次,虚拟机安装了杀软没有任何有关恶意的安全警告 ? ? 成功拿到会话如下 ?...本是一样的 ?...,大量的模块都集成usemodule下,主要还是在于引导,使用方法多用多练就好,才能在实践灵活的运用,希望通过篇文章对没有接触过的Empire有一个比较全面的了解。

    2K80

    红队战术-躲避日志检查

    用户可以通过它来检查错误发生的原因,或者寻找受到攻击时攻击者留下的痕迹。...windows各种日志,最常用被安全人员审计的日志,有应用程序日志,系统日志,安全日志。...目标操作系统检测Windows事件日志服务的过程。 2. 获取线程列表并标识Windows事件日志服务线程ID。 3. 终止有关Windows事件日志服务的所有线程。 ?...简而言之,Windows事件日志服务主进程还在,但是运行着各种功能的线程已经没了。 powershell -ep bypass ....但是有点风险,我用windows 7 sp2 测试,会出现开不了鸡的情况。 6.Metasploit Metasploit会话,可以从事件查看器清除应用程序,安全性和系统日志。

    97720

    权限提升分析及防御

    、绕过UAC提权、令牌窃取及无凭证条件下的权限获取,并提出了相应的安全防范措施 Windows,权限大概分为四种: User:普通用户权限,默认不允许修改系统的设置或用户资料 Administrator...用户权限过高等 1、系统服务权限配置错误 Windows系统服务文件操作系统启动时加载和执行,并在后台调用可执行文件。...产生原因 因为Windows服务通常都是以System权限运行的,所以系统解析服务所对应的文件路径的空格时,也会以系统权限运行 :C:\Program Files\Some Folder\Service.exe...利用方法 查看当前计划任务: schtasks /query /fo LIST /v 这里提到了一个工具,AccessChk用于Windows运行一些系统或程序的高级查询,管理和故障排除工作。...,是一种用于实现计算机身份校验的物理设备,例如U盾 会话令牌(Session Token)是交互会话唯一的身份标识符 伪造令牌攻击的核心是Kerberos协议。

    1.5K20

    Windows提权之Hot Potato

    文章前言 Hot Potato是Stephen Breen发现的Windows权限提升技术的代号,这种技术实际上是两个已知的windows问题的结合,nbns欺骗和ntlm中继,以及目标主机上本地运行的假...),攻击将被部署,cmd命令将以更高的权限执行: 本例,pentestlab用户被添加到本地administrators组,这意味着提升是可能的 Metasploit 可以使用Metasploit...框架来获得一个Meterpreter会话作为system,而不是向本地administrators组添加新用户,这可以通过使用一个额外的metasploit有效负载来实现,该有效负载应该放在目标上(除了...web上的各种来源中进行了描述,从第一个shell开始,为了运行有效负载,将对Potato漏洞进行轻微修改: 第二个shell,应该启动internet explorer,这样漏洞就可以捕获http...Service + Scheduled Task 该脚本已经Windows 2008 server R2环境测试过,但是它似乎不像在windows 7和windows 10那样可靠,因此,下面的截图来自这个工具的所有者

    78320
    领券