none
выключение сервера

    Вопрос

  • Добрый день

    Подскажите как правильно сделать

    Допустим я зашел на удаленный сервер через PS

    мне нужно сделать Stop-computer, но под этой учеткой пишет что нет доступа

    Какие и как права можно дать пользователю, чтобы у него были разрешения только на выполнения этой команды? 

    13 июля 2017 г. 7:55

Ответы

Все ответы

  • Предоставьте пользователю привилегию SeRemoteShutdownPrivilege и SeShutdownPrivilege через групповые политики. И использовать штатную утилиту shutdown.exe

    Force shutdown from a remote system - SeRemoteShutdownPrivilege

    Shut down the system - SeShutdownPrivilege


    • Изменено KazunEditor 13 июля 2017 г. 8:32
    • Помечено в качестве ответа tosh1ba 13 июля 2017 г. 8:39
    13 июля 2017 г. 8:29
    Отвечающий
  • А как лучше подключиться удаленно для shutdown.exe? Через PowerShell?
    13 июля 2017 г. 8:45
  • А как лучше подключиться удаленно для shutdown.exe? Через PowerShell?

    shutdown нельзя указать имя и пароль, поэтому если имя и пароль не совпадет у текущего и удаленного пользователя, то потребуется другие средства. Например: PsShutdown - поддерживает указание user & password или net use \\<server name>\IPC$ /USER:<domain>\<account password .

    PowerShell Remoting - поддерживает указания пароля и пользователя и не требует сторонних утилит, или настроек.

    13 июля 2017 г. 9:03
    Отвечающий
  • Kazun, спасибо! 

    А что нужно добавить в групповых политиках, чтобы был у учетной записи был доступ для подключения через Powershell?

    13 июля 2017 г. 9:21
  • Ничего, т.к. Remoting создан. Надо создать отдельный endpoint и дать права пользователю (‘Execute (Invoke)’) - https://blog.netwrix.com/2015/02/11/secure-powershell-remoting-using-constrained-endpoints/

    New-PSSessionConfigurationFile –Path ShutAdmin.pssc –SessionType RestrictedRemoteServer -LanguageMode NoLanguage -VisibleCmdlets Stop-Computer -VisibleExternalCommands shutdown.exe
    Register-PSSessionConfiguration -Name Helpdesk -Path ShutAdmin.pssc –ShowSecurityDescriptorUI
    
    Invoke-Command -ComputerName 1.1.1.1 -ConfigurationName Helpdesk -Credential (Get-Credential) {shutdown.exe /s /t 0}


    • Изменено KazunEditor 13 июля 2017 г. 9:42
    13 июля 2017 г. 9:42
    Отвечающий
  • PS C:\Windows\system32> Enter-PSSession -ComputerName test -Credential test
    Enter-PSSession : Не удалось подключиться к удаленному серверу. Сообщение об ошибке: Отказано в доступе. Дополнительные
     сведения см. в разделе справки, вызываемом командой about_Remote_Troubleshooting.
    строка:1 знак:16
    + Enter-PSSession <<<<  -ComputerName test -Credential test
        + CategoryInfo          : InvalidArgument: (test:String) [Enter-PSSession], PSRemotingTransportException
        + FullyQualifiedErrorId : CreateRemoteRunspaceFailed
    

    SeRemoteShutdownPrivilege пользователю test я добавил.

    Что не так?

    13 июля 2017 г. 9:50
  • PS C:\Windows\system32> Enter-PSSession -ComputerName test -Credential test
    Enter-PSSession : Не удалось подключиться к удаленному серверу. Сообщение об ошибке: Отказано в доступе. Дополнительные
     сведения см. в разделе справки, вызываемом командой about_Remote_Troubleshooting.
    строка:1 знак:16
    + Enter-PSSession <<<<  -ComputerName test -Credential test
        + CategoryInfo          : InvalidArgument: (test:String) [Enter-PSSession], PSRemotingTransportException
        + FullyQualifiedErrorId : CreateRemoteRunspaceFailed

    SeRemoteShutdownPrivilege пользователю test я добавил.

    Что не так?

    Я выше постом дал ответ, как создать EndPoint для пользователя,а не то что первое в голову пришло.
    13 июля 2017 г. 10:04
    Отвечающий
  • PS C:\Windows\system32> New-PSSessionConfigurationFile -Path ShutAdmin.pssc -SessionType RestrictedRemoteServer -Languag
    eMode NoLanguage -VisibleCmdlets Stop-Computer -VisibleExternalCommands shutdown.exe
    New-PSSessionConfigurationFile : Не удается найти параметр, соответствующий имени параметра "VisibleExternalCommands".
    строка:1 знак:144
    + ...  Stop-Computer -VisibleExternalCommands shutdown.exe
    +                    ~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : InvalidArgument: (:) [New-PSSessionConfigurationFile], ParameterBindingException
        + FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.PowerShell.Commands.NewPSSessionConfigurationFileComman
       d
    
    PS C:\Windows\system32>
    
    
    
    
    -VisibleExternalCommands неправильный синтаксис

    • Изменено tosh1ba 13 июля 2017 г. 11:51
    13 июля 2017 г. 11:26
  • Установить обновление - https://msdn.microsoft.com/ru-ru/powershell/wmf/5.1/install-configure
    13 июля 2017 г. 12:18
    Отвечающий
  • Обновления установил, теперь при последнем действии пишет:

    PS C:\Windows\system32> Invoke-Command -ComputerName test -ConfigurationName Helpdesk2 -Credential (Get-Credential) {shutdown.exe /s /t 0}
    cmdlet Get-Credential at command pipeline position 1
    Supply values for the following parameters:
    Имя "shutdown.exe" не распознано как имя командлета, функции, файла сценария или выполняемой программы. Проверьте правильность написания име
    ни, а также наличие и правильность пути, после чего повторите попытку.
        + CategoryInfo          : ObjectNotFound: (shutdown.exe:String) [], CommandNotFoundException
        + FullyQualifiedErrorId : CommandNotFoundException
        + PSComputerName        : test
     

    13 июля 2017 г. 13:22
  • notepad (Get-PSSessionConfiguration -Name Helpdesk2).ConfigFilePath

    Отредактировать строчку,чтобы была:

    VisibleExternalCommands = 'C:\Windows\system32\shutdown.exe'
    

    13 июля 2017 г. 13:33
    Отвечающий
  • Все работает, огромное спасибо!
    13 июля 2017 г. 13:48