0

我已经注册了一个 PowerShell 配置以供使用,但遇到了一些困难。希望实现一种配置,允许服务帐户远程进入服务器并重新启动它,而不允许它执行任何其他操作,自然 JEA 似乎是最合适的。我使用以下内容注册了配置:

#Create Role Capability file
$ServerRestartRole2012 = @{
    Path    = "$env:ProgramFiles\WindowsPowerShell\Modules\JEAServerRestart\RoleCapabilities\ServerRestarter.psrc"
    Author  = "xx"
    Company = "xx"
    VisibleCmdlets = 'Restart-Computer'
    ModulesToImport = 'Microsoft.PowerShell.Management'
}
New-PSRoleCapabilityFile @ServerRestartRole2012

#Create JEA Config
$ServerRestartConfig2012 = @{
    Path                = "$env:ProgramData\JEA\JEAServerRestart.pssc"
    Author              = "xx"
    Description         = "Allows for service account to reboot servers for Server Management Application"
    SessionType         = "RestrictedRemoteServer"
    TranscriptDirectory = "$env:windir\Logs"
    RunAsVirtualAccount = $true
    RoleDefinitions     = @{'xx\D7_APP_ServerRestart' = @{ RoleCapabilities = 'ServerRestarter'}}
}
New-PSSessionConfigurationFile @ServerRestartConfig2012

Register-PSSessionConfiguration -Name ServerRestarters -Path "$env:ProgramData\JEA\JEAServerRestart.pssc"
Restart-Service -Name WinRM

注册成功,我可以使用“D7_APP_ServerRestart”组中包含的帐户进入会话。使用Get-Command我所期望的结果,但是在运行Restart-Computer返回的消息时解释了Privilege not held我是否缺少设置过程的一部分?

注册EndPoint的服务器是2012R2

结果输出

4

1 回答 1

1

事实证明,在玩了一会儿之后,我找到了一个解决方案。为要使用的 cmdlet 指定不同的协议restart-computer允许它重新启动远程服务器。

restart-computer -force失败了Permission not held

restart-computer -protocol WSMan -force执行成功的远程重启

我确信这是有正当理由的,我只是无法找到支持它的文档。

希望这将防止新的 JEA 用户在未来感到头疼。

于 2016-11-08T15:52:26.347 回答