PowerShell 5远程处理 - JEA与RunAsCredential和Select-Object -Unique

时间:2016-05-18 12:21:28

标签: powershell powershell-remoting powershell-v5.0

我正在尝试在安装了WMF 5的Windows Server 2012 R2服务器上使用PowerShell JEA(Just Enough Administration)。

我需要让非管理员用户组看到1个自定义功能,它只依赖于另一个本地安装的模块。此功能不需要管理员权限,但需要在特定域帐户的上下文中运行。

我使用VisibleFunctions部分中列出的自定义函数创建了新角色功能,将该角色分配给会话配置文件(也包含RunAsVirtualAccount = $false)中的用户组并注册此会话使用配置文件和RunAsCredential参数进行配置。

在服务器上使用授权的非管理员帐户在本地使用Get-PSSessionCapability时,我会看到列出的自定义功能。 当我使用此约束端点的远程计算机(安装了WMF 5的Windows 8.1)使用Enter-PSSession,然后使用Get-Command时,未列出该函数。

如果我停止使用RunAsCredential参数而是使用RunAsVirtualACcount = $true(这会使我的功能失败,但这仅用于测试),那么我可以看到我的自定义函数列出{{1}当远程执行时。 但在这种情况下,尝试调用该函数会导致以下错误,即使在出现缺少的“RunAs”帐户授权错误之前也会发生此错误:

Get-Command

在我使用的嵌套第三方模块中调用Select-Object : A parameter cannot be found that matches parameter name 'Unique'. cmdlet(因此我无法将其替换为任何其他函数)。

以下是服务器上Select-Object的输出:

$PSVersionTable

我的工作站上的同上,除了Name Value ---- ----- PSVersion 5.0.10586.117 PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...} BuildVersion 10.0.10586.117 CLRVersion 4.0.30319.34014 WSManStackVersion 3.0 PSRemotingProtocolVersion 2.3 SerializationVersion 1.1.0.1 的CLRVersion。

如何在我的方案中使用JEA,将域帐户设为4.0.30319.42000并调用我的第三方模块以及(除其他事项外)RunAsCredential来电?

谢谢,

约旦

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,创建了PS端点作为PSPKI模块的包装器。 PSPKI模块也使用Select-Object,给出相同的错误。

我的解决方案是更新我的端点.psrc文件,以包含Select-Object的AliasDefinition以指向FQDN Select-Object。

AliasDefinitions = @ {Name ='Select-Object'; Value ='Microsoft.PowerShell.Utility \ Select-Object'}

另请参阅:https://jamesone111.wordpress.com/2016/07/01/just-enough-admin-and-constrained-endpoints-part-2-startup-scripts/

Grtx, BvZanten