none
Данные о системе

    Вопрос

  • Добрый день!
    Сразу оговорюсь это мой первый код на 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
    12 апреля 2019 г. 5:51

Все ответы

  • думать лень и оформление вырвиглаз...

    ща до работы доеду - гляну если коллеги не помогут

    # Имя компьютера
    "Имя компьютера" |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

    12 апреля 2019 г. 6:55
  • Может легче так?

    $systeminfo = Get-WmiObject -Class Win32_ComputerSystem
    $name = '{0}.{1}' -f $systeminfo.DNSHostName, $systeminfo.Domain 
    $systeminfo = Get-CimInstance -ClassName Win32_OperatingSystem 
    $cpuinfo = Get-CimInstance -ClassName CIM_Processor
    $RAM = Get-WMIObject -class win32_physicalmemory | Measure-Object -Property capacity -Sum | select @{N="Total Physical Ram"; E={[math]::round(($_.Sum / 1MB),2)}}
    $FreeSpace = 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)}}
    
    $ComputerInfo = @(
                        $name,
                        $systeminfo,
                        $cpuinfo,
                        $RAM,
                        $FreeSpace
                        )
    
    $ComputerInfo | out-file i:\\distrib\proc.txt

    12 апреля 2019 г. 7:31
  • Только Пустые строки всё равно есть:

    Caption           : Intel64 Family 6 Model 158 Stepping 10
    DeviceID          : CPU0
    Manufacturer      : GenuineIntel
    MaxClockSpeed     : 2808
    Name              : Intel(R) Core(TM) i5-8400 CPU @ 2.80GHz
    SocketDesignation : U3E1


    Total Physical Ram : 8192


    DeviceID      : C:
    size(GB)      : 223,0
    freespace(GB) : 168,4


    DeviceID      : D:
    size(GB)      : 596,2
    freespace(GB) : 248,7


    DeviceID      : I:
    size(GB)      : 931,5
    freespace(GB) : 761,4

    12 апреля 2019 г. 7:37
  • $systeminfo = Get-WmiObject -Class Win32_ComputerSystem
    $name = '{0}.{1}' -f $systeminfo.DNSHostName, $systeminfo.Domain 
    $systeminfo = Get-CimInstance -ClassName Win32_OperatingSystem 
    $cpuinfo = Get-CimInstance -ClassName CIM_Processor
    $RAM = Get-WMIObject -class win32_physicalmemory | Measure-Object -Property capacity -Sum | select @{N="Total Physical Ram"; E={[math]::round(($_.Sum / 1MB),2)}}
    $FreeSpace = 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)}}
    
    $ComputerInfo = @(
                        $name,
                        $systeminfo,
                        $cpuinfo,
                        $RAM,
                        $FreeSpace
                        )
    
    $ComputerInfo |Out-File C:\tmp\InfoWithLines.txt
    
    
    
    
    Get-Content C:\tmp\InfoWithLines.txt  | Where { $_ } | Out-File C:\tmp\Info_nolines.txt
    Держите) 
    12 апреля 2019 г. 7:52
  • Out-File : Не удалось найти часть пути "C:\tmp\InfoWithLines.txt"....


    12 апреля 2019 г. 8:02
  • Out-File : Не удалось найти часть пути "C:\tmp\InfoWithLines.txt"....


    Очистите кэш переменных, перезапустите ISE, удалите файлы созданные. У меня все работает.
    12 апреля 2019 г. 8:23
  • "C:\tmp\ ...  часто используются сторонними программами. Они могут очистить /tmp пока скрипт выполняется. И вообще, рисовать что-то в корне, от этого надо сразу отвыкать.

    Попробуйте вместо C:\tmp\     $env:TMP   или  $env:TEMP 

    12 апреля 2019 г. 14:23