gpt4 book ai didi

windows - 我正在从后台服务运行 powershell 脚本,为什么有些命令不能像这样工作?

转载 作者:可可西里 更新时间:2023-11-01 11:51:12 27 4
gpt4 key购买 nike

我有一个 C# 后台服务。此服务轮询网络服务以获取更新。如果 web 服务返回更新,C# 服务运行 powershell 脚本并传递更新所在的 url。

此 powershell 脚本然后获取 url、下载更新(一个简单的 .zip 文件)、提取更新的内容,并运行另一个始终随更新一起提供的 powershell 脚本。

这一切都完美无缺,但某些 powershell 命令在以这种方式执行时不会执行任何操作。例如,我创建了一个带有 jpg 图像的更新,并让更新附带的 powershell 脚本将该图像设置为桌面背景。如果我手动执行此更新,它会起作用并设置新背景。但是,如果我让 C# 服务调用 powershell 脚本,它不会设置背景,即使我在它仍然没有设置后注销。

另一个似乎不起作用的命令是写入注册表。我在更新中有以下代码:

New-Item -Path HKCU:\Software\ -Name bza -Value "Default Value" –Force

当我执行它时,它会在 Software 中创建 key bza。当 C# 服务调用脚本时,注册表中没有任何反应,即使在注销并重新登录之后也是如此。

我认为对此有两种可能的解释。可能是权限不足,也可能是从后台(没有窗口)运行的 powershell 脚本无法执行它通常能够执行的所有操作。

有人有解决办法吗?

附言我们不让 C# 服务执行这些任务的原因是我们希望能够在未来扩展这个更新系统,这样我们就可以上传几乎可以做任何事情的 powershell 脚本。

P.P.S 这个运行的设备是我们自己的。我们完全有权根据用户的需要以任何我们想要的方式更改它们。

最佳答案

最可能的原因是该服务以不同的用户或系统用户身份运行。桌面图片在 HKEY_CURRENT_USER 中设置,因此在正确的用户上下文中运行 powershell 脚本很重要。

关于windows - 我正在从后台服务运行 powershell 脚本,为什么有些命令不能像这样工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29236751/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com