我想更改已创建的 Windows 服务的显示名称。我在网上读到我可以改变注册表中的值。如果我在注册表中更改它,然后重新启动我的服务窗口,新名称似乎没有反映出来。我假设如果我重新启动计算机,这个新名称将被反映,但我需要一个无需重新启动计算机即可立即显示的解决方案。
下面是一个例子:
我启动 services.exe 并右键单击要更改的服务并单击属性。在属性窗口中,我看到服务名称为service1,显示名称为service1。我进入注册表并导航到
HKLM\system\CurrentControlSet\services\service1.
在这里,有一个名为的字段DisplayName设置为service1。我去把这个值改成Some Name. 更改此值后,我重新启动服务,但仍然看到service1. 当我转到 的属性时service1,我仍然看到显示名称 asservice1和 not Some Name。
我有一个批处理文件,它是安装程序的包装器。该批处理文件检查安装程序返回的错误级别并进行相应的打印。
我注意到,如果我set ERRORLEVEL=0在启动批处理文件(在同一命令窗口/环境中)之前在命令提示符下执行,安装程序永远不会弄乱错误级别,我的批处理脚本总是返回通过。我假设%ERRORLEVEL%是一个由 Windows 定义的变量,专门用于打印程序和脚本中的错误,并且在批处理文件或其他东西中使用该变量将“自担风险”,因为它可以随时更改另一个过程。
从表面上看,当我在给定环境中设置 errorlevel 时,它会以某种方式终止使用 errorlevel 作为退出代码的持有者。有人知道为什么是这样吗?对我来说,这只是奇怪的意外行为。任何有关该主题的信息将不胜感激!
我试图在安装时了解 NOEXEC 标志。
我在别人机器上的 /tmp 目录中遇到了一个执行问题,我无法访问 atm,其中 /tmp 目录安装在与“/”不同的驱动器上,并且存在 NOEXEC。我想尝试在我的机器上重新创建这个场景,但我没有第二个硬盘驱动器。我尝试执行以下命令:
mount --bind /test1 /test2
Run Code Online (Sandbox Code Playgroud)
然后我删除了该bind标志并添加NOEXEC到 /etc/fstab 中。然后,我在 /test2 中创建了一个名为 test.sh 的文件,它只是回应“hello world”。我尝试运行它,它说“权限被拒绝”。然后我运行chmod 777 test.sh并能够很好地执行该文件。我认为 NOEXEC 标志不应该允许我执行任何操作?
是mount --bind /test1 /test2不一样的,从一个完全不同的物理驱动器的安装?如 /test1 和 /test2 在不同的驱动器上?
我试图通过 Windows 命令行找出一种方法来确定进程是否没有父进程。
我知道所有进程在技术上都有一个由操作系统或其他任何东西控制的父进程,但为了简单起见,它“没有父进程”。例如,如果您打开一个资源管理器窗口,它将显示在进程资源管理器中进程树的顶部。
但是,当我对进程进行 wmic 查询时,我得到了“parentProcessPID”的 PID。当我尝试使用任务列表查找该 PID 时,它说无法识别 PID。我看过几个这样的进程,它们似乎有不同的父进程,这些进程都无法通过任务列表访问。如果一个进程有一个无法通过任务列表访问的父进程,这是否意味着它位于其进程树的“顶部”?
我问是因为我试图区分自己运行的程序和作为另一个程序的子进程运行的同一个程序。
例如:
假设我进入 Windows 开始菜单并打开一个资源管理器窗口。然后,我打开一个 cmd 窗口并输入:explorer.exe. 我现在有两个 explorer.exe 进程。一个是 cmd.exe 的子进程,一个是独立进程。我希望能够通过 wmic 或 tasklist 查询,挑出explorer.exe作为独立进程的所有进程。因此,应该返回我通过 Windows 开始菜单启动的进程,而不是 cmd.exe 启动的进程。
我遇到了每个进程都有一个父进程 ID 的问题,我不知道如何区分来自程序的父进程或来自与操作系统相关的进程的父进程。如果我能做到以下几点,那就太好了:
伪代码:
wmic process where name=explorer.exe get parentProcessID,processID
tasklist /fi "PID eq <parentProcessID>" 2>&1> log.txt
if(log.txt contains "INFO: No tasks are running which match the specified criteria."){
// Parent PID is not recognized by tasklist
// Do something
}
Run Code Online (Sandbox Code Playgroud)
但我不确定我的逻辑是否正确。
我有一个关于 sudo 命令和 root 用户的 Linux 问题。如果我使用该su命令以root用户登录,下面两个命令有什么区别?
root> sudo ./some_executable
Run Code Online (Sandbox Code Playgroud)
和
root> ./some_executable
Run Code Online (Sandbox Code Playgroud)
有区别吗?我正在尝试使用一个可执行文件,并注意到该可执行文件与第一个命令一起工作正常,但第二个命令失败,说明我没有以 root 身份运行该命令。我一直认为 sudo/su 命令允许您以 root 权限执行命令,因此执行第一个命令将是多余的。但是,我确实注意到 root 用户在 sudoers 文件中,所以我不知道这是否是可执行文件中的错误,或者运行以 root 身份登录的命令与使用 sudo 登录的命令之间是否真的有区别?
windows ×3
command-line ×2
linux ×2
batch ×1
batch-file ×1
hard-drive ×1
mount ×1
permissions ×1
process ×1
root ×1
services ×1
su ×1
sudo ×1