问题标签 [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.
windows-services - 由作为本地系统运行的服务启动的应用程序的权限
我们有一个遗留服务正在运行,它负责监控另一个服务,但也启动了一个控制台应用程序(用 C 编写),该应用程序继续在后台运行。如果我们从 cmd 提示符启动控制台应用程序,它工作正常。如果我们也在网络服务帐户下启动服务,它也可以正常启动控制台应用程序,但在这种情况下它无法启动其他服务。
因此,由于该服务必须监视(启动/停止)另一个服务,它必须在本地系统帐户下启动才能获得必要的权限 - 但问题是由该服务启动的控制台应用程序无法从 appdata 文件夹中读取其配置.
我可以看到控制台应用程序将 APPDATA 文件夹获取为C:\Windows\System32\config\systemprofile\AppData\Roaming
,但应用程序声明无法找到此文件夹内的配置文件,因此它会自行关闭。当我从普通用户帐户启动它时,它会转到该用户的 appdata 文件夹并正常工作。我什至尝试为该Users
组在文件夹中的文件夹授予额外权限systemprofile\AppData\Roaming
(这没有意义,因为该应用程序作为本地系统运行),但它没有帮助。
使此控制台应用程序从本地系统 appdata 文件夹读取设置的最佳方法是什么?
或者,是否可以授予此单一服务权限以启动其他服务,而不将其作为本地系统启动?
node.js - 如何从 Nodejs 应用程序获取当前登录用户(Windows)
我正在编写一个在客户端机器(Windows 10)中运行的 Nodejs 应用程序,它使用当前登录的用户在服务器上进行身份验证。
问题是,如果我在 SYSTEM 帐户下运行此应用程序,那么我无法让当前登录的用户进行身份验证。
我怎么解决这个问题?
windows - 无法将 SonarQube 作为服务运行
如果我只运行 StartSonar.bat 一切正常并且开始正常。
如果我使用 NSSM 设置服务运行:
- 路径:..\blah\wrapper.exe
- 启动目录:..\blah
- 参数:-c ..\blah\conf\wrapper.conf
我在日志中收到一条错误消息:
这让我相信正确设置数据库存在问题,但再次......如果我运行 StartSonar.bat 一切正常。
我唯一能想到的就是我将服务设置为“本地系统帐户”,而不是在我运行 bat 时它来自我自己的帐户。
话虽如此,每次我的 AD 更改时,我都无法使用我的帐户然后登录并更改我的密码或其他东西。
java - 从本地系统进程启动交互式用户进程 - 获取错误代码 5
我使用 Java JNA 来执行 Windows API 命令。
我有一个作为本地系统运行的后台服务。通过这个后台服务,我想在当前活动的桌面和用户上生成一个新进程,例如 notepad.exe。新进程不应运行提升但具有活动的登录用户权限。
我用
- WTSGetActiveConsoleSessionId 获取活动会话
- WTSQueryUserToken 获取相关令牌
- CreateProcessAsUser 启动进程
如果我构建一个 jar 并从本地系统帐户使用 java -jar my.jar 启动该 jar,这将正常工作。
但是,我从 Install4j 安装程序运行代码,它或多或少是一个包装在 exe 中的 JVM。相同的代码现在失败,并且 CreateProcessAsUser 导致错误代码 5(无法访问)
- 我比较了令牌,找不到任何区别。相同的用户、所有者、组和权限。
- 我尝试使用进程监视器来查找任何特别之处:没有
- 我尝试使用 CreateProcessWithTokenW 而不是 CreateProcessAsUser。该进程启动但立即退出(可能是 Windowsstation/桌面问题)
预期结果:“子”进程启动并在当前活动桌面上显示 UI。
实际结果: CreateProcessAsUser 上的错误代码 5
c# - 使用本地系统帐户运行时,GetAccessControl 方法失败,出现意外错误代码 3
我已经创建了 Windows 服务并使用本地系统帐户运行它。该服务正在读取用户文件并找到它的所有者。在访问文件以查找所有者时,它抛出异常:
方法失败,出现意外错误代码 3。
StackTrace:在 System.Security.AccessControl.NativeObjectSecurity.CreateInternal(ResourceType resourceType, Boolean isContainer, String name, SafeHandle handle, AccessControlSections includeSections, Boolean createByName, ExceptionFromErrorCode exceptionFromErrorCode, Object exceptionContext) 在 System.Security.AccessControl.FileSystemSecurity..ctor(Boolean isContainer, String name, AccessControlSections includeSections, Boolean isDirectory) at System.Security.AccessControl.FileSecurity..ctor(String fileName, AccessControlSections includeSections)
下面是我用来获取文件所有者的示例 C# 代码。
foundFile 包含从目录中读取的文件路径。我浏览了下面的链接,但它似乎与我的问题不同: DirectoryInfo.GetAccessControl 方法总是失败
请帮助我,因为我正在为一群用户面临这个问题,并且它正在为其他用户工作。
privileges - 在 Windows 操作系统上将应用程序作为服务运行和作为管理员运行有什么区别?
我正在开发一些需要访问windows 网络共享的应用程序。如果我将应用程序作为系统服务运行,我的应用程序中的某些功能会损坏。当我以管理员身份运行我的应用程序时,相同的逻辑可以正常工作。这让我很想知道将进程作为系统服务与管理员运行之间的区别,尤其是处理网络共享。非常感谢任何信息或相关链接。
powershell - Powershell:作为本地系统运行时向登录用户发送 toast 通知
我有一个作为本地系统运行的脚本,它做了一些事情,包括检查它是否是用户登录,如果是,它运行一个 PowerShell 片段来显示一个 toast 通知,如下所示。
如果 PS 以当前用户身份运行,则可以正常工作。如果它作为 LocalSystem 运行,则当前用户看不到 toast,因为输出是发送 Session 0(对于本地系统帐户)。
如果作为本地系统运行并且不请求用户凭据,是否可以向登录用户显示 toast 通知?
windows-10 - NT 授权/系统看不到受保护的操作系统文件
问题:
为什么 LocalSystem 帐户 (NT Authority\System) 看不到回收站或 Internet 临时文件目录中的文件?
背景:
我创建了一个计划任务以使用系统帐户运行。该任务的目的是执行具有预定义设置的磁盘清理实用程序(例如:cleanmgr.exe sagerun:1)。当它执行时,它似乎运行没有错误。但是当我检查它应该清理的资源(临时 Internet 文件、回收站等)时,它们仍然存在。
所以我想也许手动清理这两个资源可能会起作用。我用 C# 开发了一个控制台应用程序,用于清除回收站和 Internet 临时文件。我测试了它,它工作得很好。但是,当我尝试使用系统帐户将其作为计划任务运行时,我又遇到了同样的问题。
根据日志,使用系统帐户运行应用程序时,似乎在回收站或 Internet 临时文件目录中没有文件。
在检查 Internet 临时文件目录的安全选项卡后,它会将系统显示为对该目录的完全访问帐户。
我对这个问题很困惑。我可能遗漏了一些东西,但我认为 LocalSystem 帐户在机器上具有最高权限。不是这样吗?
c# - 在系统帐户下运行 Windows 10、C# 应用程序以显示完整的子目录和文件树
我想创建一个从根目录开始递归显示子目录和文件的应用程序。有一些目录/子目录不能被管理员帐户访问。启动应用程序时,我希望它获得系统权限以显示整个目录树。我怎样才能做到这一点?
windows - 调用 msiexec 的 Windows 服务不会更新服务
语境:
我们正在开发一个作为本地系统帐户运行的 Windows 服务。它的功能之一是检测新版本并通过启动来执行自我更新msiexec.exe /i file.msi /qn
。
我们预计该服务将更新并使用新版本重新启动。但是,我们观察到安装以“MainEngineThread 正在返回 1603”结束。
我们已经阅读了https://docs.microsoft.com/en-us/troubleshoot/windows-server/application-management/msi-installation-error-1603,在分析了可能的原因后,我们得出结论:
- Windows Installer 正在尝试安装您的 PC 上已安装的应用程序。但是,这是一个新版本。所以,应该没有问题。
- 您尝试安装 Windows Installer 程序包的文件夹未加密。
- 包含您尝试安装 Windows Installer 程序包的文件夹的驱动器不会作为替代驱动器访问。
- SYSTEM 帐户对您尝试将 Windows Installer 程序包安装到的文件夹具有完全控制权限。您注意到错误消息是因为 Windows Installer 服务使用 SYSTEM 帐户安装软件。
问题:
msiexec.exe
当前通过从服务或子进程调用来自我更新Windows服务的解决方案可能吗?我们缺少什么?- 如果当前的解决方案不可行,Windows 服务执行自我更新的解决方案是什么?