Могу ли я преобразовать system.string в system.object в PowerShell? - PullRequest
0 голосов
/ 04 июля 2018

Есть ли способ преобразовать system.string в system.object в PowerShell?

У меня уже есть CSV-файл, который некоторые пользователи хотят удалить для некоторых назначенных ролей из подписки Azure. Во-первых, я попробовал

Import-Csv C:\Users.csv | Foreach-Object {Remove-AzureRmRoleAssignment -SignInName $Users}

Где SignInName - это столбец в CSV-файле, в котором есть пользователи, которых я хочу удалить в следующем формате x@y.com, но он не работал, в то время как он не выдавал ошибок. Вот почему я попробовал другой подход, когда я импортировал этот столбец SignIn в переменную. Затем я попытался удалить его:

$Users = Import-Csv 'C:\Users.csv' | select SignInName
Foreach-Object {Remove-AzureRmRoleAssignment -SignInName $Users}

В результате я получил эту ошибку: enter image description here

Ответы [ 3 ]

0 голосов
/ 04 июля 2018

Используя

$Users = Import-Csv 'C:\Users.csv' | select SignInName

Технически вы все еще возвращаете объект таблицы, это просто таблица с одним столбцом. Вам нужен строковый массив, поэтому каждая итерация с foreach даст вам строку:

$Users = Import-Csv 'C:\Users.csv' | select -ExpandProperty SignInName

Тогда вы могли бы использовать строчку foreach выше или, ИМХО, еще красивее powershell:

$users | % { Remove-AzureRmAccount -Username $_ }
0 голосов
/ 05 июля 2018

Convertfrom-string делает это И с параметрами вы можете редактировать имена

Будьте осторожны, хотя иногда это может искажать данные и помещать объекты в неправильное поле

0 голосов
/ 04 июля 2018

Я верю, что Foreach-Object либо должен передавать объект по конвейеру, либо ему говорят, с каким объектом работать, используя параметр imputobject Попробуйте это:

$Users = Import-Csv 'C:\Users.csv' | select SignInName
$Users|Foreach-Object {Remove-AzureRmAccount}

Или для, на мой взгляд, немного более многократно используемого кода:

$Users = Import-Csv 'C:\Users.csv' | select SignInName
Foreach($user in $users {Remove-AzureRmAccount -Username $user}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...