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

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

sap87@vk 23-09-2022 14:12 2992878

Вывод двух команд в один фаил
 
Приветствую всех. Пишу небольшие скрипты столкнулся с проблемой. Не получается объединить вывод двух команд в один результат
Код:

Invoke-Command -ComputerName $computername -ScriptBlock{Get-ComputerInfo -Property WindowsVersion|Get-WmiObject -Class Win32_ComputerSystem}  |Select-Object PSComputerName, WindowsVersion, UserName |Export-Csv 1.csv  -Append
Вылезает ошибка:
Не удается привязать объект ввода к любым параметрам команды, так как команда не принимает входные данные конвейера, либо входные данные и их свойства не совпадают с любыми из параметров, принимающих входные данные конвейера.
+ CategoryInfo : InvalidArgument: (@{WindowsVersion=1909}:PSObject) [Get-WmiObject], ParameterBindingException
+ FullyQualifiedErrorId : InputObjectNotBound,Microsoft.PowerShell.Commands.GetWmiObjectCommand

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

DJ Mogarych 23-09-2022 15:01 2992880

Вы пытаетесь передать Get-WmiObject данные из Get-ComputerInfo, что, естественно, работать не будет, т. к. Get-WmiObject так не умеет.
Код:

Get-ComputerInfo -Property WindowsVersion|Get-WmiObject -Class Win32_ComputerSystem
См. статью о конвейерах.

В каком виде должна быть "версия ОС"?

sap87@vk 26-09-2022 15:44 2993064

Мне нужно узнавать версию сборки. мне просто чтоб в одну строку выводило

DJ Mogarych 26-09-2022 22:52 2993085

Вот так попробуйте:
Код:

Invoke-Command -ComputerName $computername -ScriptBlock {
    "$($env:computername);$((Get-ComputerInfo -Property WindowsVersion).windowsversion);$((gwmi -Class Win32_ComputerSystem).username)" |
    ConvertFrom-Csv -Delimiter ';' -Header PSComputerName,WindowsVersion,UserName
} |Export-Csv c:\temp\1.csv  -Append -NoTypeInformation

Не тестировал, т. к. удалённой машины под рукой нет.

YuS_2 27-09-2022 08:06 2993097

Цитата:

Цитата sap87@vk
нужно узнавать версию сборки. мне просто чтоб в одну строку выводило »

Код:

$psversiontable.os
Не? Или для PS v 5.1:
Код:

$psversiontable.buildversion
Хмм... почему-то в разных версиях PS выдаются разные цифры...
Ну, тогда для надежности, в любой версии PS:
Код:

(gcim -cl Win32_OperatingSystem).version
либо вообще, как-то так:
Код:

[environment]::osversion.versionstring

sap87@vk 27-09-2022 08:56 2993101

МНе ведь кроме сборке нужно имя пк, последний пользователь, а из домена почта пользователя. И желательно одной строкой.

А вопрос что означает ;$. Или где прочитать?

DJ Mogarych 27-09-2022 09:03 2993103

$psversiontable - это версия самого Пауэршелла.
Цитата:

Цитата sap87@vk
что означает ;$ »

";" в данном случае разделитель столбцов в CSV.
"$" - это знак переменной.


Время: 01:10.

Время: 01:10.
© OSzone.net 2001-