У меня есть таблица (CSV), которая показывает всех пользователей, которые когда-либо входили в систему на нескольких компьютерах. Пользователи могут иметь 2 учетных записи, одно имя пользователя начинается с «a», а другое - с «b», например, a100 и b100 (пользователь позади - один и тот же человек).
Теперь мне нужно получить компьютеры, на которых зарегистрировано более двух учетных записей, которые не принадлежат одним и тем же пользователям. Таким образом, A64 и B64 не указываются как отдельные пользователи.
Вот базовый список, который у меня есть:
PC1,A64,B52,B64,A41
PC2,A51,B42,B51,A23
PC3,A42,B51
PC4,A5,B5
PC5,A1,B1,A14,A6
Мой план состоял в том, чтобы разбить столбец «Пользователь» на несколько столбцов, чтобы таблица выглядела следующим образом:
Computername,user1,user2,user3,user4,UserX
После того, как это было сделано, я мог бы перебрать таблицу и удалить начальную букву в имени пользователя, тогда я попытался бы избавиться от двойных чисел.
Как вы думаете, это имеет смысл?
Теперь я уже застрял в первом задании. Я знаю, как выполнить итерацию по второму столбцу, но как мне удалось получить результат в другой массив, чтобы вывод был таким:
Computername,user1,user2,user3,user4,UserX
Можете ли вы помочь мне разделить?
$UserComputers = import-csv -Delimiter ";" "input.csv" -Header
'Computername','user1','user2','user3','user4'
$UserComputers | Select-Object *,
@{n='User1';e={$_.User1.Split(',')[0]}},
@{n='User2';e={$_.User1.Split(',')[1]}}
Я получаю сообщение об ошибке: Select-Object: свойство не может быть обработано, поскольку свойство "User1" уже существует.