Показать полную графическую версию : удаленно включить powershell remoting
Возможно ли удаленно включить/выключить powershell remoting?
место действия - домен, к политикам домена доступа нет (через них знаю, что можно)
cmdlet-ы типа Enable-PSRemoting (https://docs.microsoft.com/ru-ru/powershell/module/microsoft.powershell.core/enable-psremoting?view=powershell-7.1&viewFallbackFrom=powershell-6) вижу, но нигде не вижу, что их можно запускать удаленно, в опытах пишут врубать локально.
попробовал через
enter-pssession servername - выкинуло ошибку, мол удостоверьтесь, что комп есть и служба winrm включена и правило в стенке для неё есть. То есть, возврат к тому же включению локально (а потом выключению локально), что при икс сотен компов - маразм.
Или следует через PSexec лезть-включать?
bredych, ну, потому и — домен и политики.
Или следует через PSexec лезть-включать? »
Попробуйте, хуже не будет.
попробовал...
Сижу в некотором замешательстве.
Код взял (https://stackoverflow.com/questions/8825648/starting-powershell-elevated-from-psexec-enable-psremoting) $user = "youruser"
$p = Read-Host "Enter domain password for $adminuser"
cls
$expression1 = "enable-psremoting -force"
$commandBytes1 = [System.Text.Encoding]::Unicode.GetBytes($expression1)
$encodedCommand1 = [Convert]::ToBase64String($commandBytes1)
$expression2 = "Set-ExecutionPolicy remotesigned -Force”
$commandBytes2 = [System.Text.Encoding]::Unicode.GetBytes($expression2)
$encodedCommand2 = [Convert]::ToBase64String($commandBytes2)
$expression3 = "Restart-Service winrm”
$commandBytes3 = [System.Text.Encoding]::Unicode.GetBytes($expression3)
$encodedCommand3 = [Convert]::ToBase64String($commandBytes3)
foreach ($server in (get-content c:\temp\enablepsremotinglist.txt))
{
echo " "
echo "Running on $server"
echo "--------------------------------------- "
echo " "
psexec.exe \\$server -h -u no\$user -p $p cmd /c "echo . | powershell -EncodedCommand $encodedCommand1"
psexec.exe \\$server -h -u no\$user -p $p cmd /c "echo . | powershell -EncodedCommand $encodedCommand2"
psexec.exe \\$server -h -u no\$user -p $p cmd /c "echo . | powershell -EncodedCommand $encodedCommand3"
}
С elevated rights, само собой.
Почему-то поругалось, что из текущей локации ПС не жрет и надо как в школе "выйди из класса и зайди как следует!"(С)
Ну ок.. .\psexec.exe , мне не жалко..
Но вот дальше.. С доменным паролем подключилось к удаленной машине.. Начало выполнять на нем psexesvc..
А дальше вывалилось с ошибкой, что мол юзер или пароль неверны.
А как они могут быть неверны, если с ним код подключился к удаленной машине?
DJ Mogarych
08-01-2021, 13:28
Вместо enable-psremoting я бы использовал winrm -qc, меньше костылей
psexec.exe \\$server -h -s cmd /c winrm -qc
я бы использовал winrm -qc, меньше костылей »
спасибо, cmd started ... with process id...
Но на целевой машине get-service winrm всё равно говорит, что stopped. То есть, всё равно задачу не выполнило.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.