我的计划任务 exe 在域帐户下运行。我需要为该帐户设置一个环境变量,但以我的身份登录。
我做了 StackOverFlow 一些答案,他们建议编辑该帐户的 SID 的注册表,但我在 HKEY_USERS 中找不到该 SID。
我尝试使用 SETX,但不确定 /s 参数,因为文档建议“远程计算机”。有什么方法可以让我以我的身份登录到运行计划作业的远程计算机并为该服务帐户设置环境变量?
谢谢!
我的计划任务 exe 在域帐户下运行。我需要为该帐户设置一个环境变量,但以我的身份登录。
我做了 StackOverFlow 一些答案,他们建议编辑该帐户的 SID 的注册表,但我在 HKEY_USERS 中找不到该 SID。
我尝试使用 SETX,但不确定 /s 参数,因为文档建议“远程计算机”。有什么方法可以让我以我的身份登录到运行计划作业的远程计算机并为该服务帐户设置环境变量?
谢谢!
我在 Windows 10 上搞砸了,删除了%WINDIR%
系统环境变量,然后重新启动了我的电脑。现在,很多东西都坏了,包括海拔提示和系统属性面板。如何恢复变量?
在[ts(1)]的ENVIRONMENT
部分man
页面下显示:ts
如果未将时区指定为日期的一部分,则标准 TZ 环境变量控制假定的时区日期。
我知道它使用 TZ 环境变量中指定的任何时区。但是,我不明白如何将时区指定为日期的一部分,我的理解是format
in 字段ts [-r] [-i | -s] [format]
可以以某种方式用于指定时区。
那么问题是,如何在ts
不改变环境变量的情况下为带有实用程序的时间戳指定所需的时区?
一些背景:
我的服务器与我位于不同的时区。因此,每当我使用ts
向输出添加时间戳时,我希望它显示在我当前的时区中。我不想更改TZ
环境变量,因为它可能会干扰当前正在运行的脚本或将要运行的脚本。
我遇到了达到 Windows PATH变量的最大长度的问题。我读了一篇文章,建议通过创建另一个环境变量来扩展它,比如PATH1,向该新变量添加额外的目录路径,然后添加%PATH1%
到PATH变量。这很好用:当我这样做时,我可以看到 PATH1 中列出的目录,并且依赖于PATH1中列出的目录的应用程序似乎可以正常工作。echo %PATH%
但是,几个小时后,Windows 文件资源管理器似乎忘记了添加到PATH1变量中的目录。我知道它在重新启动后立即工作,因为PATH1包含一个带有快捷方式的目录,我经常通过“运行”对话框运行该目录。这些快捷方式在重新启动后可以工作几个小时。但最终我会尝试从“运行”对话框运行快捷方式并获取消息Windows cannot find '<shortcut name>'
。之后,在我重新启动机器之前,所有快捷方式都不会再次起作用。
当我收到该Windows cannot find '<shortcut name>'
错误消息时,我可以打开命令提示符并运行echo %PATH%
. 它仍将包括添加到PATH1变量的目录。因此,整个 Windows 并没有忘记PATH1中的目录。它似乎只是文件资源管理器。
几个小时后是否有一些记忆压力或可能导致这种情况的东西?我能做些什么来避免它吗?
我和我的同事都在我们各自的 Win11 计算机上调试 C++ 程序。
我们的 System Properties->Environment Variables->System Variables 都有一个环境变量MYAPP_USER_DIR %USERPROFILE%\myapp
。
在我的系统上,在 cmd.exe 中,
C:\Users\me>echo %USERPROFILE%
C:\Users\me
C:\Users\me>echo %MYAPP_USER_DIR%
C:\windows\system32\config\systemprofile\myapp
我什至不明白这一点:%USERPROFILE% 扩展到 USERPROFILE 的值以外的东西,我也很好奇。
不过,对于我的同事来说,
C:\Users\him>echo %MYAPP_USER_DIR%
%USERPROFILE%\myapp
它根本没有扩展。为什么不?
此外,当我的同事重新启动时,它现在已设置!为什么???
C:\Users\him>echo %TIMELIKE_USER_DIR%
C:\Users\him\myapp
在我的终端中输入时env
,结果之一是LC_TERMINAL_VERSION
.
我一直想知道它是什么,或者是否有办法获取有关我终端中存在的不同环境变量的文档
示例 1:
当我使用包管理器(例如 JavaScript 包管理器)安装包npm
时,该包立即可以从任何终端上的任何目录运行:
$ npm install -g redis-cli
我什至不必重新启动笔记本电脑,我现在可以使用此命令:
$ rdcli
示例 2:
再举一个例子,让我们使用 Python 包管理器安装一个 Python 模块pip
:
$ pip install rq
现在此命令在任何地方都可用,无需重新启动操作系统:
$ rq
相比之下:
相反,当我将文件夹添加到我的环境变量路径时,我必须重新启动系统:
C:\Program Files\smartmontools\bin
现在重新启动或执行此技巧后,我可以使用此命令:
$ smartctl.exe
谁能解释一下包管理器在后台做了什么?
额外的:
我注意到的一件事是,当您使用包管理器安装包并且尚未重新启动系统时,它仅适用于终端,如 CMD、Powershell 或 MinTTY,其他应用程序还看不到它,例如,如果您在终端中运行此命令:
winpty rdcli
你会得到这个错误:
winpty: error: cannot start 'rdcli': Not found in PATH
但是重新启动系统后,该命令将起作用。
众所周知,cron 和 ssh-agent 不通信,因此 ssh 命令不能在 cron 下轻松运行。有一些涉及钥匙串等的解决方案可以做到这一点。但是,在我的情况下,我需要在远程服务器上运行一个 cron 作业(我通过代理转发通过 ssh 登录),它将使用 ssh 在第二个远程服务器上执行。所以我的密钥不存在于 ssh 命令发起的第一个远程服务器中。在 cron 下运行 ssh 的所有解决方案都假定源服务器上存在 ssh 密钥。没有 ssh 密钥时如何使用 cron 运行 ssh 命令?我认为需要让 cron 了解 ssh-agent 变量。但我不知道该怎么做。知道怎么做吗?
这是我在远程服务器 1 上的 crontab:
*/1 * * * * ssh root@remote2 "some command" >> /home/output.log
edit1:remote2 只是一个例子。这必须为大约 100 台服务器重复。
~/.ssh 文件夹的内容:
$ ls -lt /home/centos/.ssh
lrwxrwxrwx. 1 centos centos 31 24. Mär 15:13 ssh_auth_sock -> /tmp/ssh-59Ay2ronRN/agent.24129
crontab的内容:
*/1 * * * * SSH_AUTH_SOCK=/home/centos/.ssh/ssh_auth_sock;/bin/bash /home/test.sh
/home/test.sh 的内容:
#!/bin/bash
echo "`date +%FT%T` $0: test cronjob from centos .. $SSH_AUTH_SOCK" >> ${runlog}
/usr/bin/ssh remote2 "sudo less /var/log/program.log | grep 'NOT ENDING'" >>${runlog} 2>&1
${runlog} 的内容:
2022-03-24T15:22:01 /home/test.sh: test cronjob from centos ..
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
如下声明 SSH_AUTH_SOCK 有效:
…
SSH_AUTH_SOCK=/…
*/1 * * * * ssh …
…
几天前我已经将 MingGW 添加到我的路径中,我已经关闭了我的计算机,但我发现路径尚未刷新。我目前有一个 Windows 11 操作系统。我必须运行我在这个站点上找到的这个命令才能让它在 VS Studio 的当前环境中工作。
$env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User")
我刚刚检查并加载了我在 PATH 之外使用的 PowerShell 提示。VS Studio 中的那个无法识别更新。只是为了清除更新是这样的:
C:\MinGW\bin
这允许我在终端内编译 C++ 文件。对为什么 VS Studio 无法识别更新有任何想法吗?
更新:我决定看看终止终端按钮的作用,然后我重新启动了 VS Studio,它现在似乎可以在没有该命令的情况下工作,我找到了这个站点。对此行为的任何解释都将受到欢迎。
所以我错误地删除了一堆我的环境变量......
我无法理解的是TERM,一个系统变量。这应该是指Windows终端吗?我应该将其设置为什么值?