Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [Решено] Привязать св-ва к массивам

Ответить
Настройки темы
PowerShell - [Решено] Привязать св-ва к массивам

Пользователь


Сообщения: 122
Благодарности: 6

Профиль | Отправить PM | Цитировать


Изменения
Автор: c4uran
Дата: 26-07-2018
Описание: Решено
Есть такая задача:
По ad запрашиваем пользователей (или группы или членство групп не важно что, можно просто файлики), допустим с фильтром - город, на выходе получаем всех пользователей из это города (с нумерацией 1,2,3...), далее выдается запрос от шела «выберете пользователей» чтобы добавить их в массив, (так же через запятую вводим нужные номера пользователей), на выходе массив с выбранными пользователями, как это сделать?

Отправлено: 08:19, 19-07-2018

 

Ветеран


Сообщения: 3806
Благодарности: 824

Профиль | Отправить PM | Цитировать


c4uran, а в чём проблема?

Цитата c4uran:
запрос от шела «выберете пользователей» чтобы добавить их в массив, (так же через запятую вводим нужные номера пользователей) »
не издевайтесь над пользователями, используйте Out-GridView
Это сообщение посчитали полезным следующие участники:

Отправлено: 09:46, 19-07-2018 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


Сообщения: 122
Благодарности: 6

Профиль | Отправить PM | Цитировать


Мне нужен интерактив, для создания костыля

get-aduser
Вывод:
1 Петро
2 Васе
3 Андре

$user = введите номер сотрудника: (ввожу 1,3)

Получаю:
$user = @{ Петро, Андре }

Отправлено: 13:58, 19-07-2018 | #3


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


c4uran, коллега Busla, конечно, пошутил. Создайте форму, поместите на неё ListBox/ListView, выводите туда потребный перечень и делайте в нём выбор, добавьте кнопку, по которой после осуществления выбора будут выполняться потребные действия над выбранными строками.

P.S. Нет, номер, конечно, тоже имеет право на жизнь, если пользователей не будет больше десятка, або двух.

Отправлено: 16:22, 19-07-2018 | #4


Пользователь


Сообщения: 122
Благодарности: 6

Профиль | Отправить PM | Цитировать


Никогда не делал ничего подбного, можно пару примеров, там цмдлеты, примеры удачного использования

Отправлено: 17:27, 19-07-2018 | #5


Забанен


Сообщения: 793
Благодарности: 260

Профиль | Цитировать


Вроде бы автор и не заикался о сценарии с GUI, речь о самом хосте надо полагать. Тогда проще создать отдельный буфер (по принципу того, как это реализовано в less), отобразить в нем данные, из которых нужно сделать выбор (с прокруткой или без - на выбор), забрать, скажем, select'ом данные после чего отправить данные в основной буфер, а созданный - удалить.
P.S. $user = @{Петро, Андре} - скорее можно схлопотать трейсбек, нежели массив, ибо здесь попытка создать хеш.

Последний раз редактировалось greg zakharov, 19-07-2018 в 17:37.


Отправлено: 17:32, 19-07-2018 | #6


Ветеран


Сообщения: 3806
Благодарности: 824

Профиль | Отправить PM | Цитировать


Цитата c4uran:
Никогда не делал ничего подбного »
программ на PowerShell ?

Отправлено: 18:44, 19-07-2018 | #7


Ветеран


Сообщения: 1259
Благодарности: 861

Профиль | Отправить PM | Цитировать


Как выше уже сказано, можно использовать Out-GridView с параметром -PassThru для выбора элементов и передачи по конвейеру. Выбор элементов по Ctrl или Shift и длаее нажимаем OK.

Код: Выделить весь код
$p = Get-Process | Out-GridView -PassThru
$p | Foreach {$p.Name}
Можно установить модуль https://github.com/chrisseroka/ps-menu

Для примера выберем пользователей и у выбранных пользоавателей получим город:

Код: Выделить весь код
$users = Get-ADUser -Filter "City -like 'Иваново'" -Properties city
$index = menu @($users.Name) -ReturnIndex -Multiselect
foreach($i in $index) {
	"{0} - {1}" -f $users[$i].name,$users[$i].city
}


Это сообщение посчитали полезным следующие участники:

Отправлено: 19:14, 19-07-2018 | #8


Забанен


Сообщения: 793
Благодарности: 260

Профиль | Цитировать


Kazun, не знаю согласитесь вы или нет, но у ps-menu есть один небольшой недостаток: вывод меню селектора в текущий буфер, - хотя через $host сие можно исправить. В выходные постараюсь написать код.

Отправлено: 19:26, 19-07-2018 | #9


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата Kazun:
можно использовать Out-GridView с параметром -PassThru для выбора элементов и передачи по конвейеру. Выбор элементов по Ctrl или Shift и длаее нажимаем OK. »
Даже не знаю — то ли я знал, но забыл, то ли вовсе тупо не знал .

Отправлено: 19:45, 19-07-2018 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [Решено] Привязать св-ва к массивам

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
C/C++ - Вопрос по динамическим массивам nikit-xxx Программирование и базы данных 5 13-05-2011 03:46
Delphi - [решено] Задачка по массивам vovan1993 Программирование и базы данных 5 14-04-2011 13:25
Как сменить имя и компанию в св-вах компьютера... Warfalomey Флейм 1 20-11-2009 16:16
Как поменять имя и компанию в св-вах компьютера... Warfalomey Хочу все знать 2 20-11-2009 11:44
Не заходит в св-ва папки и пусто в поиске nemo555 Microsoft Windows 2000/XP 11 03-11-2006 23:06




 
Переход