Выходной файл 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)