我可以在PowerShell中将system.string转换为system.object吗?

我可以在PowerShell中将system.string转换为system.object吗?,powershell,azure,Powershell,Azure,是否有办法将PowerShell中的system.string转换为system.object 我已经有一个csv文件,我想从Azure订阅中删除一些角色分配。 首先,我试过了 Import-Csv C:\Users.csv | Foreach-Object {Remove-AzureRmRoleAssignment -SignInName $Users} 其中,SignInName是csv文件中的一列,其中包含我要按以下格式删除的用户x@y.com,但它没有工作,同时也没有产生任何错误。 这

是否有办法将PowerShell中的system.string转换为system.object

我已经有一个csv文件,我想从Azure订阅中删除一些角色分配。 首先,我试过了

Import-Csv C:\Users.csv | Foreach-Object {Remove-AzureRmRoleAssignment -SignInName $Users}
其中,SignInName是csv文件中的一列,其中包含我要按以下格式删除的用户x@y.com,但它没有工作,同时也没有产生任何错误。 这就是为什么我尝试了另一种方法,在变量中导入sign列。然后,我尝试删除它:

$Users = Import-Csv 'C:\Users.csv' | select SignInName
Foreach-Object {Remove-AzureRmRoleAssignment -SignInName $Users}
结果我犯了那个错误:

我认为Foreach对象要么通过管道传递一个对象,要么使用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}
利用

$Users = Import-Csv 'C:\Users.csv' | select SignInName
从技术上讲,您仍然返回一个表对象,它只是一个包含一列的表。您需要的是一个字符串数组,因此使用foreach的每次迭代都会给您一个字符串:

$Users = Import-Csv 'C:\Users.csv' | select -ExpandProperty SignInName
然后,您可以使用上面的foreach行,或者更漂亮的powershell:

$users | % { Remove-AzureRmAccount -Username $_ }
从字符串转换它吗 通过参数,您可以编辑名称


请小心,尽管它有时可能会误报数据并将对象放在错误的字段中

为什么要这样做?Ofc有,但您实际想实现什么?我想使用PowerShell删除特定的Azure帐户。我已经将它们保存在csv文件中。因此,当我尝试导入Csv C:\Users.Csv | Foreach对象{Remove AzureRmAccount-Identity$\ uu.signiname}时,它不起作用,也没有生成任何错误。因此,我尝试:$Users=Import Csv'C:\Users.Csv'|选择SignInName Foreach对象{Remove AzurerAccount-Username$Users},但我收到一个错误,告诉我它无法将system.Object转换为system.stringI。我想你问错问题了。编辑你的问题,让它包含你刚才在评论中提到的大部分细节——它告诉我们你正在尝试做什么以及你尝试了什么。如果错误是抱怨将对象转换为字符串,为什么您会认为解决方案的一部分是将字符串转换为对象?这是相反的方式。为了补充这一点,我们可以讨论一下您试图通过删除AzurerAccount实现什么。如果您试图从目录中删除用户,请查看remove AzureRmAdUser尝试过但仍然没有删除帐户ID您使用上面的代码,但改为“remove AzureRmAdUser-UserPrincipalName$\uu-Force”?抱歉,我的意思是删除角色分配,而不是用户本身。因此,我尝试了Remove-AzureRmRoleAssignment,但仍然不起作用。尝试分离问题:尝试使用用户名手动运行该命令,看看它是否首先起作用。您还可以尝试在循环中使用命令Write Host“Trying to delete$\”,以便查看用户是否正确地从csvTried it中读取,但仍然没有删除帐户