none
Работа с PowerShell RRS feed

  • Вопрос

  • Добрый день. У меня следующая проблема. Я получаю учетные записи пользователей из определенного подразделения AD посредством PowerShell и перенаправляю на экспорт в формате csv в файл.В итоге у меня в файле сформирован список столбцом один за другим нужных мне учетных записей.НО!!!Все это заключается в кавычки.Дальше мне надо будет работать с этим массивом и кавычки не нужны.

    Не подскажите как избавится от этих кавычек или заменить их на пустоту с помощью PowerShell???Делается это непосредственно при экспорте или уже после как-то при работе с этим файлом???

    Спасибо!

    2 апреля 2016 г. 13:24

Ответы

  • Get-ADUser -Filter * | Ft Name > c:\1.csv
    • Помечено в качестве ответа KazunEditor 8 апреля 2016 г. 6:29
    2 апреля 2016 г. 14:12
  • Get-ADUser -Filter * | ft -Property SamAccountName > test.csv
    напишите - какая конкретная задача перед вами стоит?
    • Помечено в качестве ответа KazunEditor 8 апреля 2016 г. 6:29
    2 апреля 2016 г. 17:44
    Модератор
  • Get-Help Import-CSV -Full

    Пользуйтесь на здоровье

    Но если все же вам интересен более конкретный ответ опишите задачу, так как сейчас вы делаете двойную работу запись в файл и потом чтение из него, а через конвеер вы можете эти действия опустить

    Get-Aduser | Foreach {$_.SamAccountName} 
    и еще форичу абсолютно фиолетово на кавычки

    The opinion expressed by me is not an official position of Microsoft



    • Изменено Vector BCOModerator 2 апреля 2016 г. 22:03
    • Предложено в качестве ответа Vector BCOModerator 7 апреля 2016 г. 7:11
    • Помечено в качестве ответа KazunEditor 8 апреля 2016 г. 6:29
    2 апреля 2016 г. 22:01
    Модератор
  • С учетом замены двойных кавычек в тексте я делал так:

    $source | ConvertTo-CSV -Delimiter ';' -NoTypeInformation | 
       % {$_ -replace '"([^"]|$)', '$1' -replace '""','"' } |
       Set-Content -Path "$homedir\ShtatOUT.csv" -Encoding Unicode
    


    Сазонов Илья

    https://isazonov.wordpress.com/

    • Помечено в качестве ответа KazunEditor 8 апреля 2016 г. 6:29
    4 апреля 2016 г. 6:27
    Модератор

Все ответы

  • Get-ADUser -Filter * | Ft Name > c:\1.csv
    • Помечено в качестве ответа KazunEditor 8 апреля 2016 г. 6:29
    2 апреля 2016 г. 14:12
  • Опишите что вы делаете с csv и какими средствами

    Любые редакторы которые умеют работать с csv самостоятельно справляютя с кавычками

    Кавычки собственно нужны для того что бы разделить потенциально проблемные поля

    Например поле  description может содержать в себе запятые (например: "отвечает за мат. обеспечение, красит стены и замки ремонтирут" без кавычек будет воспринято за 2 поля)


    The opinion expressed by me is not an official position of Microsoft

    2 апреля 2016 г. 14:15
    Модератор
  • Да,можно залесть с csv файл и там убрать кавычки, но это ручная работа.

    Да вот именно, что ничего не делаю с файлом.Мне нужно вытащить из AD учетные записи по фильтру SamAccountName.А когда я открываю файл,то там названия учетных записей в кавычках. Дальше мне нужно содержимое этого файла запустить в цикл, а командлету foreach-Object кавычки не нравятся


    • Изменено Nik0la 2 апреля 2016 г. 17:32 опечатка
    2 апреля 2016 г. 17:29
  • Get-ADUser -Filter * | ft -Property SamAccountName > test.csv
    напишите - какая конкретная задача перед вами стоит?
    • Помечено в качестве ответа KazunEditor 8 апреля 2016 г. 6:29
    2 апреля 2016 г. 17:44
    Модератор
  • Get-Help Import-CSV -Full

    Пользуйтесь на здоровье

    Но если все же вам интересен более конкретный ответ опишите задачу, так как сейчас вы делаете двойную работу запись в файл и потом чтение из него, а через конвеер вы можете эти действия опустить

    Get-Aduser | Foreach {$_.SamAccountName} 
    и еще форичу абсолютно фиолетово на кавычки

    The opinion expressed by me is not an official position of Microsoft



    • Изменено Vector BCOModerator 2 апреля 2016 г. 22:03
    • Предложено в качестве ответа Vector BCOModerator 7 апреля 2016 г. 7:11
    • Помечено в качестве ответа KazunEditor 8 апреля 2016 г. 6:29
    2 апреля 2016 г. 22:01
    Модератор
  • Речь видимо про командлеты типа Export-CSV. Проблема с кавычками там есть исторически: каждое значение заключается в двойные кавычки - это легко убрать, но если в значении уже есть двойные кавычки, то они задваиваются - и проблема становится более сложной.

    Сазонов Илья

    https://isazonov.wordpress.com/

    3 апреля 2016 г. 6:44
    Модератор
  • Да про export-csv идет речь,и именно с задвоением кавычек я и столкнулся. А не подскажите как убрать?
    3 апреля 2016 г. 9:06
  • Да про export-csv идет речь,и именно с задвоением кавычек я и столкнулся. А не подскажите как убрать?

    Я вам уже писал про Import-CSV

    Покажите код и ошибки которые вы получаете + пример файла с которым работаете опубликуйте

    Насколько я понимаю мы все тут слегка про разные вещи говорим и друг друга не понимаем

    Вариант убрать кавычки есть, но я уверен что в вашем кейсе можно обойтись без этого

    убираются кавычки через 

    -replace '"'

    Заменить двойные на одинарные можно так

    -replace '""','"'


    The opinion expressed by me is not an official position of Microsoft

    3 апреля 2016 г. 10:18
    Модератор
  • С учетом замены двойных кавычек в тексте я делал так:

    $source | ConvertTo-CSV -Delimiter ';' -NoTypeInformation | 
       % {$_ -replace '"([^"]|$)', '$1' -replace '""','"' } |
       Set-Content -Path "$homedir\ShtatOUT.csv" -Encoding Unicode
    


    Сазонов Илья

    https://isazonov.wordpress.com/

    • Помечено в качестве ответа KazunEditor 8 апреля 2016 г. 6:29
    4 апреля 2016 г. 6:27
    Модератор