соединить три скрипта общим выводом.
доброго времени суток. Есть три скрипта, которые написали участники данного форума. Первый снимает
мак-адрес
Код:
Get-WmiObject Win32_NetworkAdapter -Filter 'AdapterTypeId = 0 and MACAddress is not null' | мониторах
Код:
$ofs = '' морд
[code]
Код:
param ( |
было бы это в батнике, я бы просто слепил бы в один файл, а вывод настроил бы с помощью >, а второй и третий скрипт через >>. Тут оказалось сложнее как-то
|
нашел два параметра -NoClobber -Force, вроде они выполняют функцию > >> подобно bat, но пока со значениями непонятно. Получается, что можно подобно батнику просто скопировать три скрипта в одно тело, а вывод у каждого свой, но в один и тот же файл. Первый скрипт будет перезаписывать файл, а два другие только дописывать.
|
Цитата:
|
Цитата:
слепил три вместе
Код:
Get-WmiObject Win32_NetworkAdapter -Filter 'AdapterTypeId = 0 and MACAddress is not null' | Скрытый текст
Код:
строка:10 знак:12 Скрытый текст
Код:
write-host Ошибка: $_ -for red |
Цитата:
Цитата:
В данном случае, это параметры скрипта: Цитата:
Цитата:
|
Спасибо, все получилось. Я так понимаю, чтобы сделать это таблицей .csv надо перед Out-File еще команду вставить с оператором конвейером?
|
Цитата:
|
Цитата:
|
Цитата:
Monster_Frankenstein
Код:
param ( |
новая проблема, накидан
скрипт
Код:
Param( #powershell Код:
ekt_tt;d909-2;Hewlett-Packard;HP ProDesk 400 G1 SFF;64:51:06:3B:4A:8D;HP W2072a;CNC435PJ5D;HP E231;3CQ3470WJF; |
Цитата:
|
Цитата:
ремикс
Код:
Param( резуьлтат
Код:
"PSComputerName";"Manufacturer";"Model";"Serialnumber";"MACAddress";"name";"AdapterType";"Speed" Код:
$m = gwmi wmimonitorid -Namespace root\wmi Код:
HP E231 HP E231 А точнее, лучше не вычленять из результата, а сразу писать результат как надо. |
В данном случае Вы получаете массив из двух значений.
|
Цитата:
Код:
$a = ((gwmi wmimonitorid -Namespace root\wmi -ComputerName t-pc-nori).UserFriendlyName) Код:
72 Код:
[string]$b = $a[0..7] хм, заметил, что всегда возвращает 26 значений независимо от моделей, по идее можно делать по 13 на каждое значение, далее уже в тексте обрезать лишние пробелы. Код:
72 |
в общем что-то получилось
Скрытый текст
Код:
$PSComputerName = Get-WmiObject -computername $pp Win32_NetworkAdapter -Filter "NetConnectionStatus>0" |foreach {$_.PSComputerName} Скрытый текст
Код:
"PSComputerName";"Manufacturer";"Model";"Serialnumber";"MACAddress";"name";"AdapterType";"Speed";"Monitor 1";"SN 1";"Monitor 2";"SN 2" ну и как то избавиться от красноты, так где нет мониторов вообще такие вот ошибки: Скрытый текст
Код:
gwmi : Не поддерживается |
еще многие компы ответили так
Скрытый текст
Код:
Get-CimInstance : Службе WS-Management не удается обработать запрос. URI ресурса DMTF был использован для доступа к классу, отличному от DMTF. Повторите попытку с использованием URI ресурса, отличного от DMTF. |
Цитата:
Цитата:
|
Код:
Param( |
ваш код так же записывает прошлое значение если нет мониторов, например, 05-server не имеет мониторов, но однако записал результаты от прошлого запуска.
Код:
Param( Код:
Name Value Код:
$hash_object | export-csv $outfile -notype -enc utf8 -d ';' -append Код:
"Count";"IsReadOnly";"Keys";"Values";"IsFixedSize";"SyncRoot";"IsSynchronized" |
не знаю как, но проблема с заполнением полей сама ушла
Итого:
Код:
Param( #powershell результат
Код:
"on\off";"Region";"B\S\TT";"PSComputerName";"Manufacturer";"Model";"Serialnumber";"IPv4";"MACAddress";"name";"AdapterType";"Speed";"Monitor 1";"Monitor SN 1";"Monitor 2";"Monitor SN 2" |
|
Цитата:
|
Цитата:
Если планируете запускать скрипт много раз в одной сессии, то замените первую строку на Param($rv=(rv * -ea 0), . |
Цитата:
Код:
Param($rv=(rv * -ea 0), Код:
"PSComputerName";"Manufacturer";"Model";"Serialnumber";"MACAddress";"name";"AdapterType";"Speed";"Monitor11" Код:
export-csv : Не удается присоединить содержимое CSV к следующему файлу: E:\video\1111.csv. У присоединяемого объекта отсутствует свойство, соответствующее сл |
Цитата:
И зачем там foreach? Код:
$adapter = gwmi -computername $pp Win32_NetworkAdapter -Filter "NetConnectionStatus>0" |
Цитата:
|
Ну получена и получена, мне-то всё равно. Я о другом. Всё равно работает-то через одно место это детище Франкенштейна.
И улучшать его, лезть и разбираться уже не хочется, видя отношение ТС к процессу и нежелание нормально разобраться с написанием скриптов самому. А ведь с момента первых сообщений по этой теме прошло уже немало времени. |
Цитата:
Цитата:
Цитата:
Цитата:
|
|
Цитата:
Лично я освоил Powershell за несколько месяцев, прочитав книжку "Learn Windows PowerShell in a Month of Lunches", а потом выборочно - "PowerShell in Depth". Причём, никакого опыта программирования у меня не было - до этого я писал элементарнейшие скрипты CMD. То, что пишет в CMD, например, Megaloman, я не понимаю и сейчас. Если не читаете на английском, есть куча русских источников, в этой ветке есть прикреплённая тема "Справочный материал Powershell". Было бы желание, ну и читать надо последовательно и с начала, чтобы в голове складывалась какая-то система и понимание, что к чему. |
Цитата:
DJ Mogarych, не, на русском нихрена до сих пор ничего вменяемого нет. Увы. Но проблема и в том, что даже на английском нет даже вменяемой документации (читать блоги разработчиков, это, конечно, занимательно и пользительно, но не заменяет наличия полноценной документации). Всё дёргано, разнородно, здесь работает-здесь не работает, и требует обязательной проверки и опробования на практике. |
Кто ищет - тот всегда найдёт.
А насчёт разнородности и проверок - это как у любого развивающегося языка, а особенно, которому надо поддерживать всякую совместимость со старыми технологиями. |
Цитата:
Цитата:
|
Время: 18:56. |
Время: 18:56.
© OSzone.net 2001-