|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - Данные о системе |
|
PowerShell - Данные о системе
|
Пользователь Сообщения: 132 |
Профиль | Сайт | Отправить PM | Цитировать Добрый день!
Сразу оговорюсь это мой первый код на PowerShell Есть код, Выводит данные о системе. Но в итоговом файле почему-то получается много лишних пустых строк. Для начала может кто-нибудь помочь это поправить? Собственно сам код: # Имя компьютера "Имя компьютера" |out-file i:\\distrib\proc.txt $systeminfo = Get-WmiObject -Class Win32_ComputerSystem $name = '{0}.{1}' -f $systeminfo.DNSHostName, $systeminfo.Domain $name |out-file i:\\distrib\proc.txt -append # Операционная система "Операционная система" |out-file i:\\distrib\proc.txt -append $systeminfo = Get-CimInstance -ClassName Win32_OperatingSystem $systeminfo | fl Caption, InstallDate |out-file i:\\distrib\proc.txt -append # Процессор "Процессор" |out-file i:\\distrib\proc.txt -append $cpuinfo = Get-CimInstance -ClassName CIM_Processor $cpuinfo | fl Name, CurrentClockSpeed |out-file i:\\distrib\proc.txt -append # Оперативная память "Оперативная память" |out-file i:\\distrib\proc.txt -append Get-WMIObject -class win32_physicalmemory | Measure-Object -Property capacity -Sum | select @{N="Total Physical Ram"; E={[math]::round(($_.Sum / 1MB),2)}} |out-file i:\\distrib\proc.txt -append # Свободное место на диске "Свободное место на диске" |out-file i:\\distrib\proc.txt -append Get-WmiObject Win32_LogicalDisk -Filter "DriveType=3" | Select DeviceID,@{Name="size(GB)";Expression={"{0:N1}" -f($_.size/1gb)}},@{Name="freespace(GB)";Expression={"{0:N1}" -f($_.freespace/1gb)}} | Format-Table -AutoSize |out-file i:\\distrib\proc.txt -append |
|
------- Отправлено: 08:37, 12-04-2019 |
Старожил Сообщения: 280
|
Профиль | Отправить PM | Цитировать Вот ваш отредактированный
Ваш вариант
# Имя компьютера $file="C:\temp\1.txt" "Имя компьютера" |out-file $file $systeminfo = Get-WmiObject -Class Win32_ComputerSystem $name = '{0}.{1}' -f $systeminfo.DNSHostName, $systeminfo.Domain $name |out-file $file -append # Операционная система "Операционная система" |out-file $file -append $systeminfo = Get-CimInstance -ClassName Win32_OperatingSystem ($systeminfo | fl Caption, InstallDate |Out-String).trim()|out-file $file -append # Процессор "Процессор" |out-file $file -append $cpuinfo = Get-CimInstance -ClassName CIM_Processor ($cpuinfo | fl Name, CurrentClockSpeed |Out-String).trim()|out-file $file -append # Оперативная память "Оперативная память" |out-file $file -append (Get-WMIObject -class win32_physicalmemory | Measure-Object -Property capacity -Sum | select @{N="Total Physical Ram"; E={[math]::round(($_.Sum / 1MB),2)}} | Out-String).trim() |out-file $file -append # Свободное место на диске "Свободное место на диске" |out-file $file -append (Get-WmiObject Win32_LogicalDisk -Filter "DriveType=3" | Select DeviceID,@{Name="size(GB)";Expression={"{0:N1}" -f($_.size/1gb)}},@{Name="freespace(GB)";Expression={"{0:N1}" -f($_.freespace/1gb)}} | Format-Table -AutoSize |Out-String).trim()|out-file $file -append Добавляет он строчки из-за Format-List (fl). В вашем скрипте, просто сделал trim в каждом выводе. Ну и так бонусом второй вариант Еще вариант
$file="C:\temp\2.txt" $infoObject = New-Object PSObject $OSInfo = Get-WmiObject Win32_OperatingSystem $HOSTNAME = Get-WmiObject -Class Win32_ComputerSystem | select DNSHostName, Domain $OS = Get-CimInstance -ClassName Win32_OperatingSystem | select Caption, InstallDate $CPU = Get-CimInstance -ClassName CIM_Processor | Select Name, CurrentClockSpeed $RAM=Get-WMIObject -class win32_physicalmemory | Measure-Object -Property capacity -Sum | select @{N="Total Physical Ram"; E={[math]::round(($_.Sum / 1MB),2)}} $HDDFree=Get-WmiObject Win32_LogicalDisk -Filter "DriveType=3" | Select DeviceID, FreeSpace, Size Add-Member -inputObject $infoObject -memberType NoteProperty -name "Имя компьютера" -value ($HOSTNAME.DNSHostName+"."+$HOSTNAME.Domain).trim() Add-Member -inputObject $infoObject -memberType NoteProperty -name "ОС" -value $OS.Caption Add-Member -inputObject $infoObject -memberType NoteProperty -name "Дата установки ОС" -value $OS.InstallDate Add-Member -inputObject $infoObject -memberType NoteProperty -name "Процессор" -value $CPU.Name Add-Member -inputObject $infoObject -memberType NoteProperty -name "Частота процессора" -value $CPU.CurrentClockSpeed Add-Member -inputObject $infoObject -memberType NoteProperty -name "Оперативная память" -value $RAM.'Total Physical Ram' foreach ($HDD in $HDDFree ) { $Razdel=$HDD.DeviceID Add-Member -inputObject $infoObject -memberType NoteProperty -name "Свободное место раздела $Razdel" -value ([math]::Round(($HDD.FreeSpace)/1gb)) Add-Member -inputObject $infoObject -memberType NoteProperty -name "Занятое место раздела $Razdel" -value ([math]::Round(($HDD.Size)/1gb)) } ($infoObject | fl * | Out-String).Trim() | out-file $file Ну и отредактировал куда выводится результат в первом случае C:\temp\1.txt, во втором случае в C:\temp\2.txt |
Последний раз редактировалось Molchune, 12-04-2019 в 16:17. Отправлено: 11:09, 12-04-2019 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 132
|
Профиль | Сайт | Отправить PM | Цитировать Второй вариант не работает:
Get-WmiObject : Не удается проверить аргумент для параметра "ComputerName". Аргумент пустой или имеет значение NULL. Ук ажите непустой аргумент, не имеющий значение NULL, после чего повторите выполнение команды. строка:3 знак:32 + $OSInfo = Get-WmiObject -comp $PC_name Win32_OperatingSystem + ~~~~~~~~ + CategoryInfo : InvalidData: ( [Get-WmiObject], ParameterBindingValidationException + FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.PowerShell.Commands.GetWmiObjectCommand Цитата Molchune:
|
|
------- Отправлено: 11:18, 12-04-2019 | #3 |
Ветеран Сообщения: 3806
|
Профиль | Отправить PM | Цитировать Molchune, второй вариант неоправданно усложнён - что мешает сразу проинициализировать hashTable нужными значениями без временных переменных и Add-Member?
|
Отправлено: 11:32, 12-04-2019 | #4 |
Старожил Сообщения: 280
|
Профиль | Отправить PM | Цитировать Цитата Busla:
Цитата Sergey666:
Цитата Sergey666:
|
||||
Последний раз редактировалось Molchune, 12-04-2019 в 16:15. Отправлено: 14:09, 12-04-2019 | #5 |
(*.*) Сообщения: 36491
|
Профиль | Сайт | Отправить PM | Цитировать См. также https://www.outsidethebox.ms/15841/
|
Отправлено: 13:38, 15-04-2019 | #6 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Разное - Восстановить утерянные данные в системе после краха Rollback RX | DeepWaters | Microsoft Windows 10 | 0 | 16-03-2019 08:43 | |
[решено] Операционной системе требуются ваши учетные данные | fraid | Windows Server 2012/2012 R2 | 4 | 26-03-2013 14:05 | |
CMD/BAT - Как на 64-разрядной системе внести данные из reg файла? | SvoiLudi | Скриптовые языки администрирования Windows | 8 | 10-04-2010 12:56 | |
Интерфейс - изменить данные о системе | PLATON | Microsoft Windows 2000/XP | 2 | 19-02-2010 19:37 | |
Доступ к системе есть. Узнать каким образом публикуются в Сеть данные в виде сайта. | Denis1983 | Вебмастеру | 8 | 14-01-2007 04:37 |
|