Out-File не будет отображать то, что показывает ISE powershell - PullRequest
0 голосов
/ 10 октября 2018

Хорошо, я новичок в Powershell.Я на работе, поэтому я хотел авто некоторые вещи.Моя работа с этим сценарием состоит в том, чтобы выбрать этих конкретных пользователей и дату их истечения пароля, отформатировать дату, чтобы она была удобочитаемой для человека, и затем сохранить все это в текстовом файле для анализа.

Мой текущий код такой:

$List = Get-Content D:\Users\c05896\Desktop\VIPS.txt
$Users = @()

foreach ($Item in $List){
$Users += Get-ADUser -Filter * -Properties "msDSUserPasswordExpiryTimeComputed"| where {$_.Name -like "*$Item*"}}

$Users | Sort-Object | Select-Object Name, @{Name="Password expires";Expression={[datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed" )}}
Out-File -filepath D:\Users\c05896\Desktop\VIPLista.txt -InputObject $Users

Итак, сценарий выше - это то, что я написал.Вывод WITHIN PowerShell ISE выглядит следующим образом:

Name                           Password expires         
----                           ---------------         
User 1                         10/11/2010 01:39:53 p.m.
User 2                         21/10/2018 10:21:43 a.m.
User 3                         21/10/2018 08:38:23 a.m.
.                                  .
.                                  .
.                                  .

Это то, что я хочу вывести в текстовый файл, но вместо этого я получил этот формат:

DistinguishedName                   : CN=USER LASTNAME
OU=VIPs,OU=Users
Enabled                             : False
GivenName                           : USER LASTNAME
msDS-UserPasswordExpiryTimeComputed : 129192702049912335
Name                                : USER
ObjectClass                         : user
ObjectGUID                          : bb033273-6117-470b-9f07-aee2885a45bc
SamAccountName                      : B00057
SID                                 : S-1-5-21-808411757-1154953693-317593308-27012
Surname                             : USER
UserPrincipalName                   : XXXXX

Я стер все именаи фамилии только для конфиденциальности.

Итак, вопрос в том, что я могу сделать, чтобы Out-File отображал информацию, отображаемую в Powershell ISE?

Большое спасибо за ваши ответы

Ответы [ 2 ]

0 голосов
/ 10 октября 2018

У нас есть хороший ответ о том, как достичь своей цели.Я собираюсь попытаться ответить на вопрос, почему.

Когда вы использовали Get-ADUser для извлечения ваших пользовательских объектов, ряд свойств возвращаются по умолчанию.Вы знали об этом и использовали Select-Object, чтобы выбрать, какие атрибуты возвращать, и вы даже добавили новый пользовательский атрибут.

Вывод Select-Object - это то, что отображается в ISE (и будет отображаться в консолиесли вы не использовали ISE также).

Что вы не сделали, так это изменили объекты, которые были сохранены в массиве $ Users, чтобы при отправке этих объектов в Out-File он получал все атрибуты объектов.

Обе опции, которые Nas дает вам выше, изменяют объекты в $ Users, пока они находятся в конвейере, так что при отправке их в Out-File остаются только те атрибуты, которые вы хотите вывести в файл.Его первый пример фактически заменяет исходный массив $ Users новым массивом $ Users, так что если вы впоследствии изучите его, останутся только указанные вами атрибуты.Во втором примере, использующем Tee-Object, $ Users по-прежнему остается неизменным, и если вы изучите объекты, вы увидите, что они по-прежнему сохраняют DistinguishedName, Enabled, GivenName и т. Д.

0 голосов
/ 10 октября 2018
# --> $Users = $Users | ...
$Users = $Users | Sort-Object | Select-Object Name, @{Name="Password expires";Expression={[datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed" )}}
Out-File -filepath D:\Users\c05896\Desktop\VIPLista.txt -InputObject $Users

# or
# combine ISE output with file output in one command using Tee-Object

$Users | Sort-Object |
  Select-Object Name, @{Name="Password expires";Expression={[datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed" )}} | 
    Tee-Object -FilePath D:\Users\c05896\Desktop\VIPLista.txt
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...