问题标签 [local-system-account]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
927 浏览

web-services - 网络访问作为从网络共享运行 Exe 的本地系统

我在 Windows 7 Ent 中运行 Dotnet 3.5 可执行文件,作为域中的 GPO 计算机启动脚本。该脚本驻留在网络共享上。该 exe 作为本地系统运行。exe运行正常。

我想在此 exe 中访问 Web 服务,但似乎本地系统无法访问每个文档的网络资源。但是,如果将相同的 exe 复制到 C 驱动器并在相同帐户和相同条件下从那里运行(即 GPO 启动脚本),则可以访问 Web 服务。

从 C: 驱动器运行而不是从网络共享运行时,本地系统如何访问 Web 服务?有什么办法可以使它从网络共享工作,而无需先复制到本地驱动器?本地系统是否与 SYSTEM 相同且与 NTAuthority\system 相同?

到目前为止,我已经尝试了以下方法以使其工作。这些都不起作用:

  1. 在代码中模拟域用户。
  2. 对 .Net 安全配置中的所有区域给予完全信任
  3. 在 IE 中将网络共享添加到受信任的站点。
  4. 使用 netbios 名称而不是文件服务器的完全限定名称,即 \server\share,而不是 \server.domain.com\share

我无法解决以下问题:

  1. 将组策略客户端服务的登录帐户更改为域用户
  2. 运行 exe 作为登录脚本。它必须是启动脚本。

要重现此问题,我执行以下操作:

  1. 创建一个带有一些网络功能的简单 exe,即 WebClient.DownloadString(" http://www.google.com ")
  2. 将 exe 部署到网络共享
  3. 以普通用户运行以显示没有错误
  4. 运行 whoami 以显示当前用户
  5. 运行 psexec -s -i cmd.exe
  6. Cmd 将以 SYSTEM 启动(本地系统或 NT Authority\System)
  7. 运行 whoami 以显示当前用户
  8. 从网络共享运行 exe 以显示它将无法下载页面。
  9. 将exe复制到C盘。
  10. 运行exe显示页面已下载。
0 投票
1 回答
823 浏览

windows - 如何警告用户从系统帐户重新启动?

我通过 schtasks 创建了任务。此任务在系统启动时启动,在系统帐户中运行,并在完成后强制 Windows 重新启动。任务运行 1-2 分钟。用户知道该任务正在运行,但他可以忘记它。如果用户忘记了这个任务,他可以登录并开始做一些工作,然后突然系统关闭。

我想警告用户即将重新启动。理想情况下,系统应显示欢迎屏幕消息(类似于更新时的消息“请勿关闭计算机”)并且不显示登录屏幕。但我不知道该怎么做。

另一种可能的解决方案:显示带有警告的窗口。我试图从任务中显示消息框,但它不可见。可能在系统帐户中运行的应用程序无法与用户交互。

你能帮助我吗?如何警告用户重启?最简单的方法是什么?

0 投票
0 回答
26 浏览

c# - 如何让我的诊断应用程序连接到之前由 Win 服务打开的 USB 设备,在 C# .NET 中

这是一种医学实验室仪器(我们的产品),通过 USB 端口连接到 Windows 7 系统,并由开机后由 Windows 服务启动的应用程序控制。

我的目标是能够通过与主应用程序并行运行一个简单的应用程序来诊断仪器问题。与仪器的通信是通过最终与 COM 对象通信的服务器(在单线程单元中)实现的。

在我的诊断应用程序中,我按照与主应用程序相同的步骤连接到仪器。

在最初的几次尝试之后,我意识到与仪器相关的进程在系统帐户下运行,而我的应用程序在用户帐户下运行。我停止了主应用程序的服务并更改了它的登录属性以匹配用户帐户的登录属性。我的诊断应用程序仍然无法连接到 USB 设备。

我 90% 的时间都是一名固件开发人员,当我不得不处理 Windows 系统的丛林时,我的头晕目眩。让我感到沮丧的是,在一种情况下,这一切都有效,但这种情况只是为了调试主应用程序,但它在用户模式下不起作用。

如果主应用程序不是由 Windows 服务启动,而是由控制台应用程序启动,因此所有进程都在用户帐户下,我的诊断应用程序运行良好。

就在同一用户帐户下运行的两个并发应用程序使用同一设备服务器而言,这两种情况有什么区别?

谢谢你。

0 投票
0 回答
45 浏览

windows - 授予系统用户在网络位置创建文件的权限

我有一个批处理文件,我想作为系统运行,因为批处理运行的程序拒绝通过计划任务作为管理员帐户运行。作为最后的手段,我想将计划任务作为本地系统帐户运行。批处理文件需要将文件保存在批处理文件中指定的网络路径中。问题是系统用户似乎没有写入网络位置所需的访问权限。如何授予本地系统用户写入网络路径的权限?

0 投票
1 回答
3004 浏览

nuget - 本地系统帐户的 nuget 缓存位于何处?

用户帐户的 nuget 缓存通常位于
C:\Users\<user>\AppData\Local\NuGet\Cache.
但是在哪里可以找到 LOCAL SYSTEM 帐户?这个特殊用户没有普通的个人资料。

这种组合对于构建服务器(例如 TeamCity)来说是非常常见的场景。

0 投票
0 回答
506 浏览

permissions - 安装期间使用 SYSTEM 帐户写入 ProgramData 的问题

我正在尝试安装一个应用程序(使用 SYSTEM 帐户),该应用程序通过在其中创建一个新文件夹来在 ProgramData 文件夹中安装一些证书。安装在尝试安装这些证书的阶段失败。

在证书安装过程中,它所做的只是在 ProgramData 中创建一个文件夹并将文件写入其中。

我已向 ProgramData 文件夹上的 SYSTEM 用户授予 FULL CONTROL 权限,并将其传递给子文件夹。

我尝试使用 PSexec 工具执行 .exe 文件(这可以使用 SYSTEM 帐户)。我从开始使用以管理员身份运行的命令提示符打开了 PSexec 工具。

我还尝试提取 .msi 文件并使用具有 Elevated Privileges 的 TaskScheduler 运行它。

我还手动创建了应在安装期间创建的文件夹(以防它们不存在),并为 SYSTEM 用户授予了 FULL CONTROL 权限。我使用管理员帐户和 SYSTEM 帐户创建了文件夹。安装仍然没有成功。

该应用程序是 32 位应用程序。因此,我尝试将其安装在 32 位 Windows 中。它仍然失败。

我认为根本原因是 SYSTEM 帐户没有在 ProgramData 文件夹中创建文件夹/文件的权限。

我在这里缺少什么吗?

0 投票
1 回答
595 浏览

powershell - 使用本地系统帐户运行 exe 的 PowerShell 脚本

我在使用本地系统帐户进行​​某些安装时遇到问题。

我偶然发现了以下帖子: 是否可以在作为托管 .EXE 文件的 WiX 中执行自定义操作?

第一条评论准确地解释了我的情况 - “需要注意的另一件事是延迟操作在系统帐户的上下文中运行,因此如果 exe 出于任何原因需要访问配置文件,这将导致它失败。我有这个在我的安装过程中尝试生成证书时非常有问题。”

建议的解决方案是使用 -RunAs 开关生成 PowerShell 并运行脚本来调用 exe。

我对PowerShell一无所知。所以我需要帮助来编写这个脚本。

0 投票
1 回答
70 浏览

ios - 素数31。社交网络 iO。检查系统帐户是否存在

我使用 Prime31 的 SocialNetworkPlugin for iOs(此处
我想使用 SystemAccount 登录到 Fb(如果存在),但是当我在设备上没有它时 - 我无法登录并获取异常代码 308。
我有其他登录逻辑但我只有当我没有系统帐户时才需要使用它。
我可以在首次登录前检查 Facebook 的系统帐户吗?

upd:如果你能用c#写,请。

0 投票
1 回答
5078 浏览

advanced-installer - 授予“本地系统”权限高级安装程序中的安装文件夹

我有一个“高级安装程序”项目,我试图用它来安装我构建的“TopShelf”Windows 服务。

我在 Advanced Installer 中找到了授予安装文件夹权限的位置,但我没有看到授予“本地系统”帐户权限的方法。

手动,这是通过转到文件夹属性中的安全选项并添加与计算机名称同名但以$. 例如MyNiceComputer$。(哦,您必须在该types区域中选择“计算机”选项。)

但是在 Advanced Installer 中没有办法做到这一切。如果我做了一个 like MyNiceComputer$,它只会在安全选项卡中创建一个空条目。(没有权限,即使我设置为完全控制。)

有没有人需要使用 Advanced Installer 执行此操作?

其他详细信息
我正在安装一个作为 Windows 服务运行的应用程序。(这是一个使用TopShelf构建的控制台应用程序)。

我们公司的政策是将我们所有的应用程序安装到如下所示的文件夹中:

C:\OurCompanyApps\MyApp

当我创建安装程序时,它运行良好,但是当我启动 Windows 服务时,我收到以下错误:

Windows 无法在本地计算机上启动 MyApp 服务

错误 5:访问被拒绝。

但是,当我授予对本地系统的访问权限(通过授予myNiceComputer$对 MyApp 文件夹的完全控制权限)时,此错误消失并且应用程序运行正常。根据我的阅读,这是因为应用程序作为本地系统运行。

它需要完全控制似乎很奇怪,但没有它就无法工作。(但据我所知,文件夹的内容没有改变)。

@Bogdan Mitrache 似乎表明无法通过高级安装程序授予本地系统权限。很高兴知道这一点(所以我不会浪费更多时间寻找)。我可能会要求我的系统管理员提供一个专用的系统帐户来运行我的服务。不理想,但它可以作为一种解决方法。

0 投票
1 回答
166 浏览

.net - 从服务帐户上的脚本执行时获得准确的 GPresult 输出

我的公司要求我为他们构建一些 .NET 软件(基本上是一个健康检查客户端,它作为我们每台计算机上的服务,并将加密的数据报告回服务器,然后将其上传到 SQL,可用于每周报告、Web 控制台等)。程序基本上完成了——除了我认为最简单的一件事。这是我遇到的问题:

我们需要的最后一条信息是客户端上次使用组策略签入的时间。应该很容易……对吧?运行 gpresult 并从中获取日期和时间!我为此编写了代码,当我从自己的帐户运行它时,它可以完美运行。问题是这将从服务中执行;这意味着它在部署时必须作为“本地系统”帐户运行。当它从“本地系统”帐户作为服务执行时,它会出错,因为组策略(显然)不适用于本地系统帐户。我尝试将范围限制在计算机上,但它仍然没有给我任何东西。

我还尝试查找 gpupdate 在签入时更改的文件,以便我可以以不同的方式进行处理并改为分析这些文件(这就是我对我们正在检查的其他程序所做的),但是所以到目前为止,当计算机运行 gpupdate 时,我还没有找到任何持续变化的东西。

关于我可以尝试的任何建议?我有点让自己发疯(短途旅行),我试过搜索谷歌和论坛没有任何结果。

在此先感谢您的帮助!