Форум программистов, компьютерный форум, киберфорум
Наши страницы

PowerShell

Войти
Регистрация
Восстановить пароль
 
Heartless
7 / 7 / 2
Регистрация: 19.05.2014
Сообщений: 62
#1

Как запустить скрипт на удаленном сервере без winrm, rpc. Powershell - PowerShell

22.05.2017, 16:14. Просмотров 525. Ответов 10
Метки нет (Все метки)

В связи со свирепствующими вирусами появилась задача пере организовать работу скрипт-сервера.
Ранее все работало через WinRM, штатные команды на выполнения блоков скрипта с передачей параметров на ура.
Пример:
Bash
1
Invoke-Command -ComputerName $Server1 -ScriptBlock{Запуск скрипта+передача параметров}
Теперь необходимо реализовать тот же функционал что и был только без WinRm.
1.Логика, Проверочный функционал производиться на Скрипт-Сервере также формируются необходимые параметры для передачи. С этим проблема нет.
2. Как запустить на удаленном клиента скрипт и еще передать ему параметр вот загвоздка.

Примечание: не хочется на каждом сервере создавать папку с одинаковыми скриптами для их запуска. все скрипты должны быть на скрипт-сервере, а выполнение должно передаваться на клиент.

Чтобы было понятнее, на примере.
Задача заархивировать папку на всех серверах локально, не по шаре.

что выполняется на скрипт-сервере:
Объявление переменной где храниться сам архиватор, его параметры запуска, проверка доступности сервера, наличие папки.
Передача этих параметров на клиент.
Клиент должен получить параметры и запустить приложения для архивирование, переложить папки в сеть.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.05.2017, 16:14
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как запустить скрипт на удаленном сервере без winrm, rpc. Powershell (PowerShell):

Запуск скрипта PowerShell на удаленном сервере - PowerShell
Коллеги помогите, появилась задача связанная с запуском скрипта который находиться на удаленном компьютере и надо именно запускать скрипт...

Запустить PowerShell-скрипт как службу - PowerShell
Есть скрипт, он находит некоторый процесс (он в кол. 4 штук) и разбрасывает каждый процесс на каждое ядро. Итого каждый процесс выполняется...

Как запустить консольное приложение с ключами в PowerShell ISE? - PowerShell
Пытаюсь запустить приложение wincontig (дефрагментатор). Вот такой код в скрипте: $disk = "F:\" $keys = "/NOGUI /DEFRAG" $soft...

Как запустить процесс, который будет запускать файл сценария PowerShell от имени другого пользователя? - PowerShell
подскажите пожалуйста как мне запустить процесс, который будет ранить скрит под другим пользователем $credential = Get-Credential ...

Поиск файлов по сети ( на удаленном сервере) - Администрирование Windows
Имеется два компьютера: А и Б подключенных к одному серверу Компьютер А: windows xp, сетевая карта поддерживает 1000 Мб/с Компьютер Б:...

Что такое скрипт PowerShell? - PowerShell
у меня Windows7 а что такое PowerShell script и для чего нужен?? run.ps1 его еще называют верно??

10
ixoyz
122 / 65 / 17
Регистрация: 01.06.2015
Сообщений: 268
Записей в блоге: 1
Завершенные тесты: 1
22.05.2017, 19:38 #2
Heartless, эта задача из разряда "Как забить гвоздь, если запретили использовать молоток?"
Цитата Сообщение от Heartless Посмотреть сообщение
Примечание: не хочется на каждом сервере создавать папку с одинаковыми скриптами для их запуска.
А по моему, в сложившейся ситуации, самый адекватный вариант. Копируете скрипт на нужный $Server1, а там его шетдулер запускает и по выполнению удаляет.
0
Heartless
7 / 7 / 2
Регистрация: 19.05.2014
Сообщений: 62
23.05.2017, 09:04  [ТС] #3
в этом случае встает вопрос о поддержки.
Сложно поддерживать и держать в голове или реестре на каком сервере что исполняется и какой версии.
в случаи со скрипт сервером сам скрипт унифицирован и подстановка нужных переменных берется из аналитического блока.

Как еще из вариантов думал, оставить где на сетевой шаре скрипт и запускать его от туда.
Либо как через получения полного содержимого
PowerShell
1
 POwershell -command {Get-Contetnt \\Server1\SHare\test.ps1}
Но даже в этом варианте есть вопрос как передать переменные.
0
v_svitere
311 / 248 / 90
Регистрация: 03.06.2009
Сообщений: 746
Записей в блоге: 4
23.05.2017, 10:07 #4
Heartless, Так если есть возможность использовать сетевые шары, то можно сделать более рационально.
Сохранить скрипт в сетевой доступности по smb-протоколу и запускать его на удаленных машинах через PSEXEC.
Единственное скрипт должен быть унифицированный, лучше избежать "хардкода" путей, а использовать переменные окружения.
0
volodin661
932 / 785 / 123
Регистрация: 10.12.2013
Сообщений: 2,735
23.05.2017, 16:49 #5
по-моему, psexec умеет и без smb заползать на remote-клиента,
a с ключом -c сам копирует туда исполняемый файл( куда можно загнать скрипт),
исполняет его с параметрами и подчищает хвосты.
1
v_svitere
311 / 248 / 90
Регистрация: 03.06.2009
Сообщений: 746
Записей в блоге: 4
23.05.2017, 16:55 #6
volodin661, Вполне возможно.
Этот функционал мною пока не изучен)
Если это возможно, это бесспорно наиболее рациональный вариант
0
Heartless
7 / 7 / 2
Регистрация: 19.05.2014
Сообщений: 62
24.05.2017, 10:35  [ТС] #7
PSExec мне не нравиться, причина состоит в том, что это надстройка над оболочкой PS.
И не все там работает на прямую, и интуитивно понятно.
Я нашел решение с помощью DSC (Desired State Configuration). Пакет стандартный, и не требует winrm. сейчас тестирую, если кто с ним работал, помогайте.
Как будет решение отпишусь позже.
0
volodin661
932 / 785 / 123
Регистрация: 10.12.2013
Сообщений: 2,735
27.10.2017, 05:39 #8
Цитата Сообщение от Heartless Посмотреть сообщение
В связи со свирепствующими вирусами
А что это за вирусы, использующие WinRM ? Конкретно.

Цитата Сообщение от Heartless Посмотреть сообщение
Я нашел решение с помощью DSC (Desired State Configuration). Пакет стандартный, и не требует winrm.
Ага. Такой стандартный ( что за стандарт, кстати ? ), и такой нетребующий, что нуждается в установке
WMF на обоих концах:

“You must have WMF 4.0 on a computer if you plan to author configurations there.
You must also have WMF 4.0 on any computer you plan to manage via DSC.
Every computer involved in the entire DSC conversation must have WMF 4.0 installed. Period. ”

Excerpt From: PowerShell.org. “The DSC Book.”


Теперь давай посмотрим на состав WMF:
  • Windows PowerShell
  • Windows PowerShell Desired State Configuration (DSC)
  • Windows PowerShell Integrated Script Environment (ISE)
  • Windows Remote Management (WinRM)
  • Windows Management Instrumentation (WMI)
  • Windows PowerShell Web Services (Management OData IIS Extension)
  • Software Inventory Logging (SIL)
  • Server Manager CIM Provider


Итак, видим в составе WinRM.

У тебя есть способы после установки выпилить WinRM и гарантировать после этого работоспособность pull-режима DSC ?
0
KDE777
535 / 362 / 156
Регистрация: 22.01.2016
Сообщений: 1,054
27.10.2017, 12:31 #9
Цитата Сообщение от Heartless Посмотреть сообщение
PSExec мне не нравиться, причина состоит в том, что это надстройка над оболочкой PS
Что вы называете "оболочкой PS"?

Цитата Сообщение от Heartless Посмотреть сообщение
В связи со свирепствующими вирусами появилась задача пере организовать работу скрипт-сервера.
Ранее все работало через WinRM, штатные команды на выполнения блоков скрипта с передачей параметров на ура.
...
Теперь необходимо реализовать тот же функционал что и был только без WinRm.
Т.е. вы хотите удалённый доступ всё равно оставить, но при этом заменить протокол способный работать по https (используя только один TCP порт) на что-то другое? И в чём смысл? Как уже спрашивал volodin661, не поделитесь информацией об опасностях WinRM?

Обычно такие задачи решают иначе, например есть хост с которого сервера доступны по WinRM, тогда используем vlan'ы, acl'и, firewall'ы, для того чтобы никто кроме этого хоста не смог дергать сервера за WinRM. Плюс ограничиваем доступ к самому хосту с скриптами.

Цитата Сообщение от volodin661 Посмотреть сообщение
по-моему, psexec умеет и без smb заползать на remote-клиента
Inside PsExec

PsExec starts an executable on a remote system and controls the input and output streams of the executable's process so that you can interact with the executable from the local system. PsExec does so by extracting from its executable image an embedded Windows service named Psexesvc and copying it to the Admin$ share of the remote system. PsExec then uses the Windows Service Control Manager API, which has a remote interface, to start the Psexesvc service on the remote system.
0
volodin661
932 / 785 / 123
Регистрация: 10.12.2013
Сообщений: 2,735
27.10.2017, 13:58 #10
Ну, чисто теоретически я допускаю возможность того, что после установки на клиенте Powershell 5.1,
в котором уже 'all-inclusive', настройки pull-request для DSC и зажима
WinRM на файрволе, что-то вдруг заработает. Но...но...но...
0
skouzmine
4 / 4 / 1
Регистрация: 27.02.2016
Сообщений: 28
28.10.2017, 05:18 #11
подписывать скрипты и уствервить execution-policy не пробовали ? и не нао будет winrm отключать..
0
28.10.2017, 05:18
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.10.2017, 05:18
Привет! Вот еще темы с ответами:

Скрипт PoshChat (чат в PowerShell) - PowerShell
Добрый день. Кто сталкивался с данным скриптом? Все работает отлично,единственная проблема в отсутствии возможности писать по русски....

Не выполняется подписанный PowerShell-скрипт - PowerShell
Ситуация следующая: Есть скрипт, который я подписал с помощью этой статьи. Есть сертификат, соответственно. Нужно: распространить...

Как запустить скрипт - PowerShell
Наверно совсем нубский вопрос, но как запустить скрипт используя путь powershell (Get-ChildItem env:\userprofile).value + '\psscript.ps1'...

Как запустить приложение с GUI на удаленном сервере? - Linux
Собственно есть чисто виндузовое приложение с GUI и его нужно запустить на удаленном сервере с ubuntu. У клиента же стоит виндуз. С...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.