[玩转系统] 将 PowerShell 脚本 (*.PS1) 作为 Windows 服务运行
作者:精品下载站 日期:2024-12-14 20:06:11 浏览:15 分类:玩电脑
将 PowerShell 脚本 (*.PS1) 作为 Windows 服务运行
任何 PowerShell 脚本都可以转换为真正的 Windows 服务,该服务在后台运行并在服务器启动期间自动启动。您可以使用以下命令创建 Windows 服务
srvany.exe
或者
instsrv.exe
工具(来自 Windows Server Resource 2003 Kit),允许您运行
powershell.exe
使用包含 PS1 脚本文件路径的参数进行处理。
使用此方法创建服务的主要缺点是 srvany.exe 无法控制 PowerShell 脚本执行状态,如果应用程序崩溃(挂起),服务不会看到它并继续工作。要从包含 PowerShell 脚本的文件创建 Windows 服务,在本文中我们将使用 NSSM (Non-Sucking Service Manager) 工具包,该工具包不会演示上述缺点。
您可以手动或使用 Chocolatey 下载并安装 NSSM。首先,安装 Choco 本身:
Set-ExecutionPolicy Bypass -Scope Process -Force; `
iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
然后安装 NSSM 包:
choco install nssm
在此示例中,我们将实时跟踪特定 Active Directory 组中的更改,并使用弹出通知和电子邮件通知安全管理员(本文给出了脚本)。
因此,我们有一个需要保存为 PS1 文件的 PowerShell 代码。让我们添加一个无限循环,每分钟执行一次检查:
while($true) {
#Your PS code
Start-Sleep -Seconds 60
}
当然,要实现这样的场景,您可以在任务计划程序中创建单独的任务。但如果你必须实时响应变化,那么单独的服务方法更好。
您可以直接从 PowerShell 使用 NSSM 从 PowerShell 脚本创建服务:
$NSSMPath = (Get-Command "C:\ps\nssm\win64\nssm.exe").Source
$NewServiceName = “CheckADGroup”
$PoShPath= (Get-Command powershell).Source
$PoShScriptPath = “C:\ps\CheckADGroup\checkad.ps1”
$args = '-ExecutionPolicy Bypass -NoProfile -File "{0}"' -f $PoShScriptPath
& $NSSMPath install $NewServiceName $PoShPath $args
& $NSSMPath status $NewServiceName
开始您的新服务:
Start-Service $NewServiceName
在 PowerShell 中检查服务状态:
Get-Service $NewServiceName
现在您已经创建并启动了新的 Windows 服务。确保它已出现在服务管理控制台 (services.msc) 中。
CheckADGroup 已出现,它被配置为自动启动并且当前正在运行。如您所见,您的 PowerShell 脚本正在 nssm.exe 进程内运行。
请注意,该服务在系统帐户下运行。如果您在 PowerShell 脚本中使用其他模块(在我的例子中,使用 Windows PowerShell 的 Active Directory 中的 Get-ADGroupMember 来获取域安全组中的成员列表),则此帐户必须有权访问 PS 模块文件和 AD 连接权限(在我的例子中)。您还可以在另一个域帐户(或 gMSA 帐户)下启动此服务,并允许用户在没有本地管理员权限的情况下停止/重新启动该服务。
为了使服务可以在用户会话中显示通知,请启用登录选项卡上的允许服务与桌面交互选项。
要使其在 Windows 10 和 Windows Server 2012 R2/2016 中工作,请将注册表项 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Windows 中的 DWORD NoInteractiveServices 参数值更改为 0 并运行 Interactive Services Inspection Service:
Start-Service -Name ui0detect
但是,交互式服务检测服务已从 Windows 10 build 1803 中完全删除,您将无法切换到会话 0。因此您不会看到系统帐户下显示的通知窗口。
您可以使用以下命令更改服务描述:
& $NSSMPath set $NewServiceName description “Monitoring of AD group changes”
要删除您创建的服务,请使用
sc delete
命令或:
nssm remove CheckADGroup
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[短剧] 2025年05月31日 精选+付费短剧推荐58部
[软件合集] 25年5月31日 精选软件66个
[电影] 黄沙漫天(2025) 4K.EDRMAX.杜比全景声 / 4K杜比视界/杜比全景声
[风口福利] 短视频红利新风口!炬焰创作者平台重磅激励来袭
[韩剧] 宝物岛/宝藏岛/金银岛(2025)【全16集】【朴炯植/悬疑】
[电影] 愤怒的牦牛 (2025) 国语中字 4k
[短剧合集] 2025年05月30日 精选+付费短剧推荐56部
[软件合集] 25年5月30日 精选软件26个
[软件合集] 25年5月29日 精选软件18个
[短剧合集] 2025年05月28日 精选+付费短剧推荐38部
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[美图] 2W美女个美女小姐姐,饱眼福
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag