我在这里绞尽脑汁——需要一点帮助。
看来经典的 RUNAS 在域环境下无法运行。至少,我无法让它在 Windows Server 2012 R2 和 Windows 8.1 基于域的环境中运行。
我最初尝试按照以下方式设置托管服务帐户本文,以便为一个过于专横的程序创建一个可用于提升权限的管理帐户,但尽管我能够在服务器上完成所有操作,但最后的步骤(需要该帐户的 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
因此,我被迫放弃这种方法,转而使用标准管理帐户。哦,可能被黑客入侵的帐户真是令人欣喜若狂!
问题是,它们也不起作用。好吧,它们确实起作用,只是不是以我需要的方式起作用。
我创建了一个不同名称的管理员帐户(以防现有服务帐户和这个新管理员帐户发生冲突)。当我进入工作站,使用受限用户名登录,然后双击 prima-donna 应用程序时,我得到了标准的“此程序需要管理员访问权限”等等等等。在出现的登录框中,我能够输入新的管理员帐户凭据并登录。到目前为止一切顺利,但这并不安全,因为任何知道这些凭据的人都可以使用这些凭据获得任何机器的管理员访问权限。
所以我尝试runas
。好吧,我使用以下字符串:
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
显示凭证存在于机器中!所以我再试一次,
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.
威士忌。探戈。狐步舞。
我使用的帐户具有提升程序权限的能力。我通过正常打开程序并将完全相同的凭据输入到出现的登录框中证明了这一点。那么为什么会发生这种情况呢?
答案1
要安装活动目录 powershell 模块:
在服务器上安装远程服务器管理工具功能。
下载 rsat 安装程序后,在客户端上安装 rsat 工具。
然后运行“import-module activedirectory”。
这使得活动目录 cmd-lets 可供使用。
参考链接: http://technet.microsoft.com/en-us/magazine/gg413289.aspx
如果唯一的目标是服务帐户,那么这是一个稍微笨拙的过程,并且会留下需要清理的残留物。
[根据评论中的新错误消息进行编辑] 我目前无法访问 2012 域,因此只能猜测并仔细查看。指南中的命令似乎是使用域管理员帐户运行的,大概是在提升的 ps 控制台中。您使用的帐户是否具有相应的访问级别?
另外,您是否满足“gMSA 的使用仅限于安全描述符 msDS-GroupMSAMembership 中指定的计算机”的要求?
最后,您遵循的指南似乎是微软原始博客文章的大量复制/粘贴,但也精简了许多。无需过多审查,我认为您会在原文中找到更完整的说明: http://blogs.technet.com/b/askpfeplat/archive/2012/12/17/windows-server-2012-group-managed-service-accounts.aspx
答案2
我发现的唯一办法是Microsoft Dynamics 零售管理系统在受限用户域帐户下正确运行的方法只有一种:开启 UAC。
我确信用户访问控制是一个好主意,并且自 Vista 以来极大地提高了 Windows 生态系统的安全性,不幸的是,Dynamics RMS 似乎是 2007 年之前编写的基于 COM/DCOM 的软件。因此,只有在 UAC 完全关闭的情况下,它才能在非管理域帐户下正常运行。
当然,非域帐户则完全是另一回事。如果您有一台独立计算机,让 RUNAS 正确启动 Dynamics RMS 是小菜一碟。在基于域的系统下,这是任何系统管理员最担心的噩梦。
我做了几件事来启动和运行 RMS,然而在我努力的过程中,我不确定哪些是有效的,哪些根本没用。因此,这里列出了那些我没有“恢复”为默认设置的东西(一旦我确定某个设置没有起到任何作用,我总是小心地将其恢复为默认设置 - 但这就是问题所在。有些事情我就是不确定)。
- 进入程序可执行文件的属性,并为“所有用户”(在域环境中时底部的额外按钮)设置兼容性为 Windows XP SP3,并设置为以管理员身份启动。
- 进入每个程序可执行文件的清单文件(是的,它们有清单文件)并注释掉要求管理执行级别的 XML 声明。
- 进入域的组策略,并更改以下内容:
- 用户帐户控制:管理员批准模式下管理员的提升权限提示行为 -无需提示即可提升
- 用户帐户控制:检测应用程序安装并提示提升权限 -已禁用
- 用户帐户控制:仅提升安装在安全位置的 UIAccess 应用程序 -已禁用
- 用户帐户控制:以管理员批准模式运行所有管理员 -已禁用
一旦这些设置完全设置好(并且计算机重新启动,以便计算机 GPO 可以生效),RMS 就能够从可执行文件本身启动,而无需任何登录凭据,即使是从域中确认的有限用户帐户也是如此。
如果有人追随我的脚步,我强烈推荐你不要首先尝试一下。尽一切可能避免关闭 UAC。UAC 确实是 Windows 安全的一个非常重要的部分,我完全出于无比的决心才禁用它。我这样做只是因为我正在处理一个相对较旧的程序(没有当前等效程序 - 预计在 2014 年某个时候会有一个全新的重建版本)。