我有一个运行和管理多个进程的 Windows 服务。根据任务管理器详细信息选项卡,所有进程都在用户帐户下运行。因此,其中一个过程是执行 PowerShell 脚本来执行一些需要本地用户帐户的操作。
我试过 logging $env:username
,它说 PowerShell 脚本是在系统帐户下执行的。
如果我在没有 Windows 服务帮助的情况下手动启动该过程,则 PowerShell 脚本将成功执行并记录$env:username
本地登录的用户帐户。
注意:Windows 服务正在使用 CreateProcessAsUser 方法启动这些进程,该方法应该在本地用户帐户下启动子进程。但不知何故,任务管理器似乎显示它在用户帐户下运行,但在幕后,它在系统帐户下运行。
谁能告诉我如何在本地用户帐户下执行脚本?
我用来运行 PowerShell 脚本的 cmd 是
Powershell.exe -NoProfile -ExecutionPolicy Unrestricted -Command ../powershellscript.ps1