Я пытаюсь использовать PowerShell JEA (Just Enough Administration) на сервере Windows Server 2012 R2, где я установил WMF 5.
Мне нужно сделать видимой для группы пользователей, не являющихся администраторами, только 1 пользовательскую функцию, которая зависит от другого локально установленного модуля. Эта функция не требует прав администратора, но должна выполняться в контексте определенной учетной записи домена.
Я создаю новую возможность роли с моей пользовательской функцией, указанной в разделе VisibleFunctions
, назначаю эту роль своей группе пользователей в файле конфигурации сеанса (который также содержит RunAsVirtualAccount = $false
) и регистрирую эту конфигурацию сеанса с помощью файла конфигурации и параметра RunAsCredential
.
При использовании Get-PSSessionCapability
локально на сервере с авторизованной учетной записью без прав администратора я вижу свою пользовательскую функцию в списке. Когда я использую Enter-PSSession
с удаленного компьютера (Windows 8.1 с установленным WMF 5) с этой ограниченной конечной точкой, а затем использую Get-Command
, функция не отображается в списке.
Если я перестану использовать параметр RunAsCredential
и вместо этого использую RunAsVirtualACcount = $true
(что приведет к сбою моей функции, но это только для тестирования), тогда я смогу увидеть свою пользовательскую функцию в списке с Get-Command
при удаленном выполнении. Но в этом случае попытка вызова функции приводит к следующей ошибке, которая возникает еще до того, как появится ошибка авторизации отсутствующей учетной записи «RunAs»:
Select-Object : A parameter cannot be found that matches parameter name 'Unique'.
Командлет 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, которая равна 4.0.30319.42000
.
Как я могу использовать JEA в моем сценарии с учетной записью домена как RunAsCredential
и вызовом моего стороннего модуля и (среди прочего) его вызовом Select-Object -Unique
?
Спасибо,
Иордания