Как переименовать свойства при экспорте в файл CSV? - PullRequest
1 голос
/ 02 марта 2020

Я создаю сценарий, который показывает мне список пользователей, начинающихся с буквы А. Теперь я хочу экспортировать их в файл CSV со столбцами с именами full name, username, creation date.

Следующее экспортирует желаемый столбец значения , но не содержит столбец names (заголовки), который мне нужен.

Get-ADUser -Properties whenCreated -Filter {samaccountname -like 'A*'} | 
  Select-Object name, SamAccountName, whenCreated | 
    export-csv -path c:\userexport.csv

Ответы [ 3 ]

2 голосов
/ 02 марта 2020

Переименуйте выходные свойства следующим образом:

Get-ADUser -Properties whenCreated -Filter {samaccountname -like 'A*'} | 
  Select-Object @{n='FullName';e={$_.Name}},@{n='Login';e={$_.SamaccountName}},@{n='When was Created';e={$_.WhenCreated}} |
    Export-Csv -path c:\userexport.csv -NoTypeInformation -Delimiter ';' -Encoding UTF8

Для последующего чтения в результирующем CSV-фильтре и в хронологическом порядке по столбцу When was Created, как требуется в последующем вопросе в комментариях:

Import-Csv -Path D:\testdir\userexport.csv -Delimiter ';' |
  Where-Object {[datetime]::parseexact($_.'When was Created','dd/MM/yyyy HH:mm:ss',$null) -le (Get-Date).AddYears(-2)} |
    Select-Object FullName
0 голосов
/ 03 марта 2020

Я пытаюсь этот код

Get-ADUser -Properties whenCreated -Filter {samaccountname -like 'A*'} | 
  Select-Object @{n='FullName';e={$_.Name}},@{n='UserName';e={$_.SamaccountName}},@{n='CreateDate';e={$_.WhenCreated}} |
    Export-Csv -path c:\userexport.csv -NoTypeInformation -Delimiter ';' -Encoding UTF8

    Import-Csv -Path c:\userexport.csv -Delimiter ';' |
  Where-Object {[datetime]::parseexact($_.'CreatedDate','dd/MM/yyyy HH:mm:ss',$null) -le (Get-Date).AddYears(-2)} |
    Select-Object FullName

но я получил ошибку:

    Ayman Ledawi                                        aymanle              19/12/2010 13:08:35
Ayoub Hassan                                        ayoubha              12/11/2012 16:00:38
Azure ADConnect                                     AzADConnect          24/10/2019 12:02:01
Azriel Perel Prof                                   azrielpe             19/02/2003 15:27:50
Azuretest1                                          azuretest1           27/05/2019 14:40:11
Azuretest2                                          azuretest2           27/05/2019 14:42:33
Azuretest3                                          Azuretest3           27/05/2019 14:43:34
Azuretest4                                          azuretest4           27/05/2019 14:44:52


Exception calling "ParseExact" with "3" argument(s): "String was not recognized as a valid DateTime."
At line:11 char:17
+ ... ere-Object {[datetime]::parseexact($_.'When was Created','dd/MM/yyyy  ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : FormatException

Exception calling "ParseExact" with "3" argument(s): "String was not recognized as a valid DateTime."
At line:11 char:17
+ ... ere-Object {[datetime]::parseexact($_.'When was Created','dd/MM/yyyy  ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : FormatException

Exception calling "ParseExact" with "3" argument(s): "String was not recognized as a valid DateTime."
At line:11 char:17
+ ... ere-Object {[datetime]::parseexact($_.'When was Created','dd/MM/yyyy  ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : FormatException

Exception calling "ParseExact" with "3" argument(s): "String was not recognized as a valid DateTime."
At line:11 char:17
+ ... ere-Object {[datetime]::parseexact($_.'When was Created','dd/MM/yyyy  ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : FormatException
0 голосов
/ 03 марта 2020

У меня есть еще один вопрос, который я застрял: каждому пользователю из списка необходимо создать папку (независимо от того, где ее создавать), и он должен дать пользователю полные разрешения для своей папки

Я начинаю так :

New-Item -Path 'c: \ test' -ItemType Directory

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

...