Что нового

Работа с RDP, подключение к нескольким рабочим столам

.me

Новичок
Сообщения
89
Репутация
0
Здравствуйте, подскажите, возможна ли массовое подключение(ну или в порядке очереди) к серверу и проверка обновления
т.е в офисе есть около 100 машин, где нужно проверить обновление, есть txt файл с данными
ip;login;pass
как проверить обновление сообразил, а вот с RDP не разобрался

Задача:
Подключится к серверу - проверить обновление - выйти - перейти к другому серверу
 

CrazyDoc

Новичок
Сообщения
75
Репутация
2
.me сказал(а):
Подключится к серверу - проверить обновление - выйти - перейти к другому серверу
psexec не вариант? отправил на всю целевую группу скрипт, он сам уже проверил обновления, удалил себя.
 
Автор
M

.me

Новичок
Сообщения
89
Репутация
0
софт съест формат ip;login;pass?
 

CrazyDoc

Новичок
Сообщения
75
Репутация
2
.me сказал(а):
софт съест формат ip;login;pass?
читай справку по psexec! он позволяет отправить файл на другой компьютер домена, запустить файл(в том числе и в тихом режиме)
 
Автор
M

.me

Новичок
Сообщения
89
Репутация
0
psexec @C:\checkupdate\comp.txt команда >> C:\checkupdate\result.txt
comp.txt в формате
ip:login:blum:ass
не прокатило ;)
 

CrazyDoc

Новичок
Сообщения
75
Репутация
2
.me сказал(а):
чего вы ожидали я так и не понял. для начала:
"Программа PsExec работает в операционных системах Windows Vista, NT 4.0, Win2000, Windows XP и Server 2003, в том числе в 64-разрядных версиях ОС"
затем:
использование: psexec [\\компьютер[,компьютер2[,...] | @файл][-u пользователь [-p пароль]][-n s][-l][-s|-e][-x][-i [сеанс]][-c [-f|-v]][-w каталог][-d][-<приоритет>][-a n,n,... ] программа [аргументы]
компьютер
Указывает программе PsExec, что нужно запустить приложение на заданном компьютере или компьютерах. Если имя компьютера не указано, то программа PsExec запустит приложение в локальной системе, если же вместо имени компьютера задан символ «звездочка» (\\*), то программа PsExec запустит приложение на всех компьютерах текущего домена.
@файл
Указывает программе PsExec, что нужно запустить приложение на всех компьютерах, перечисленных в заданном текстовом файле.
-a
Процессоры, на которых можно запустить приложение, отделяются запятыми, при этом процессоры нумеруются, начиная с 1. Например, чтобы запустить приложение на процессорах втором и четвертом, введите «-a 2,4»
-c
Указанная программа копируется в удаленную систему для выполнения. Если этот параметр не задан, то приложение должно находиться в системной папке удаленной системы.
-d
Указывает, что не нужно ждать завершения приложения. Этот параметр следует использовать только при запуске неинтерактивных приложений.
-e
Указанный профиль учетной записи не загружается.
-f
Указанная программа копируется в удаленную систему, даже если такой файл в удаленной системе уже есть.
-i
Запускаемая программа получает доступ к рабочему столу указанного сеанса в удаленной системе. Если сеанс не задан, то процесс выполняется в консольном сеансе.
-l
При запуске процесса пользователю предоставляются ограниченные права (права группы администраторов отменяются, и пользователю предоставляются только права, назначенные группе «пользователи»). В ОС Windows Vista процесс запускается с низким уровнем благонадежности.
-n
Позволяет задать задержку подключения к удаленным компьютерам (в секундах).
-p
Позволяет указать необязательный пароль для имени пользователя. Если этот параметр опущен, то будет выдан запрос на ввод пароля, при этом пароль не будет отображаться на экране.
-s
Удаленный процесс запускается из системной учетной записи.
-u
Позволяет указать необязательное имя пользователя для входа в удаленную систему.
-v
Указанный файл копируется в удаленную систему вместо уже имеющегося только при условии, что номер его версии выше или он более новый.
-w
Позволяет указать для процесса рабочий каталог (путь внутри удаленной системы).
-x
Отображает интерфейс пользователя на рабочем столе Winlogon (только в локальной системе).
-приоритет (приоритет)
Позволяет задавать для процесса различные приоритеты: -low (низкий), -belownormal (ниже среднего), -abovenormal (выше среднего), -high (высокий) или -realtime (реального времени).
программа
Имя запускаемой программы.
аргументы
Передаваемые аргументы (обратите внимание, что пути файлов должны указываться как локальные пути в целевой системе).
Чтобы задать имя приложения, которое содержит пробелы, используйте кавычки, например psexec \\marklap "c:\длинное имя\app.exe". Введенные данные передаются в удаленную систему при нажатии клавиши «Ввод», для завершения удаленного процесса нужно нажать сочетание клавиш Ctrl-C.
Если имя пользователя не задано, то удаленный процесс запускается из той же учетной записи, что и программа PsExec. Однако поскольку удаленный процесс является олицетворением, то он не будет иметь доступа к сетевым ресурсам удаленной системы. Если имя пользователя задано, то удаленный процесс запускается из указанной учетной записи и получает доступ к тем же сетевым ресурсам удаленной системы, что и данная учетная запись. Учтите, что пароль передается в удаленную систему в виде открытого текста.
При обращении к локальной системе эту версию программы PsExec можно использовать вместо программы Runas, поскольку для программы PsExec не требуются права администратора.
 
Автор
M

.me

Новичок
Сообщения
89
Репутация
0
CrazyDoc, все работает, но пароли то на компьютерах разные
формат ip:login:blum:ass как я понял софт не понимает
 

CrazyDoc

Новичок
Сообщения
75
Репутация
2
.me сказал(а):
но пароли то на компьютерах разные
забавно. использовать учетную запись администратора домена?
ключ "-s"?


Добавлено:
Сообщение автоматически объединено:

.me сказал(а):
psexec @C:\checkupdate\comp.txt команда >> C:\checkupdate\result.txt
comp.txt в формате
ip:login:blum:ass
ключ @ подразумевает запуск во всем домене, список компьютеров не нужен. список целевых компьютеров должен содержать только имена(ip) компьютеров, подразумевается что все действия выполняются от имени администратора домена, указание дополнительно учетной записи и пароля неявно. за один раз указать несколько учетных записей\паролей нельзя.
 
Автор
M

.me

Новичок
Сообщения
89
Репутация
0
CrazyDoc, смотрите, есть файл comp.txt, где прописаны данные для подключение к серверам
Код:
127.0.0.1:user:pass
127.0.0.2:user:pass
127.0.0.3:user:pass
127.0.0.4:user:pass
нужно что бы софт брал именно тако


Добавлено:
Сообщение автоматически объединено:

*й формат
 

CrazyDoc

Новичок
Сообщения
75
Репутация
2
значит пишем велосипед. который построчно сплитит файл и для каждой строки отправляет команду в cmd, не забыв при этом ключ "-d"
 

alex33

Скриптер
Сообщения
1,457
Репутация
186
.me сказал(а):
Читаем файл и заносим данные в массив:
Код:
_main()
Func _main(); функция
	Local $hFile, $aData, $sLine; объявляем переменные
	$hFile = FileOpen(@ScriptDir & "\comp.txt"); открываем файл с данными
	If $hFile = -1 Then Return SetError(1, 0, 0)
	While 1; начало цикла
		$sLine = FileReadLine($hFile); читаем строку
		If @error = -1 Then ExitLoop; если достигнут конец файла то выход из цикла
		$aData = StringSplit($sLine, ":"); разделяем строку
		If @error Or Not IsArray($aData) Or $aData[0] < 3 Then Return SetError(2, 0, 0)
;~ $aData[1] содержит IP
;~ $aData[2] содержит логин
;~ $aData[3] содержит пароль
;~ здесь отправляем данные...
		ConsoleWrite(StringFormat("IP: %s; Login: %s; Password: %s;\r\n", $aData[1], $aData[2], $aData[3])); пишем данные в консоль
	WEnd; конец цикла
	FileClose($hFile); закрываем файл
EndFunc   ;==>_main
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
alex33,
А разве FileOpen() флаг @error возвращает?
 
Автор
M

.me

Новичок
Сообщения
89
Репутация
0
Код:
$soft = "C:\checkupdate\PsExec.exe"
$comand = "-c ipconfig /all >> C:\checkupdate\ipconf_result.txt"


Код:
Run($soft, $aData[1], $aData[2], $aData[3], $comand)

что я тут напутал?
 

alex33

Скриптер
Сообщения
1,457
Репутация
186
Код:
Run(@ComSpec&" /c "&$soft&" "&$comand)

Почитайте справку по этой функции и посмотрите там примеры...
 
Автор
M

.me

Новичок
Сообщения
89
Репутация
0
Не для сего данная софтина, тут массово выполнять задание получится только если логины и пароли на серверах одинаковые.
вопрос с рдп все так же актуален
 

CrazyDoc

Новичок
Сообщения
75
Репутация
2
.me сказал(а):
Не для сего данная софтина, тут массово выполнять задание получится только если логины и пароли на серверах одинаковые.
вопрос с рдп все так же актуален
как то так:
Код:
#include <Array.au3>
_FileReadToArray("ЗДЕСЬ ПУТЬ К СПИСКУ КОМПЬЮТЕРОВ С ПАРОЛЯМИ", $Array)
	For $a=1 To $Array[0]
		$aTemp=StringSplit($Array[$a],":",2)
		Run(@ComSpec & " /c " & 'psexec \\'&aTemp[0]&'-f -d "ЗДЕСЬ ПУТЬ К СКРИПТУ ПРОВЕРКИ" -u '&$aTemp[1]&' -p '&$aTemp[2], "",@SW_HIDE)

В итоге psexec запустит скрипт проверки с отдельными паролями\логинами для каждого компьютера. Тут могут быть ошибки, почитай справки\протестируй(писал на скорую руку)
 
Верх