Выходной файл CSV и команда пользователя net не согласованы с командой PS

Ниже у меня есть команда PS для получения полезной информации о пользователе. Я также хочу получить ввод из файла csv с именами компьютеров. Как мне дать всем одинаковый формат? Двоеточие после имени ПК не такое, как у меня в выводе get-aduser. Может кто посоветует что делать?

Пример того, что у меня есть

1 ответ

Вы можете создать объект , который объединяет пользователя AD с информацией, поступающей из вашего CSV, и информацией из net user. Вот пример того, как вы можете подойти к этому:

      $csv = Import-CSV 'path\to\csvhere.csv'
$ADprops = @(
    'DisplayName'
    'mail'
    'LastLogonDate'
    'LastBadPasswordAttempt'
    'AccountExpirationDate'
    'PasswordLastSet'
    'OfficePhone'
    'Department'
    'Manager'
)

$filter = @(
    $ADprops
    @{
        Name = 'PC Name'
        Expression = { $pcName }
    }, @{
        Name = 'Password Changeable'
        Expression = { $changeable }
    }, @{
        Name = 'Password Expires'
        Expression = { $expires }
    }
)

Clear-Host
do
{
    Write-Host " Enter the user ID: " -ForegroundColor Cyan -NoNewline
    $UserName = Read-Host
    Write-Host ""

    $pcName = $csv.Where({ $_."User ID" -match $Username })."PC Name"
    $expires, $changeable = net user $Username /domain |
    Select-String -Pattern 'Password Changeable|Password Expires' |
    ForEach-Object { ($_ -split '\s{2,}')[1] }
    Get-ADUser -Identity $Username -Properties $ADprops |
    Select-Object $filter

} while ($csv.'User ID' -notcontains $Username)
Другие вопросы по тегам