Powershell 将用户作为服务运行与登录之间的区别

Powershell 将用户作为服务运行与登录之间的区别,powershell,permissions,workflow,Powershell,Permissions,Workflow,我正在运行一个应用程序,它将Windows工作流作为服务执行,其中包含一些自定义活动。当我以登录用户的身份在调用带有活动的工作流的shell中运行活动时,这些活动在按预期执行时没有问题。当用户在运行服务时调用活动时(例如,未登录,至少未以图形方式登录),活动将失败,并出现“拒绝访问”错误。以登录用户身份运行代码与以服务用户身份运行代码有什么区别?是不是当它作为服务运行时,用户的配置文件没有被加载?如果是这样,我如何在作为服务运行时强制加载用户的配置文件 具体来说,我正在处理的活动使用System

我正在运行一个应用程序,它将Windows工作流作为服务执行,其中包含一些自定义活动。当我以登录用户的身份在调用带有活动的工作流的shell中运行活动时,这些活动在按预期执行时没有问题。当用户在运行服务时调用活动时(例如,未登录,至少未以图形方式登录),活动将失败,并出现“拒绝访问”错误。以登录用户身份运行代码与以服务用户身份运行代码有什么区别?是不是当它作为服务运行时,用户的配置文件没有被加载?如果是这样,我如何在作为服务运行时强制加载用户的配置文件


具体来说,我正在处理的活动使用System.management.Automation命名空间(即powershell)中的类执行远程管理。

回答有点晚,但以防其他人感到疑惑

我之前也有类似的问题,并且做了一些研究。以下内容未经测试,但可能对其他人有所帮助

作为“Windows服务”运行的进程与在桌面环境下运行的进程之间的区别在于它被分配给什么。通常情况下,服务是在一个比下运行的


我之所以说正常,是因为服务可以设置“service\u INTERACTIVE\u PROCESS”标志。这将给它一个桌面窗口站。有关更详细的说明,请参见和。可以在()调用中设置“SERVICE_INTERACTIVE_PROCESS”,也可以通过选中特定服务属性下“LogOn”下的“Allow SERVICE to INTERACTIVE with desktop”复选框手动设置“SERVICE_INTERACTIVE_PROCESS”

相关用户是否正确设置了“作为服务登录”?编辑:是的,有问题的用户具有“作为服务登录”权限。PS!还要记住新用户(如本地系统)的执行策略: