none
PowerShell - Работа с текстом RRS feed

  • Вопрос

  • Добрый день!

    Я через командлет Get-AdComputer получаю имя компьютера и его Description.

    Decription имеет такой вид:  "<ITOOwners:Ivan, Ivanov><ITUnit:SERVICE><HA:DC>"

    Я пишу это все в CSV, но мне хочется, чтобы в CSV попадало 4 столбца и выглядели так:

    COMPUTERNAME; Ivan, Ivanov; SERVICE; DC

    Как мне обработать текст внутри скрипта и записать его так?

    Заранее спасибо!

    3 октября 2012 г. 11:04

Ответы

Все ответы

  • С учетом,что всегда формат одинаковый.

    Get-ADComputer -Filter * | Foreach {$_.Name + ";" + ($_.Description.split(":>")[1,3,5] -join ";")} | Out-File result.csv

    3 октября 2012 г. 11:17
    Отвечающий
  • Я видимо не правильно объяснил :)

    Сейчас у меня скрипт выглядит вот так:

    Get-ADComputer -Filter * -SearchBase "OU=Servers,OU=Moscow Office,DC=oontoso,DC=com" -Properties OperatingSystem,Description | select Name,OperatingSystem,Description,@{n="Status";e={if(Test-Connection $_.DNSHostName -Quiet -Count 2) {"OK"} else {"FAIL"}}} | Export-Csv -NoTypeInformation result.csv

    У меня в CSV создается 4 столбца: с именем, ОС, результатом пинга и описанием.

    Как мне модифицировать скрипт, чтобы вместо 4го столбца было 4-5-6 стобцы с данными, выделенными жирным:

    <ITOOwners:Ivan, Ivanov><ITUnit:SERVICE><HA:DC>

    Заранее спасибо!

    3 октября 2012 г. 11:21
  • Get-ADComputer -Filter * -SearchBase "OU=Servers,OU=Moscow Office,DC=oontoso,DC=com" -Properties OperatingSystem,Description | Foreach {
    	$ITOOwners,$ITUnit,$HA = $_.Description.split(":>")[1,3,5]
    	$Status = if(Test-Connection $_.DNSHostName -Quiet -Count 2) {"OK"} else {"FAIL"}}
    	New-Object PsObject -Properties @{
    		Name = $_.Name
    		OperatingSystem = $_.OperatingSystem
    		Status = $Status
    		ITOOwners = $ITOOwners
    		ITUnit = $ITUnit
    		HA = $HA
    	}
    } | Select Name,OperatingSystem,Status,ITOOwners,ITUnit,HA | Export-Csv -NoType -Delimiter ";" result.csv

    3 октября 2012 г. 11:28
    Отвечающий
  • Вот такая ошибка:

    New-Object : A parameter cannot be found that matches parameter name 'Properties'.
    At C:\scripts_posh\Servers.ps1:6 char:33
    +     New-Object PsObject -Properties <<<<  @{
        + CategoryInfo          : InvalidArgument: (:) [New-Object], ParameterBindingException
        + FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.PowerShell.Commands.NewObjectCommand

    3 октября 2012 г. 11:54
  • Заменить на -Property.

    3 октября 2012 г. 11:58
    Отвечающий
  • Спасибо Вам огромное!

    Может Вы тогда подскажете как к выдаче данного скрипта добавить столбцы HDD Total Space, HDD Free Space, RAM и CPU?

    Я понимаю, что через WMI,  а как точно?

    3 октября 2012 г. 12:19
    • Изменено KazunEditor 3 октября 2012 г. 12:30
    • Помечено в качестве ответа KazunEditor 17 октября 2012 г. 5:49
    3 октября 2012 г. 12:28
    Отвечающий