Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Спонтанные ошибки в Grid (http://forum.oszone.net/showthread.php?t=309798)

butunin@vk 30-12-2015 14:41 2589828

Спонтанные ошибки в Grid
 
Код:

Function mesto
{
       
        $array2 = New-Object System.Collections.ArrayList
        $comp = $textbox3.text
        if (Test-Connection $comp -count 1 -quiet)
        {
                $Script:DiskInfo = Get-WmiObject Win32_LogicalDisk -Filter "DriveType=3" -Computer $comp | Select SystemName, DeviceID, @{ Name = "size(GB)"; Expression = { "{0:N1}" -f ($_.size/1gb) } }, @{ Name = "Freespace(GB)"; Expression = { "{0:N1}" -f ($_.freespace/1gb) } }
                $array2.AddRange($DiskInfo)
                $dataGrid2.DataSource = $array2
        }
        else
        {
                [System.Windows.Forms.MessageBox]::Show("Компьютер $comp не отвечает, проверьте имя, фаервол или включите его")
        }
}

Не пойму в чем проблема... есть грид который создает табличку, на часть запросов он создает , а на часть ПС вываливается в ошибку

ERROR: Не удается преобразовать аргумент "c", со значением: "@{SystemName=VDA-W81-7; DeviceID=C:; size(GB)=49,7; Freespace(GB)=6,3}", для "AddRange" в тип "System.Col
ERROR: lections.ICollection": "Не удается преобразовать значение "@{SystemName=VDA-W81-7; DeviceID=C:; size(GB)=49,7; Freespace(GB)=6,3}" типа "Selected.System.Manage
ERROR: ment.ManagementObject" в тип "System.Collections.ICollection"."
ERROR: + $array2.AddRange($DiskInfo)
ERROR: + ~~~~~~~~~~~~~~~~~~~~~~~~~~~
ERROR: + CategoryInfo : NotSpecified: (:) [], MethodException
ERROR: + FullyQualifiedErrorId : MethodArgumentConversionInvalidCastArgument
ERROR:

Foreigner 30-12-2015 17:10 2589866

А что скрипт должен вообще выводить и в каком виде. Здесь какой-то обрывок. В частности что за $textbox3 и $dataGrid2, где и как их создали? Как все это выводится в таблицу, зачем создавать [collections.arraylist] ? Много неочевидностей.

butunin@vk 30-12-2015 17:30 2589874

Спасибо за ответ Foreigner, там большую софтину я написал попробую куски выдрать...
либо сам исходник , там наработки но в целом все работает .
Исходник
Создавал все в Sapiens powershell Studio

3 это $textbox3
2 это $dataGrid2

[collections.arraylist] для фильтрации в дальнейшем.
могу исходник скинуть ...
на скрине , видите отдал значение в грид , а вот имя типа VDA-w81-7 нет , ну и частенько попадаются такие машинки которые с ошибкой выпадают.

butunin@vk 11-01-2016 14:33 2593442

Цитата:

Цитата Foreigner
А что скрипт должен вообще выводить и в каком виде. Здесь какой-то обрывок. В частности что за $textbox3 и $dataGrid2, где и как их создали? Как все это выводится в таблицу, зачем создавать [collections.arraylist] ? Много неочевидностей. »

Я походу понял в чем дело, если выводится 1 значение то это должно быть не как коллекция а как элемент, а если 2+ то коллекция.
По этому просто заключил в @(команды)

Код:

$Script:DiskInfo = @(Get-WmiObject Win32_LogicalDisk -Filter "DriveType=3" -Computer $comp | Select SystemName, DeviceID, @{ Name = "size(GB)"; Expression = { "{0:N1}" -f ($_.size/1gb) } }, @{ Name = "Freespace(GB)"; Expression = { "{0:N1}" -f ($_.freespace/1gb) } })


Время: 21:59.

Время: 21:59.
© OSzone.net 2001-