Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   удаленно включить powershell remoting (http://forum.oszone.net/showthread.php?t=347564)

bredych 07-01-2021 18:01 2945309

удаленно включить powershell remoting
 
Возможно ли удаленно включить/выключить powershell remoting?
место действия - домен, к политикам домена доступа нет (через них знаю, что можно)

cmdlet-ы типа Enable-PSRemoting вижу, но нигде не вижу, что их можно запускать удаленно, в опытах пишут врубать локально.
попробовал через
enter-pssession servername - выкинуло ошибку, мол удостоверьтесь, что комп есть и служба winrm включена и правило в стенке для неё есть. То есть, возврат к тому же включению локально (а потом выключению локально), что при икс сотен компов - маразм.
Или следует через PSexec лезть-включать?

Iska 07-01-2021 20:05 2945314

bredych, ну, потому и — домен и политики.

Цитата:

Цитата bredych
Или следует через PSexec лезть-включать? »

Попробуйте, хуже не будет.

bredych 08-01-2021 12:41 2945362

попробовал...
Сижу в некотором замешательстве.
Код взял
Код:

$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 2945366

Вместо enable-psremoting я бы использовал winrm -qc, меньше костылей
Код:

psexec.exe \\$server -h -s cmd /c winrm -qc

bredych 08-01-2021 15:46 2945379

Цитата:

Цитата DJ Mogarych
я бы использовал winrm -qc, меньше костылей »

спасибо, cmd started ... with process id...
Но на целевой машине get-service winrm всё равно говорит, что stopped. То есть, всё равно задачу не выполнило.


Время: 00:26.

Время: 00:26.
© OSzone.net 2001-