Форум программистов, компьютерный форум, киберфорум
PowerShell
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 28.03.2017
Сообщений: 28

Запутался в объектах

16.05.2017, 11:27. Показов 717. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день! Снова нуждаюсь в Вашей помощи:
есть код:
PowerShell
1
2
3
4
5
6
7
8
9
Import-Module ActiveDirectory
$comps = Get-ADComputer -Filter * -property * 
foreach ($comp in $comps){
$Name = $comp.Name
$OperatingSystem = $comp.OperatingSystem
$job=@{Name = $Name;OperatingSystem = $OperatingSystem}
$PC= New-Object -TypeName PSObject -Property $job
$mas=$mas,$PC
}
Хочу получить таблицу вида:
Code
1
2
3
4
5
6
Name                                                        OperatingSystem
----                                                        ---------------
SRV1                                                      Windows Server 2008 R2 Enterprise
SRV2                                                      Windows Server 2008 R2 Enterprise
SRV3                                                      Windows Server 2008 R2 Enterprise
PC1                                                        Windows 7 Корпоративная
Если бы это был не цикл, то присвоить значения $mas можно через запятую ( $mas=$pC1,$PC2 и т.д ), что я и попробовал в цикле, но так не прокатывает...

Добавлено через 30 минут
Я понимаю, что $comps - это по сути то, что я пытаюсь получить в $mas, и даже больше. Просто в $job планируется добавить несколько значений, например информация о дисках, которая получается через WMI (Get-WMIObject -Class Win32_LogicalDisk).
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.05.2017, 11:27
Ответы с готовыми решениями:

Вопрос о объектах-типах и объектах-экземплярах
Меня интересует вопрос о объектах-типах и объектах - экземплярах. Рихтер говорит о том, что каждый тип загружается в домен приложения и...

UI на 3d объектах
Всем привет. Подскажите такой момент : Есть игровая сцена 2d или 3d, в принципе неважно. На сцене находятся несколько GameObject-ов....

Процедуры в объектах
Никак не могу справиться с ошибками при компиляции. Вот код: module ColumnModule implicit none Type Column integer ...

5
 Аватар для KDE777
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
16.05.2017, 11:35
Цитата Сообщение от alvibol Посмотреть сообщение
Хочу получить таблицу вида:
Name OperatingSystem
Зачем такие сложности?

PowerShell
1
2
$PCs = Get-ADComputer -Filter * -property OperatingSystem | select name,OperatingSystem | ft -a
$PCs | ft -a
Или сразу без переменой:

PowerShell
1
Get-ADComputer -Filter * -property OperatingSystem | ft name,OperatingSystem -a
Добавлено через 2 минуты
Цитата Сообщение от alvibol Посмотреть сообщение
Просто в $job планируется добавить несколько значений, например информация о дисках, которая получается через WMI
Если нужно создать объект, в которой будут собраны (в цикле) данные из разных источников, тогда здесь показано готовое решение: Список пользователей, нужно вытащить Member Of
1
0 / 0 / 0
Регистрация: 28.03.2017
Сообщений: 28
16.05.2017, 12:01  [ТС]
Цитата Сообщение от KDE777 Посмотреть сообщение
Если нужно создать объект, в которой будут собраны (в цикле) данные из разных источников, тогда здесь показано готовое решение: Список пользователей, нужно вытащить Member Of
Спасибо, помогло
0
0 / 0 / 0
Регистрация: 28.03.2017
Сообщений: 28
29.05.2017, 12:27  [ТС]
Еще вопрос, есть цикл, в котором формируются фрагменты html, сколько их будет всего я не знаю, но нужно их потом все на одной странице отобразить.
попробовал так:
PowerShell
1
2
3
4
5
6
7
$servers="server1","server02","server-3"
$Body=@()
ForEach ($server in $servers){
$frag=GEt-EventLog -LogName "System" -ComputerName $server | ConvertTo-Html -Fragment
$Body+= $frag | Select *
}
ConvertTo-Html -Body $Body
Не знаю сколько итераций будет, т.к. планируется редактировать содержание переменной $servers.
В итоге получаю ошибку, что переменная ($Body) пустая, подскажите как правильно данное реализовать, если это вообще возможно
0
 Аватар для KDE777
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
29.05.2017, 13:20
Цитата Сообщение от alvibol Посмотреть сообщение
$frag=GEt-EventLog -LogName "System" -ComputerName $server | ConvertTo-Html -Fragment
Эта строчка создаст таблицу на десятки мегабайт, с огромным количеством строчек (от десятков тысяч до миллиона) и это только для одного сервера. Не слишком много данных для отправки по почте???

Цитата Сообщение от alvibol Посмотреть сообщение
подскажите как правильно данное реализовать, если это вообще возможно
В данном случае можно обойтись без ForEach:

PowerShell
1
2
$servers = "server1","server02","server-3"
$body = GEt-EventLog -LogName System -Newest 10 -ComputerName $servers | select TimeGenerated,MachineName,EventID,Message | ConvertTo-Html
Если ForEach всё-таки нужен (планируете запрашивать с серверов что-то ещё), тогда так:

PowerShell
1
2
3
4
5
6
7
$log = @()
ForEach ($server in $servers)
{
    $log += GEt-EventLog -LogName System -Newest 10 -ComputerName $server | select TimeGenerated,MachineName,EventID,Message
}
 
$body = $log | ConvertTo-Html -Fragment
1
0 / 0 / 0
Регистрация: 28.03.2017
Сообщений: 28
29.05.2017, 14:26  [ТС]
планирую выбирать только warning и error только за последнюю неделю и всего несколько полей (датагенерации, код, описание), помимо массива $servers хочу еще массив $events="system","application", а также хотелось бы сформировать это на странице таким образом, чтобы каждый сервер/event были отдельной таблицей, т.е. у каждой таблице был -Precontent "<h3>$server/$event</h3>". Т.е хотелось бы выводить на одной странице Несколько таблиц со своими заголовками.

Добавлено через 7 минут
получается, что не объекты складывать нужно, а уже сконвертированные фрагменты html, только как это сделать не пойму.
В сети нашел такой пример :
PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
$frag1 = Get-CSInfo –computername SERVER2 | ConvertTo-Html -As LIST -Fragment –PreContent '<h2>Computer Info</h2>' | Out-String
$frag2 = Get-WmiObject -Class Win32_LogicalDisk -Filter 'DriveType=3' -ComputerName SERVER2 |
Select-Object @{name='Drive';expression={$_.DeviceID}},
@{name='Size(GB)';expression={$_.Size / 1GB -as [int]}},
@{name='FreeSpace(GB)';expression={
$_.freespace / 1GB -as [int]}} | ConvertTo-Html -Fragment -PreContent '<h2>Disk Info</h2>' | Out-String
 
$head = @'
<style>
body { background-color:#dddddd;
           font-family:Tahoma;
       font-size:12pt; }
td, th { border:1px solid black;
           border-collapse:collapse; }
th { color:white;
           background-color:black; }
           table, tr, td, th { padding: 2px; margin: 0px }
table { margin-left:50px; }
</style>
'@
 
ConvertTo-HTML -head $head -PostContent $frag1, $frag2 -PreContent "<h1>Hardware Inventory for SERVER2</h1>"
Вот примерно того же и я хочу добиться, только у меня фрагментов неизвестное количество

Добавлено через 29 минут
кажется получилось
' | Out-String
Главное выделено жирным
т.е. фрагменты в виде строк в цикле складываются в переменную, которая уже потом конвертируется. Невнимательно прочитал вначале...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.05.2017, 14:26
Помогаю со студенческими работами здесь

Радиус в объектах.
Помогите пожалуйста записать правильно радиус и висоту чтобы выщитувало пожалуйста мне просто через час ехать здавать надо,прошу очень...

Поля в объектах
Всем здравствуйте. есть вот такая задачка. Вроде сделал, но ошибка выбивает при запуску. Задание: Создать массив обьектов с полями...

Конкатенация строк в объектах
Программа завершает свою работу в тот момент, когда выполняет нижеприведенный фрагмент кода. Вывода на экран не происходит. Вкратце...

Get и Set в классах и объектах
Необходимо по ID изменить какую-либо строку. Не могу немного понять, как вызвать и использовать Get и Set. Подскажите. package...

Тип char в Объектах
Я бы хотел узнать как в этом коде использовать тип char вместо string, я искал примеры с типом char, но не нашёл #include...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru