首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >防止Powershell ForEach添加多余的引号

防止Powershell ForEach添加多余的引号
EN

Stack Overflow用户
提问于 2015-05-15 02:03:49
回答 2查看 136关注 0票数 0

我有一个冒号分隔的CSV,

代码语言:javascript
运行
复制
Mailbox:Users
AcmeCorp:("jsmith","trex")
XyzCorp:("sjobs","bfranklin")

然后将其添加到一个变量中:

代码语言:javascript
运行
复制
$file = import-csv file.csv -delimiter :

现在,我使用它:

代码语言:javascript
运行
复制
foreach ($record in $file) {
    $record.Users | % { get-aduser $_ }
}

foreach循环中的write-host报告$record.Users("jsmith","trex")

但是,get-aduser (或其他cmdlet)抱怨它找不到具有identity '("jsmith","trex")'的对象。

如何防止foreach向参数添加单引号?

我已经尝试过像"sjobs","bfranklin"这样的用户,但是import-csv去掉了sjobs中的双引号

或者更好的是,如何将用户列表传递给foreach?

PowerShell版本4

EN

回答 2

Stack Overflow用户

发布于 2015-05-15 02:16:56

PS未添加报价。它们就在你的文件里。下面是一段代码片段,可以让你在正确的方向上开始:

代码语言:javascript
运行
复制
$file = Import-csv file.csv -delimiter ':'
foreach($row in $file){
    foreach($user in $row.Users.split(',')){
        Get-ADUser ($user.replace('(','').Replace('"','').replace(')',''))
    }
}
票数 0
EN

Stack Overflow用户

发布于 2015-05-15 14:08:00

我认为这里的问题是,您认为您正在导入一个字符串数组作为Users的值,但实际上您只是导入了单个字符串。这里有几个选项,使用您已经发现的split方法:

代码语言:javascript
运行
复制
$file = import-csv file.csv -delimiter ':'
ForEach($Record in $File){
    $Record.Users.Trim('()').Split(',') | ForEach{
        Get-ADUser $_.Trim('"')
    }
}

因此,$Record.Users.Trim('()')将从字符串中删除圆括号。然后,它使用.Split(',')将字符串拆分成字符串数组。然后,当从每个字符串中获取ADUser时,在去掉它周围的引号(使用.Trim('"'))之后,它将它传递给一个内部ForEach循环。

或者,您可以让每行有一个用户,这样您的CSV将如下所示:

代码语言:javascript
运行
复制
Mailbox:User
AcmeCorp:jsmith
AcmeCorp:trex
XyzCorp:sjobs
XyzCorp:bfranklin

然后,在导入CSV后,如果需要,您可以只按邮箱分组,例如,按邮箱或其他方式添加用户:

代码语言:javascript
运行
复制
$File = Import-CSV C:\Path\To\File.csv -delimiter ':'
$MBGroups = $File | Group Mailbox
ForEach($Record in $MBGroups){
    $Mailbox = $Record.Name
    $Users = $Record.Group | ForEach{Get-ADUser $_.User}
    $Users | ForEach{Set-ADUser -mail ($_.samaccountname+"@"+$Mailbox+".com")}
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30244235

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档