Я экспортировал файл CSV из Microsoft Teams и получил необходимые данные после выполнения этой команды:
Import-Csv -Path "C:\TeamsUserActivity.csv" |
Where-Object { $PSItem.DisplayName -notlike "*-*" } |
Select-Object -Property DisplayName,'LastActivity (UTC Time)' |
Sort-Object -Property 'LastActivity (UTC Time)' -Descending |
Export-Csv -Path "C:\TeamsUsers.csv"
Это отображает следующее:
DisplayName LastActivity (UTC Time)
----------- -----------------------
Tom Smith 2020-04-16T01:00:47Z
Joe Bloggs 2020-04-16T01:00:47Z
Harry Briggs 2020-04-16T01:00:47Z
Jeff Kerry 2020-04-16T01:00:47Z
Jane Briggs 2020-04-15T23:17:29Z
Betty Smith 2020-04-06T02:56:51Z
Мне нужно удалить записи под «LastActivity (UT C время)», которые находятся ниже первой даты Все, что ниже: 2020-04-16 Затем выполните команду Get-ADUser в Active Directory, чтобы получить samAccountName для каждой записи и поместить ее в третий столбец.
DisplayName LastActivity (UTC Time) UserID
----------- ----------------------- ------
Tom Smith 2020-04-16T01:00:47Z tsmith
Joe Bloggs 2020-04-16T01:00:47Z jbloggs
Harry Briggs 2020-04-16T01:00:47Z hbloggs
Jeff Kerry 2020-04-16T01:00:47Z jkerry
При тестировании целого набора методов в Get-ADUser из ActiveDirectory для возврата имени samaccount, он будет работать только для одной записи, когда я использую текст stati c
Get-ADUser -filter { DisplayName -eq 'Tom Smith' } | Select samAccountName
Нет, когда я импортирую файл csv и запускаю foreach l oop для каждой строки. Код, который я протестировал и который, я думаю, должен вернуть то, что мне нужно, приведен ниже:
$in_file = "C:\PS\SessionData\sessionTMSct.csv"
$out_file = "C:\PS\SessionData\sessionTMSctout.csv"
$out_data = @()
ForEach ($row in (Import-Csv $in_file)) {
If ($row.DisplayName) {
$out_data += Get-ADUser $row.DisplayName -Properties samAccountName
}
}
$out_data |
Select DisplayName,'LastActivity (UTC Time)',SamAccountName |
Export-Csv -Path $out_file -NoTypeInformation
Завершается следующей ошибкой, предварительно строка:
Get-ADUser : The term 'Get-ADUser' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:8 char:22
+ $out_data += Get-ADUser $row.DisplayName -Properties samAccou ...
+ ~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (Get-ADUser:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException