首页 > 系统相关 >HKCU\Environment\UserInitMprLogonScript;HKLM\Software\Microsoft\Windows NT\CurrentVersion\Win

HKCU\Environment\UserInitMprLogonScript;HKLM\Software\Microsoft\Windows NT\CurrentVersion\Win

时间:2024-06-22 12:59:13浏览次数:3  
标签:脚本 exe UserInit Windows Winlogon 用户 Environment UserInitMprLogonScript

  1. HKCU\Environment\UserInitMprLogonScript: 这个键位于 HKEY_CURRENT_USER (HKCU) 的 Environment 分支下,它用于存储与当前用户环境相关的设置。UserInitMprLogonScript 键可能被设置为在用户登录时运行一个脚本或程序。这个脚本通常用于配置用户特定的环境设置或执行一些登录任务。例如,它可能用于映射网络驱动器、设置环境变量或运行其他批处理文件。

  2. HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\UserInit: 这个键位于 HKEY_LOCAL_MACHINE (HKLM) 的 Software 分支下,它用于存储与 Windows 登录过程相关的设置。UserInit 键的值通常设置为 userinit.exe,,这是 Windows 的一个系统程序,用于初始化用户环境。它会在用户登录时自动运行,负责加载用户配置文件和执行其他登录相关的初始化任务。如果有其他程序或脚本需要在这个阶段运行,它们的路径可以添加到这个键的值中,用逗号分隔。


在 Windows 操作系统中,HKCU\Environment\UserInitMprLogonScript 和 HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\UserInit 是注册表中的两个键,它们分别用于在用户登录时执行特定的脚本或程序。

HKCU\Environment\UserInitMprLogonScript

这个键位于 HKEY_CURRENT_USER (HKCU) 的 Environment 分支下,它允许每个用户在登录时运行一个自定义的脚本。例如,如果某个用户需要自动映射网络驱动器或设置特定的环境变量,可以在该用户的 UserInitMprLogonScript 键下指定一个批处理脚本(.bat)或 PowerShell 脚本(.ps1)。

初级应用实例:

  1. 打开注册表编辑器(regedit.exe)。
  2. 导航到 HKCU\Environment
  3. 右键点击 Environment,选择 “新建” -> “字符串值”。
  4. 命名新字符串值为 UserInitMprLogonScript
  5. 双击 UserInitMprLogonScript,在 “数值数据” 框中输入脚本的完整路径,例如 C:\Users\Username\LoginScript.bat
  6. 点击 “确定” 并重启计算机或注销当前用户以应用更改。

HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\UserInit

这个键位于 HKEY_LOCAL_MACHINE (HKLM) 的 Software 分支下,它影响所有用户的登录过程。UserInit 键的默认值是 userinit.exe,,这是 Windows 的一个系统程序,用于初始化用户环境。

初级应用实例:

  1. 打开注册表编辑器(regedit.exe)。
  2. 导航到 HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon
  3. 双击 “UserInit” 键。
  4. 在 “数值数据” 框中,您可以添加额外的程序路径,与 userinit.exe 用逗号分隔。例如,如果想要在登录时运行 C:\Programs\MyApp\MyAppInit.exe,您可以将其添加到现有值之后,变为 userinit.exe,C:\Programs\MyApp\MyAppInit.exe
  5. 点击 “确定” 并重启计算机或注销所有用户以应用更改。

HKCU\Environment\UserInitMprLogonScript

中级应用实例:

假设您是一名系统管理员,您想要为特定用户部署一个登录脚本,该脚本将设置一些特定的网络配置和映射网络驱动器。您可以按照以下步骤操作:

  1. 使用文本编辑器编写一个批处理文件(例如 LoginScript.bat),包含映射网络驱动器的命令,例如:

      复制
    @echo off
    net use Z: \\server\share /user:username password
  2. 将编写好的批处理文件放置在用户可以访问的路径下,例如 C:\Users\Public\LoginScripts\LoginScript.bat

  3. 打开注册表编辑器(regedit.exe)。

  4. 导航到 HKCU\Environment

  5. 右键点击 Environment,选择 “新建” -> “字符串值”。

  6. 命名新字符串值为 UserInitMprLogonScript

  7. 双击 UserInitMprLogonScript,在 “数值数据” 框中输入脚本的完整路径,例如 C:\Users\Public\LoginScripts\LoginScript.bat

  8. 点击 “确定” 并注销或重启计算机以应用更改。

HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\UserInit

中级应用实例:

假设您想要为所有用户部署一个自定义的程序,该程序将在用户登录时自动运行。您可以按照以下步骤操作:

  1. 将您的自定义程序放置在一个所有用户都可以访问的路径下,例如 C:\Programs\MyApp\MyAppInit.exe

  2. 打开注册表编辑器(regedit.exe)。

  3. 导航到 HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon

  4. 双击 “UserInit” 键。

  5. 在 “数值数据” 框中,将您的程序路径添加到现有值之后,用逗号分隔。例如,如果默认值是 userinit.exe,,您可以更改为 userinit.exe,C:\Programs\MyApp\MyAppInit.exe

  6. 点击 “确定” 并重启计算机或注销所有用户以应用更改。


HKCU\Environment\UserInitMprLogonScript

高级应用实例:

在这个例子中,我们将创建一个 PowerShell 脚本,该脚本将在用户登录时执行,以检查和配置用户的环境设置,并执行一些高级任务,如更新环境变量或安装缺失的软件。

  1. 使用文本编辑器编写一个 PowerShell 脚本(例如 LoginConfig.ps1),包含您想要执行的任务,例如:

    powershell 复制
    # 检查并设置环境变量
    if (-not $env:MY_VARIABLE) {
        [Environment]::SetEnvironmentVariable("MY_VARIABLE", "MyValue", [EnvironmentVariableTarget]::User)
    }
    
    # 安装缺失的软件
    # 这里可以添加安装软件的 PowerShell 命令
  2. 将 PowerShell 脚本放置在用户可以访问的路径下,例如 C:\Users\Public\LoginScripts\LoginConfig.ps1

  3. 打开注册表编辑器(regedit.exe)。

  4. 导航到 HKCU\Environment

  5. 右键点击 Environment,选择 “新建” -> “字符串值”。

  6. 命名新字符串值为 UserInitMprLogonScript

  7. 双击 UserInitMprLogonScript,在 “数值数据” 框中输入脚本的完整路径,例如 C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass -File "C:\Users\Public\LoginScripts\LoginConfig.ps1"

  8. 点击 “确定” 并注销或重启计算机以应用更改。

HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\UserInit

高级应用实例:

在这个例子中,我们将使用 UserInit 键来运行一个自定义的登录脚本,该脚本将在用户登录时执行,以验证系统配置并执行一些管理任务。

  1. 使用文本编辑器编写一个批处理文件或 PowerShell 脚本(例如 SystemCheck.ps1),包含您想要执行的管理任务,例如:

    powershell 复制
    # 检查系统更新
    # 检查磁盘空间
    # 运行自定义管理脚本
  2. 将脚本放置在所有用户都可以访问的路径下,例如 C:\ProgramData\SystemScripts\SystemCheck.ps1

  3. 打开注册表编辑器(regedit.exe)。

  4. 导航到 HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon

  5. 双击 “UserInit” 键。

  6. 在 “数值数据” 框中,将您的脚本路径添加到现有值之后,用逗号分隔。例如,如果默认值是 userinit.exe,,您可以更改为 userinit.exe,C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass -File "C:\ProgramData\SystemScripts\SystemCheck.ps1"

  7. 点击 “确定” 并重启计算机或注销所有用户以应用更改。


HKCU\Environment\UserInitMprLogonScript

专家级应用实例:

在这个例子中,我们将创建一个复杂的登录脚本,该脚本将在用户登录时执行,以动态配置网络设置,并根据用户的角色应用不同的安全策略。

  1. 使用 PowerShell 编写一个高级脚本(例如 DynamicNetworkConfig.ps1),该脚本将根据用户的 AD 组成员资格配置网络设置,例如:

    powershell 复制
    # 获取当前用户信息
    $user = [System.Security.Principal.WindowsIdentity]::GetCurrent()
    
    # 检查用户是否属于特定AD组
    $isMember =$user.Groups | ForEach-Object { $_.Translate([System.Security.Principal.NTAccount]) } | Where-Object {$_.Value -eq "Domain\NetworkConfigGroup" }
    
    if ($isMember) {
        # 应用网络设置
        # 例如:设置静态IP,加入域等
    } else {
        # 应用默认网络设置
    }
  2. 将 PowerShell 脚本放置在一个安全的路径下,例如 C:\ProgramData\NetworkScripts\DynamicNetworkConfig.ps1

  3. 打开注册表编辑器(regedit.exe)。

  4. 导航到 HKCU\Environment

  5. 右键点击 Environment,选择 “新建” -> “字符串值”。

  6. 命名新字符串值为 UserInitMprLogonScript

  7. 双击 UserInitMprLogonScript,在 “数值数据” 框中输入脚本的完整路径,例如 C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass -File "C:\ProgramData\NetworkScripts\DynamicNetworkConfig.ps1"

  8. 点击 “确定” 并注销或重启计算机以应用更改。

HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\UserInit

专家级应用实例:

在这个例子中,我们将使用 UserInit 键来运行一个自定义的登录脚本,该脚本将在用户登录时执行,以进行系统健康检查和性能监控。

  1. 使用 PowerShell 编写一个高级脚本(例如 SystemHealthCheck.ps1),该脚本将收集系统信息,检查关键服务状态,并记录性能数据,例如:

    powershell 复制
    # 获取系统信息
    $os = Get-WmiObject -Class Win32_OperatingSystem
    $cpu = Get-WmiObject -Class Win32_Processor
    $memory = Get-WmiObject -Class Win32_PhysicalMemory | Measure-Object -Property Capacity -Sum | ForEach-Object {$_.Sum }
    
    # 检查关键服务状态
    $services = @("WinRM", "DnsCache", "Netlogon")
    foreach ($service in$services) {
        $status = Get-Service -Name$service
        if ($status.Status -ne "Running") {
            # 记录或修复服务状态
        }
    }
    
    # 记录性能数据
    $perfData = Get-Counter -Counter "\Processor(_Total)\% Processor Time","\Memory\Available MBytes"
    # 将数据记录到日志文件或数据库
  2. 将脚本放置在一个安全的路径下,例如 C:\ProgramData\SystemHealthCheck\SystemHealthCheck.ps1

  3. 打开注册表编辑器(regedit.exe)。

  4. 导航到 HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon

  5. 双击 “UserInit” 键。

  6. 在 “数值数据” 框中,将您的脚本路径添加到现有值之后,用逗号分隔。例如,如果默认值是 userinit.exe,,您可以更改为 userinit.exe,C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass -File "C:\ProgramData\SystemHealthCheck\SystemHealthCheck.ps1"

  7. 点击 “确定” 并重启计算机或注销所有用户以应用更改。


HKCU\Environment\UserInitMprLogonScript

顶尖级应用实例:

在这个例子中,我们将创建一个复杂的登录脚本,该脚本将在用户登录时执行,以动态配置个性化的用户环境,包括网络设置、应用程序配置和用户权限。

  1. 使用 PowerShell 编写一个高级脚本(例如 PersonalizedUserEnvironment.ps1),该脚本将根据用户的属性和需求配置环境,例如:

    powershell 复制
    # 获取当前用户信息
    $user = [System.Security.Principal.WindowsIdentity]::GetCurrent()
    
    # 根据用户属性配置环境
    switch ($user.Name) {
        "User1" {
            # 配置用户1的环境
        }
        "User2" {
            # 配置用户2的环境
        }
        # 更多用户配置...
    }
    
    # 应用通用的网络设置
    # 配置应用程序设置
    # 设置用户权限
  2. 将 PowerShell 脚本放置在一个安全的路径下,例如 C:\ProgramData\UserEnvironment\PersonalizedUserEnvironment.ps1

  3. 打开注册表编辑器(regedit.exe)。

  4. 导航到 HKCU\Environment

  5. 右键点击 Environment,选择 “新建” -> “字符串值”。

  6. 命名新字符串值为 UserInitMprLogonScript

  7. 双击 UserInitMprLogonScript,在 “数值数据” 框中输入脚本的完整路径,例如 C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass -File "C:\ProgramData\UserEnvironment\PersonalizedUserEnvironment.ps1"

  8. 点击 “确定” 并注销或重启计算机以应用更改。

HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\UserInit

顶尖级应用实例:

在这个例子中,我们将使用 UserInit 键来运行一个自定义的登录脚本,该脚本将在用户登录时执行,以进行全面的系统诊断和修复,以及自动化部署和更新。

  1. 使用 PowerShell 编写一个高级脚本(例如 SystemDiagnosticAndRepair.ps1),该脚本将执行以下任务:

    • 执行系统文件检查(sfc /scannow)
    • 检查磁盘错误(chkdsk)
    • 更新系统补丁
    • 部署最新的应用程序更新
    • 修复常见的问题
  2. 将脚本放置在一个安全的路径下,例如 C:\ProgramData\SystemMaintenance\SystemDiagnosticAndRepair.ps1

  3. 打开注册表编辑器(regedit.exe)。

  4. 导航到 HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon

  5. 双击 “UserInit” 键。

  6. 在 “数值数据” 框中,将您的脚本路径添加到现有值之后,用逗号分隔。例如,如果默认值是 userinit.exe,,您可以更改为 userinit.exe,C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass -File "C:\ProgramData\SystemMaintenance\SystemDiagnosticAndRepair.ps1"

  7. 点击 “确定” 并重启计算机或注销所有用户以应用更改。


 

标签:脚本,exe,UserInit,Windows,Winlogon,用户,Environment,UserInitMprLogonScript
From: https://www.cnblogs.com/suv789/p/18262171

相关文章

  • 查路径大纲,对于更复杂的入侵事件,可能需要更深入的技术知识和专业工具来进行排查和分析
    一个简单的Windows初级入侵排查路径大纲:收集信息:确定受影响的系统和用户收集有关入侵的详细信息,包括可能的攻击向量和时间线分析日志:检查Windows事件日志,特别关注安全事件和异常活动分析网络流量日志,查找异常连接或数据传输扫描系统:运行杀毒软件和安全扫描工具......
  • 深入理解和实现Windows进程间通信(共享内存)
    常见的进程间通信方法常见的进程间通信方法有:管道(Pipe)消息队列共享内存信号量套接字下面,我们将详细介绍共享内存的原理以及具体实现。什么是共享内存?Windows共享内存(SharedMemoryinWindows)是一种操作系统机制,允许不同的进程(程序)共享一段内存空间。这意味着多个进......
  • 用Rufus工具制作Windows To Go,三步搞定!
    前言前几天小白发了一篇关于使用Dism++工具制作WindowsToGo的教程:简单几步把完整的Windows塞进U盘,小白都能看懂这个在Dism++软件上制作WindowsToGo的教程比在WinPE系统制作简单了一些,但里面有部分操作可能有些小伙伴看不懂。这个没关系!今天小白给小伙伴们带来更加简......
  • Windows C++ 应用软件开发从入门到精通详解
    目录1、引言2、IDE开发环境介绍2.1、VisualStudio 2.2、QTCreator3、Windows平台实用小工具介绍3.1、代码编辑器VSCode3.2、代码查看编辑器SourceInsight3.3、文本编辑器Notepad++3.4、文件搜索工具Everything4、C++语言特性4.1、熟悉泛型编程4.2、了解......
  • Windows 系统安装 NVM(Node Version Manager)攻略
    Windows系统安装NVM(NodeVersionManager)全攻略在Windows系统中,NVM(NodeVersionManager)是一个非常实用的工具,它允许我们方便地管理和切换不同版本的Node.js。在这篇博客中,我将详细介绍Windows系统下安装NVM的步骤、使用方法以及可能出现的问题和解决办法。一、......
  • Windows 系统服务器安装 JDK 配置全攻略
    Windows系统服务器安装JDK配置全攻略在进行Java开发或者部署Java应用程序时,正确安装和配置JDK(JavaDevelopmentKit)是至关重要的一步。在这篇博客中,我将详细介绍在Windows系统服务器上安装JDK的步骤和配置过程。一、准备工作在开始安装JDK之前,我们需要完成......
  • Windows Server 2025 中文版、英文版下载 (Inside Preview, updated Jun 2024) - 下一
    WindowsServer2025中文版、英文版下载(InsidePreview,updatedJun2024)-下一代Windows11ServerWindowsServer2025正式版发布在即请访问原文链接:https://sysin.org/blog/windows-server-2025/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org我们知道W......
  • Windows Server 2022 OVF, updated Jun 2024 (sysin) - VMware 虚拟机模板
    WindowsServer2022OVF,updatedJun2024(sysin)-VMware虚拟机模板2024年6月版本更新,现在自动运行sysprep,支持ESXiHostClient部署请访问原文链接:https://sysin.org/blog/windows-server-2022-ovf/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org现在......
  • Windows Server 2019 OVF, updated Jun 2024 (sysin) - VMware 虚拟机模板
    WindowsServer2019OVF,updatedJun2024(sysin)-VMware虚拟机模板2024年6月版本更新,现在自动运行sysprep,支持ESXiHostClient部署请访问原文链接:https://sysin.org/blog/windows-server-2019-ovf/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgWindo......
  • Windows Server 2022 中文版、英文版下载 (updated Jun 2024)
    WindowsServer2022中文版、英文版下载(updatedJun2024)WindowsServer2022x64,Version21H2请访问原文链接:https://sysin.org/blog/windows-server-2022/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org直接上链接,详细说明请访问原文查看。下载地址Window......