Цель: как извлечь информацию о сервере?Как извлечь информацию о сервере
Для каждого имени сервера, указанного в SERVERS.TXT, я хотел бы получить следующую информацию (в этом формате): имя, IP-адрес, название ОС, объем физической памяти, процессоры, каждый букву диска
сервера и размер, Системная модель
Запятая и новая линия для каждого сервера.
Ниже приведен мой код PowerShell. Могут ли ваши ребята дать понять, почему это не работает? Также почему я получаю сообщение об ошибке New-Object
?
foreach ($ComputerName in (Get-Content -Path .\servers.txt)) {
$HashProps = @{
'tHostname' = Get-WmiObject Win32_Computersystem -ComputerName $ComputerName | Select-Object -ExpandProperty Name
'tIP' = [System.Net.Dns]::GetHostAddresses($computername)
'tOS' = Get-WmiObject -ComputerName $ComputerName -Class Win32_OperatingSystem | Select-Object -ExpandProperty Caption
'tMemory' = Get-WmiObject Win32_PhysicalMemory | Measure-Object -Property capacity -Sum | foreach { "$("{0:n2}" -f ($_.Sum/1GB))" }
'tcpu' = Get-WmiObject Win32_processor | Select-Object name, numberofcores
'tDisks' = Get-WmiObject Win32_LogicalDisk | foreach { "$($_.DeviceID) $("{0:n2}" -f ($_.Size/ 1GB))" }
'tsysmodel' = Get-Wmiobject Win32_computersystem | Select-Object model
}
New-Object -TypeName psObject -Property $HashProps |
ConvertTo-Csv -NoTypeInformation | Out-File -Append .\output.csv
}
Я открыт для другого подхода, если это проще.
Вам нужно определить «не работает» и объяснить, что ошибка, которую вы получите от 'New-Object'. – alroc
@alroc: Это было что-то о том, что «Новый объект» был неожиданным. Если я не запускаю две последние строки, ошибка не появляется. Тогда работа над двумя последними строками отлично работает. Тем не менее, я не получаю информацию обо всех серверах и формате, который я ищу. Надеюсь, это поможет. – etyM
Пожалуйста, не перефразируйте ошибки. Отправьте их * точно *, как они есть. Если потребуется вмешательство, мы это сделаем. –