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

Вывод результата выполнения скрипта в Excel

14.06.2018, 10:32. Показов 6337. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
И снова добрый день с:
Есть некий скрипт, проверяющий железки на всех компьютерах в лесу AD и выводящий результат для каждой отдельной машинки в .txt файл. Но появилась необходимость вывести результат в виде таблицы Excel. Как грамотнее и правильнее будет переделать скрипт?

Вот собственно и он:

PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
cls
$OUpaths = @('OU=Computers,OU=DK,DC=domain,DC=com')
 
 
foreach ($iOUpath in $OUpaths)
    {
        ($all_PC += Get-ADComputer -SearchBase $iOUpath -Filter *)
    }
 
$all_PC | %{
    $PC = $_
    $PC_name = $PC.name
    if (Test-Connection $PC_name -Count 1 -ErrorAction "SilentlyContinue"){
        $PC_group_all | %{
            $PC_group = $_
            Write-Output "$PC_group"
            Write-Host "Добро пожаловать. Начата проверка компьютера" -ForeGroundColor Green $PC_name если вы что-нибудь тронете то я откушу вам палец.
            function get-monitorsize 
            {
                Get-WmiObject -computername $PC_name -Namespace root\wmi -Class WmiMonitorBasicDisplayParams |
                select  @{N=”Computer”; E={$_.__SERVER}},
                InstanceName,
                @{N=”Horizonal”; E={[System.Math]::Round(($_.MaxHorizontalImageSize/2.54), 2)}},
                @{N=”Vertical”; E={[System.Math]::Round(($_.MaxVerticalImageSize/2.54), 2)}},
                @{N=”Size”;
                E={[System.Math]::Round(([System.Math]::Sqrt([System.Math]::Pow($_.MaxHorizontalImageSize, 2) `
                + [System.Math]::Pow($_.MaxVerticalImageSize, 2))/2.54),2)}}
            }
"Компьютер" | out-file c:\Invent\Comp\$PC_name.txt 
Get-WmiObject -computername $PC_name Win32_OperatingSystem | 
select-object csname | 
ft @{Label="Сетевое имя"; Expression={$_.CSname}} -auto -wrap | 
out-file c:\Invent\Comp\$PC_name.txt -append
"Процессор" | out-file c:\Invent\Comp\$PC_name.txt -append 
Get-WmiObject -computername $PC_name Win32_Processor | select-object name | 
ft @{label="Имя"; Expression={$_.name}} -auto -wrap | 
out-file c:\Invent\Comp\$PC_name.txt -append
"Материнская плата" | out-file c:\Invent\Comp\$PC_name.txt -append 
Get-WmiObject -computername $PC_name Win32_BaseBoard | select-object Manufacturer, Product | 
ft @{label="Производитель"; Expression={$_.manufacturer}}, 
@{label="Модель"; Expression={$_.Product}} -auto -wrap | 
out-file c:\Invent\Comp\$PC_name.txt -append 
"Жесткие диски" | out-file c:\Invent\Comp\$PC_name.txt -append 
Get-WmiObject -computername $PC_name Win32_DiskDrive | select-object Model | 
ft @{Label="Модель"; Expression={$_.Model}} -auto -wrap | 
out-file c:\Invent\Comp\$PC_name.txt -append 
"Логические диски" | out-file c:\Invent\Comp\$PC_name.txt -append 
Get-WmiObject -computername $PC_name Win32_LogicalDisk -Filter "DriveType=3" | select-object DeviceID, FileSystem, Size, FreeSpace | 
ft @{Label="Наименование"; Expression={$_.DeviceID}}, 
@{Label="Файловая система"; Expression={$_.FileSystem}}, 
@{Label="Размер (гб)"; Expression={($_.Size/1GB).tostring("F00")}}, 
@{Label="Свободное место (гб)"; Expression={($_.FreeSpace/1GB).tostring("F00")}} -auto -wrap | 
out-file c:\Invent\Comp\$PC_name.txt -append 
"Оперативная память" | out-file c:\Invent\Comp\$PC_name.txt -append 
Get-WmiObject -computername $PC_name Win32_Physicalmemory | Select-Object capacity, DeviceLocator | 
ft @{Label="Размер (мб)"; Expression={($_.capacity/1MB).tostring("F00")}}, 
@{Label="Расположение"; Expression={$_.DeviceLocator}} -auto -wrap | 
out-file c:\Invent\Comp\$PC_name.txt -append 
"Видеокарта" | out-file c:\Invent\Comp\$PC_name.txt -append 
Get-WmiObject -computername $PC_name Win32_videoController | 
Select-Object name, AdapterRAM, VideoProcessor | 
ft @{Label="Наименование"; Expression={$_.name}}, 
@{Label="Объем памяти (мб)"; Expression={($_.AdapterRAM/1MB).tostring("F00")}}, 
@{Label="Видеопроцессор"; Expression={$_.VideoProcessor}} -auto -wrap | 
out-file c:\Invent\Comp\$PC_name.txt -append 
"Разрешение монитора" | out-file c:\Invent\Comp\$PC_name.txt -append 
Get-WmiObject -computername $PC_name Win32_DesktopMonitor | 
select-object ScreenHeight, ScreenWidth | 
ft @{Label="Ширина"; Expression={$_.ScreenWidth}},
@{Label="Высота"; Expression={$_.ScreenHeight}} -auto -wrap | 
out-file c:\Invent\Comp\$PC_name.txt -append
"Диагональ монитора" | out-file c:\Invent\Comp\$PC_name.txt -append 
get-monitorsize -computername $PC_name |
select-object Size | ft @{Label="Размер"; Expression={$_.Size}} -auto -wrap | out-file c:\Invent\Comp\$PC_name.txt -append
"Сетевая карта" | out-file c:\Invent\Comp\$PC_name.txt -append 
$OS=Get-WmiObject -computername $PC_name Win32_OperatingSystem | foreach {$_.caption} 
if ($OS -eq "Microsoft Windows 2000 Professional") 
{ 
Get-WmiObject -computername $PC_name Win32_NetworkAdapterConfiguration -Filter "DHCPEnabled=True" | 
Select-Object caption,MACaddress | 
ft @{Label="Наименование"; Expression={$_.caption}}, 
@{Label="MAC адрес"; Expression={$_.MACAddress}} -auto -wrap | 
out-file c:\Invent\Comp\$PC_name.txt -append 
} 
else 
{ 
Get-WmiObject -computername $PC_name Win32_NetworkAdapter -Filter "NetConnectionStatus>0" | 
Select-Object name, AdapterType, MACAddress | 
ft @{Label="Наименование"; Expression={$_.name}} -auto -wrap | 
out-file c:\Invent\Comp\$PC_name.txt -append 
}
        }
    }
    else{Write-Host "Не могу достучаться до $PC_name" -ForeGroundColor Red}}
Вот как выглядит результат в настоящем виде:
https://pp.userapi.com/c846417... tsvRG0.jpg
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.06.2018, 10:32
Ответы с готовыми решениями:

Вывод результата выполнения скрипта в .csv
Доброго дня, нужна помощь с: Cкрипт опрашивает около 200 компьютеров в лесу AD. Не все из них могут быть доступны, а опросить в конечном...

Вывод результата выполнения скрипта в модальном окне
суть в следующем: на сайте в шапке задуман адрес и ссылка на схему проезда. в яндексовском api-maps сгенерировал скрипт на вывод объекта...

Вывод результата выполнения программы в ячейки таблицы в excel
Здравствуйте, подскажите пожалуйста, как, собственно, отобразить результат в таблице? Задание: При помощи датчика случайных чисел...

6
 Аватар для KDE777
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
14.06.2018, 11:32
Лучший ответ Сообщение было отмечено AsterCody как решение

Решение

Цитата Сообщение от AsterCody Посмотреть сообщение
появилась необходимость вывести результат в виде таблицы Excel. Как грамотнее и правильнее будет переделать скрипт?
PowerShell Hardware Inventory Script
Create Hardware Inventory HTML Reports Using PowerShell
Get Server Inventory: CPU, Memory, and OS information. Export to CSV.

и т.д. и т.п.

Добавлено через 31 минуту
Цитата Сообщение от AsterCody Посмотреть сообщение
Как грамотнее и правильнее будет переделать скрипт?
Общий принцип такой - c помощью нужных вам WMI классов выбираете необходимые свойства и объединяете/сохраняете их в новом объекте (New-Object), далее все эти объекты объединяются в один массив, который в свою очередь экспортируете в csv-файл. Примерно, как тут.
1
0 / 0 / 0
Регистрация: 27.12.2017
Сообщений: 25
18.06.2018, 16:49  [ТС]
Всё работает за исключением одного момента, скрипт перезаписывает последний проверенный компьютер и в итоге в csv файле у меня всегда только 1 комп, где я накосячил?
Как заставить скрипт дополнять файл, а не перезаписывать его? У меня тут около 200 компов )

PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
cls
$OUpaths = @('OU=Computers,OU=DK,DC=domkor,DC=com')
 
 
foreach ($iOUpath in $OUpaths)
    {
        ($all_PC += Get-ADComputer -SearchBase $iOUpath -Filter *)
    }
 
$all_PC | %{
    $PC = $_
    $PC_name = $PC.name
    if (Test-Connection $PC_name -Count 1 -ErrorAction "SilentlyContinue"){
        $PC_group_all | %{
            $PC_group = $_
            Write-Output "$PC_group"
            Write-Host "Добро пожаловать. Начата проверка компьютера" -ForeGroundColor Green $PC_name
function get-monitorsize 
{ 
Get-WmiObject -computername $PC_name -Namespace root\wmi -Class WmiMonitorBasicDisplayParams | 
select @{N=”Computer”; E={$_.__SERVER}}, 
InstanceName, 
@{N=”Horizonal”; E={[System.Math]::Round(($_.MaxHorizontalImageSize/2.54), 2)}}, 
@{N=”Vertical”; E={[System.Math]::Round(($_.MaxVerticalImageSize/2.54), 2)}}, 
@{N=”Size”;E={[System.Math]::Round(([System.Math]::Sqrt([System.Math]::Pow($_.MaxHorizontalImageSize, 2) + [System.Math]::Pow($_.MaxVerticalImageSize, 2))/2.54),2)}} 
} 
$infoColl = @()
Foreach ($CPU in $CPUInfo)
{
           $CPU = Get-WmiObject -computername $PC_name Win32_Processor
           $OSInfo = Get-WmiObject -computerName $PC_name Win32_OperatingSystem
           $Motherinfo = Get-WmiObject -computername $PC_name Win32_BaseBoard
           $HDDInfo = Get-WmiObject -computername $PC_name Win32_DiskDrive 
           $LogicInfo = Get-WmiObject -Filter "DriveType=3" -computername $PC_name Win32_LogicalDisk
           $VideoInfo = Get-WmiObject -computername $PC_name Win32_videoController
           $MonitorInfo = Get-WmiObject -computername $PC_name Win32_DesktopMonitor
           $DiagonalInf = get-monitorsize -computername $PC_name
           $OSTotalVirtualMemory = [math]::round($OSInfo.TotalVirtualMemorySize / 1MB, 2) 
           $OSTotalVisibleMemory = [math]::round(($OSInfo.TotalVisibleMemorySize / 1MB), 2) 
           $PhysicalMemory = Get-WmiObject CIM_PhysicalMemory -ComputerName $PC_name | Measure-Object -Property capacity -Sum | % { [Math]::Round(($_.sum / 1GB), 2)}
}
$infoObject = New-Object PSObject 
Add-Member -inputObject $infoObject -memberType NoteProperty -name "Имя компьютера" -value $PC_name
Add-Member -inputObject $infoObject -memberType NoteProperty -name "Процессор" -value $CPU.Name
Add-Member -inputObject $infoObject -memberType NoteProperty -name "Материнская плата" -value $Motherinfo.Manufacturer 
Add-Member -inputObject $infoObject -memberType NoteProperty -name "Модель мат. платы" -value $Motherinfo.Product 
Add-Member -inputObject $infoObject -memberType NoteProperty -name "Жесткие диски" -value $HDDinfo.Model
Add-Member -inputObject $infoObject -memberType NoteProperty -name "Диагональ" -value $DiagonalInf.Size  
Add-Member -inputObject $infoObject -memberType NoteProperty -name "Физическая память" -value $PhysicalMemory
     $infoObject #Output to the screen for a visual feedback.
     $infoColl += $infoObject 
    }
}
 
else {Write-Host "Не могу достучаться до $PC_name" -ForeGroundColor Red}
 
$infoColl | Export-Csv -path C:\invent\1\Инвентаризация_$((Get-Date).ToString('MM-dd-yyyy')).csv -Encoding UTF8 -Delimiter ";" -NoTypeInformation}
0
 Аватар для KDE777
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
18.06.2018, 17:11
Лучший ответ Сообщение было отмечено AsterCody как решение

Решение

AsterCody, Конфигурация компа
1
0 / 0 / 0
Регистрация: 27.12.2017
Сообщений: 25
19.06.2018, 11:09  [ТС]
Отлично, всё зашуршало, но есть проблема, если у компьютера более 1-го монитора или более 1-го HDD, то скрипт не даёт вообще никакой информации по этим параметрам, если же этих элементов по 1 штуке, то всё проходит гладко...

PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
cls
$OUpaths = @('OU=Computers,OU=DK,DC=domkor,DC=com')
 
 
foreach ($iOUpath in $OUpaths)
    {
        ($all_PC += Get-ADComputer -SearchBase $iOUpath -Filter *)
    }
$infoColl = @()
$all_PC | %{
    $PC = $_
    $PC_name = $PC.name
    if (Test-Connection $PC_name -Count 1 -ErrorAction "SilentlyContinue"){
        $PC_group_all | %{
            $PC_group = $_
            Write-Output "$PC_group"
            Write-Host "Добро пожаловать. Начата проверка компьютера" -ForeGroundColor Green $PC_name
function get-monitorsize 
{ 
Get-WmiObject -computername $PC_name -Namespace root\wmi -Class WmiMonitorBasicDisplayParams | 
select @{N=”Computer”; E={$_.__SERVER}}, 
InstanceName, 
@{N=”Horizonal”; E={[System.Math]::Round(($_.MaxHorizontalImageSize/2.54), 2)}}, 
@{N=”Vertical”; E={[System.Math]::Round(($_.MaxVerticalImageSize/2.54), 2)}}, 
@{N=”Size”;E={[System.Math]::Round(([System.Math]::Sqrt([System.Math]::Pow($_.MaxHorizontalImageSize, 2) + [System.Math]::Pow($_.MaxVerticalImageSize, 2))/2.54),2)}} 
} 
Foreach ($CPU in $CPUInfo)
{
           $DiskSpace = Get-WmiObject -computername $PC_name Win32_LogicalDisk -Filter "DriveType=3"
           $DiskSpace2 = [math]::round($DiskSpace.Size / 1GB, 2)
           $CPU = Get-WmiObject -computername $PC_name Win32_Processor
           $OSInfo = Get-WmiObject -computerName $PC_name Win32_OperatingSystem
           $Motherinfo = Get-WmiObject -computername $PC_name Win32_BaseBoard
           $HDDInfo = Get-WmiObject -computername $PC_name Win32_DiskDrive 
           $LogicInfo = Get-WmiObject -Filter "DriveType=3" -computername $PC_name Win32_LogicalDisk
           $VideoInfo = Get-WmiObject -computername $PC_name Win32_videoController
           $MonitorInfo = Get-WmiObject -computername $PC_name Win32_DesktopMonitor
           $DiagonalInf = get-monitorsize -computername $PC_name
           $OSTotalVirtualMemory = [math]::round($OSInfo.TotalVirtualMemorySize / 1MB, 2) 
           $OSTotalVisibleMemory = [math]::round(($OSInfo.TotalVisibleMemorySize / 1MB), 2) 
           $PhysicalMemory = Get-WmiObject CIM_PhysicalMemory -ComputerName $PC_name | Measure-Object -Property capacity -Sum | % { [Math]::Round(($_.sum / 1GB), 2)}
}
$infoObject = New-Object PSObject 
Add-Member -inputObject $infoObject -memberType NoteProperty -name "Имя компьютера" -value $PC_name
Add-Member -inputObject $infoObject -memberType NoteProperty -name "Процессор" -value $CPU.Name
Add-Member -inputObject $infoObject -memberType NoteProperty -name "Материнская плата" -value $Motherinfo.Manufacturer 
Add-Member -inputObject $infoObject -memberType NoteProperty -name "Модель мат. платы" -value $Motherinfo.Product 
Add-Member -inputObject $infoObject -memberType NoteProperty -name "Жесткие диски2" -value $HDDinfo.Model
Add-Member -inputObject $infoObject -memberType NoteProperty -name "Размер HDD" -value $DiskSpace2
Add-Member -inputObject $infoObject -memberType NoteProperty -name "Диагональ" -value $DiagonalInf.Size  
Add-Member -inputObject $infoObject -memberType NoteProperty -name "Оперативная память" -value $PhysicalMemory
     $infoObject #Output to the screen for a visual feedback.
     $infoColl += $infoObject 
    }
}
 
else {Write-Host "Не могу достучаться до $PC_name" -ForeGroundColor Red}
 
$infoColl | Export-Csv -path C:\invent\1\Инвентаризация_$((Get-Date).ToString('MM-dd-yyyy')).csv -Encoding UTF8 -Delimiter ";" -NoTypeInformation}
0
 Аватар для KDE777
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
19.06.2018, 12:51
Лучший ответ Сообщение было отмечено AsterCody как решение

Решение

Цитата Сообщение от AsterCody Посмотреть сообщение
но есть проблема, если у компьютера более 1-го монитора или более 1-го HDD
Если вместо одного объекта может вернуться массив из таких объектов (несколько: физических и/или логических дисков, мониторов, модулей памяти, физических процессоров, сетевых карт и т.д.), тогда сначала необходимо выбрать формат таблицы/отчёта для этих данных + добавлять соответствующую обработку всюду, где только может появиться массив.

Например:

PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$PC_name = 'localhost'
$infoObject = New-Object PSObject
$n = 1
 
$OSInfo  = Get-WmiObject -comp $PC_name Win32_OperatingSystem
$HDDInfo = Get-WmiObject -comp $PC_name Win32_DiskDrive
 
Add-Member -inputObject $infoObject -memberType NoteProperty -name "Имя компьютера" -value $PC_name
Add-Member -inputObject $infoObject -memberType NoteProperty -name "ОС" -value $OSInfo.Caption
 
foreach ($HDD in $HDDInfo )
{
    Add-Member -inputObject $infoObject -memberType NoteProperty -name "Жесткий диск $n" -value $HDD.Model
    $n++
}
 
$infoObject | fl *
1
0 / 0 / 0
Регистрация: 27.12.2017
Сообщений: 25
20.06.2018, 08:14  [ТС]
Собственно всё заработало как нужно, осталась лишь небольшая загвоздка, скрипт опрашивает около 200 компьютеров в лесу AD. Не все из них могут быть доступны, а опросить в конечном итоге нужно ВСЕ. Как можно уговорить скрипт при экспортировании в .csv файл не заменять строки с существующими компьютерами, но вносить те до которых ранее он не мог достучаться, но теперь они доступны?

PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
cls 
$OUpaths = @('OU=Computers,OU=DK,DC=domain,DC=com')
 
foreach ($iOUpath in $OUpaths) 
{ 
($all_PC += Get-ADComputer -SearchBase $iOUpath -Filter *) 
} 
$infoColl = @() 
$all_PC | %{ 
$PC = $_ 
$PC_name = $PC.name 
if (Test-Connection $PC_name -Count 1 -ErrorAction "SilentlyContinue"){ 
$PC_group_all | %{ 
$PC_group = $_ 
Write-Output "$PC_group" 
Write-Host "Добро пожаловать. Начата проверка компьютера" -ForeGroundColor Green $PC_name 
$a = 1 
$b = 1 
$c = 1 
function get-monitorsize 
{ 
Get-WmiObject -computername $PC_name -Namespace root\wmi -Class WmiMonitorBasicDisplayParams | 
select @{N=”Computer”; E={$_.__SERVER}}, 
InstanceName, 
@{N=”Horizonal”; E={[System.Math]::Round(($_.MaxHorizontalImageSize/2.54), 2)}}, 
@{N=”Vertical”; E={[System.Math]::Round(($_.MaxVerticalImageSize/2.54), 2)}}, 
@{N=”Size”;E={[System.Math]::Round(([System.Math]::Sqrt([System.Math]::Pow($_.MaxHorizontalImageSize, 2) + [System.Math]::Pow($_.MaxVerticalImageSize, 2))/2.54),2)}} 
} 
$CPU = Get-WmiObject -computername $PC_name Win32_Processor 
$OSInfo = Get-WmiObject -computerName $PC_name Win32_OperatingSystem 
$Motherinfo = Get-WmiObject -computername $PC_name Win32_BaseBoard 
$HDDInfo = Get-WmiObject -computername $PC_name Win32_DiskDrive 
$LogicInfo = Get-WmiObject -Filter "DriveType=3" -computername $PC_name Win32_LogicalDisk 
$VideoInfo = Get-WmiObject -computername $PC_name Win32_videoController 
$MonitorInfo = Get-WmiObject -computername $PC_name Win32_DesktopMonitor 
$OSTotalVirtualMemory = [math]::round($OSInfo.TotalVirtualMemorySize / 1MB, 2) 
$OSTotalVisibleMemory = [math]::round(($OSInfo.TotalVisibleMemorySize / 1MB), 2) 
$PhysicalMemory = Get-WmiObject CIM_PhysicalMemory -ComputerName $PC_name | Measure-Object -Property capacity -Sum | % { [Math]::Round(($_.sum / 1GB), 2)} 
$DiskSpace = Get-WmiObject -computername $PC_name Win32_LogicalDisk -Filter "DriveType=3" | % {[math]::round($_.Size / 1GB, 2)} 
$DiagonalInf = get-monitorsize -computername $PC_name 
 
$infoObject = New-Object PSObject 
Add-Member -inputObject $infoObject -memberType NoteProperty -name "Имя компьютера" -value $PC_name 
Add-Member -inputObject $infoObject -memberType NoteProperty -name "Процессор" -value $CPU.Name 
Add-Member -inputObject $infoObject -memberType NoteProperty -name "Материнская плата" -value $Motherinfo.Manufacturer 
Add-Member -inputObject $infoObject -memberType NoteProperty -name "Модель мат. платы" -value $Motherinfo.Product 
Add-Member -inputObject $infoObject -memberType NoteProperty -name "Оперативная память" -value $PhysicalMemory 
foreach ($HDD in $HDDInfo) 
{ 
Add-Member -inputObject $infoObject -memberType NoteProperty -name "Жесткий диск $a" -value $HDD.Model 
$a++ 
} 
foreach ($Space in $DiskSpace) 
{ 
Add-Member -inputObject $infoObject -memberType NoteProperty -name "Размер HDD $b" -value $Space 
$b++ 
} 
foreach ($Diagonal in $DiagonalInf) 
{ 
Add-Member -inputObject $infoObject -memberType NoteProperty -name "Диагональ монитора $c" -value $Diagonal.size 
$c++ 
} 
$infoObject 
$infoColl += $infoObject 
} 
} 
else {Write-Host "Не могу достучаться до $PC_name" -ForeGroundColor Red} 
 
$infoColl | Export-Csv -path C:\AC\Инвентаризация_$((Get-Date).ToString('MM-dd-yyyy')).csv -Encoding UTF8 -Delimiter ";" -NoTypeInformation}
Как выглядит выходной файл в данный момент (Для наглядности) https://pp.userapi.com/c845523... XgkTXo.jpg
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.06.2018, 08:14
Помогаю со студенческими работами здесь

Обработка результата выполнения SQL скрипта
есть скрипт UPDATE tblProduct SET Name = 'Работ' WHERE ProductID = 34 AND TimeStampF = 0x000000000000659C IF (@@ROWCOUNT = 0) ...

AJAX выводит код скрипта вместо его выполнения и вывода результата
ajax.js var default_content=""; $(document).ready(function(){ checkURL(); $('ul li a').click(function (e){ ...

Вывод результата консольного скрипта
Можно ли настроить nginx так, что бы он выводил результат некоторой команды? Результат сыпется в stdout.

Вывод результата скрипта в intup
Добрый день! имеем скрип <script> ... ... document.querySelector("#pot").textContent = timut выводим результат его...

Вывод результата работы скрипта в таблице
Доброго времени суток! Как сделать чтобы результаты работы скрипта отзывов выводился в таблице - может быть такая тема или похожая тема...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru