在用户帐户 – 域版本下运行pipe理程序

我在这里把我的头发拉出来 – 可以用一点帮助。

看起来,经典的RUNAS在环境下不起作用。 至less,我不能让它在Windows Server 2012 R2和Windows 8.1域环境中运行。

我最初试图设置托pipe服务帐户,根据这篇文章 ,为了创build一个pipe理帐户,可以用于特权升级的程序,这是太自负了,因为它自己的brittle,但是当我能够做一切在服务器上,最后的步骤(在Win8,1Ent工作站上需要这个账号的操作)没有那么好。 从本质上讲,所需的命令, Install-ADServiceAccount抛出一个错误,因为它不能被发现:

 PS C:\Users\René Kåbis.DOMAIN> Install-ADServiceAccount Services Install-ADServiceAccount : The term 'Install-ADServiceAccount' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again. At line:1 char:1 + Install-ADServiceAccount Services + ~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (Install-ADServiceAccount:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException 

所以,我不得不放弃这种方法,转而使用标准的pipe理账户。 哦,欢乐的可能hackable帐户的喜悦!

问题是,那些也不起作用。 那么,他们呢,只是不是我需要他们的方式。

我创build了一个不同名称的pipe理帐户(以防万一现有的服务帐户和这个新的pipe理帐户发生冲突)。 当我去工作站,用有限的用户名login,然后双击prima-donna应用程序我得到标准的“这个程序需要pipe理员访问”yaddah,yaddah,yaddah。 然后进入生成的login框,我可以把新的pipe理员帐户凭据和login。到目前为止,这么好,但这不是安全的,因为知道这些凭据的任何人都可以使用这些获得pipe理员访问任何机器。

所以我尝试了runas 。 那么,我使用下面的string:

 C:\Program Files (x86)\Microsoft Retail Management System\Store Operations>runas /user:rms@domain /savecred SOMANAGER.exe Attempting to start SOMANAGER.exe as user "rms@domain" ... Enter the password for rms@domain: Attempting to start SOMANAGER.exe as user "rms@domain" ... RUNAS ERROR: Unable to run - SOMANAGER.exe 1783: The stub received bad data. 

呃…好吧。 但是rundll32.exe keymgr.dll, KRShowKeyMgr的检查显示机器rundll32.exe keymgr.dll, KRShowKeyMgr在的凭据! 所以我再试一次,

 C:\Program Files (x86)\Microsoft Retail Management System\Store Operations>runas /user:rms@domain /savecred SOMANAGER.exe Attempting to start SOMANAGER.exe as user "rms@domain" ... RUNAS ERROR: Unable to run - SOMANAGER.exe 740: The requested operation requires elevation. 

威士忌酒。 探戈。 狐步舞。

我正在使用的帐户有能力提升程序。 我certificate,通过正常打开程序,并将完全相同的凭据进入login框出现。 那么,为什么这到底是怎么回事?

要安装活动目录的PowerShell模块:

在服务器上安装远程服务器pipe理工​​具function。

在客户端上下载rsat安装程序后,安装rsat工具。

然后运行“import-module activedirectory”。

这使得活动目录cmd-let可用。

参考链接: http : //technet.microsoft.com/en-us/magazine/gg413289.aspx

如果唯一的目标是一个服务帐户,并且留下一个残留物来清理,这是一个稍微笨拙的过程。


[编辑基于您的新的错误消息在评论]我目前无法访问2012年的域名,所以只能猜测和仔细看。 看起来指南中的命令是使用域pipe理员帐户运行的,据推测在ps控制台中。 您正在使用的帐户是否具有相应的访问级别?

另外,您是否满足要求“gMSA的使用仅限于安全描述符msDS-GroupMSAMembership中指定的计算机”。

最后,看起来你所遵循的指南大部分都是复制/粘贴,但也微软微软原来的博客文章的副本。 如果不仔细检查,我build议您在原文中find更为完整的说明: http : //blogs.technet.com/b/askpfeplat/archive/2012/12/17/windows-server-2012-group-managed -service-accounts.aspx

我发现在有限的用户域帐户下正确地使Microsoft Dynamics零售pipe理系统正常运行的唯一方法是只有一种方法和一种方法: 启用UAC。

我相信用户访问控制是一个非常好的主意,并且自Vista以来大大提高了Windows生态系统内的安全性,不幸的是,Dynamics RMS似乎是在2007年之前编写的基于COM / DCOM的软件。因此,它只能正常运行当UAC完全closures时,在非pipe理的基于域的帐户下。

当然,非域名账户是完全不同的。 如果你有一台独立的电脑,RUNAS正确地启动Dynamics RMS是在公园里散步。 在基于域的系统下,任何系统pipe理员最担心的事情都是一场噩梦。

我做了好几件事来让RMS运行起来,但是在我努力的时候,我开始疯狂地开发了一些东西,我不确定什么是有效的,什么也没有做。 因此,这里列出了那些我没有“放松”到默认设置的东西(我一直都很小心地放松一个设置,一旦我确定它没有做任何有效的工作 – 但这是一个问题,有些东西我只是不知道)。

  • 进入程序可执行文件的属性,对于“所有用户”(在域环境中,最底部的额外button)将兼容性设置为Windows XP SP3,并设置为以pipe理员身份启动。
  • 进入每个程序可执行文件的Manifest文件(是的,他们有清单文件),并注释掉XML声明性要求的pipe理执行级别。
  • 进入域的组策略,并更改以下内容:
    • 用户帐户控制:pipe理员批准模式下pipe理员的提升提示的行为 – 提示而不提示
    • 用户帐户控制:检测应用程序安装并提示升级 – 禁用
    • 用户帐户控制:仅提升安装在安全位置的UIAccess应用程序 – 已禁用
    • 用户帐户控制:在pipe理员批准模式下运行所有​​pipe理员 – 禁用

一旦这些设置被完全设置(并且计算机重新启动,以便计算机GPO可以生效),RMS就能够从可执行文件本身开始,而不需要任何types的login凭证,甚至从确认的有限用户帐户域名。

如果任何人跟随我的脚步,我强烈build议你不要先尝试这个。 尽你所能地避免closuresUAC。 UAC确实是Windows安全的一个非常重要的组成部分,只有最重的人才会禁用它。 只是因为我正在处理一个相对较旧的计划(目前没有相应的计划 – 预计在2014年会有一个全新的重build计划),我正在这样做。