在网上搜索,找到了很多关于 的结果Get/Set-Service
,wmic
以及sc
msconfig 和任务管理器本身的大量 GUI 选项,但我需要设置 Windows 机器的无人值守安装,因此需要通过命令行禁用这些启动程序。
要找到这些应用程序,请打开任务管理器并单击“启动”选项卡。您将看到设置为“启用”或“禁用”的应用程序列表及其启动影响。
例如,我尝试阻止启动的应用程序是 Citrix 和 KeePass。
PowerShell 的Get-Service
命令不显示这些服务。运行sc query
不显示这些服务,也不wmic startup
显示这些服务。我不知道如何通过命令行禁用这些服务。
答案1
自动启动位于注册表或计划任务中。
查找并删除这些条目或将其删除。但是,如果这是一台公司机器,并且您不是本地管理员,您将无法执行此操作。即使您是。如果有强制执行的域级 GPO,它们无论如何都会重新启动。
您可以使用 PowerShell 修改关联的注册表项。请查看注册表提供程序的帮助
Get-Help about_providers
Get-Help registry
如果将任务管理器中的条目与SysInternals 自动运行然后任务管理器将显示来自以下位置的程序:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run
C:\Users\\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
HKCU\Software\Microsoft\Windows\CurrentVersion\Run
我想根据您的具体配置,可能会有更多位置,但以上内容对我的机器而言是正确的。
Autoruns 通过删除和添加注册表项来启用和禁用启动程序
但是,任务管理器不会删除注册表项,它实际上会修改以下位置的注册表项:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\StartupApproved\Run HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\StartupApproved\Run
任务管理器中列出的每个程序都有一个条目。看起来值 02 00 00 00 00 00 00 00 00 00 00 00 00 已启用,其他任何值均已禁用。不过,我只做了短暂的尝试,必须关闭/打开任务管理器才能看到它从启用变为禁用。
获取/停止进程(常规应用程序、脚本等)。
# get function / cmdlet details
(Get-Command -Name Get-Process).Parameters
Get-help -Name Get-Process -Full
Get-help -Name Get-Process -Online
Get-help -Name Get-Process -Examples
(Get-Command -Name Stop-Process).Parameters
Stophelp -Name Stop-Process -Full
Get-help -Name Stop-Process -Online
Get-help -Name Stop-Process -Examples
Get/Stop-Service 适用于服务而非进程(真实服务、虚假服务)。
# get function / cmdlet details
(Get-Command -Name Get-Service).Parameters
Get-help -Name Get-Service -Full
Get-help -Name Get-Service -Online
Get-help -Name Get-Process -Examples
(Get-Command -Name Stop-Service).Parameters
Get-help -Name Stop-Service -Full
Get-help -Name Stop-Service -Online
Get-help -Name Stop-Service -Examples