从powershell中的变量中转义撇号
我已经设置了下面的脚本,它按照预期工作……除了在电子邮件中使用撇号的用户从powershell中的变量中转义撇号,powershell,Powershell,我已经设置了下面的脚本,它按照预期工作……除了在电子邮件中使用撇号的用户 $users = get-content C:\Filename.csv $results = Foreach ($user in $users) { get-aduser -filter "EmailAddress -like '$user'" -properties CanonicalName,LastLogon,Name | select Name,@{N="Thing";E={$_.Distinguished
$users = get-content C:\Filename.csv
$results = Foreach ($user in $users)
{
get-aduser -filter "EmailAddress -like '$user'" -properties CanonicalName,LastLogon,Name |
select Name,@{N="Thing";E={$_.DistinguishedName.Split(',')[-4]}},@{N="Place";E={$_.DistinguishedName.Split(',')[-5]}},@{N="Last Logon";E `
={[DateTime]::FromFileTime($_.Lastlogon)}}
}
$results | Export-Csv C:Filename.csv -NoTypeInformation
有人知道如何在像example\o'这样的电子邮件中避开撇号吗connor@example.com
?每当我运行上面的脚本时,它总是在上面的电子邮件地址上出错
编辑:我的csv文件是一列没有标题的电子邮件地址
编辑2:很抱歉浪费大家的时间。结果表明,该脚本运行良好,并且在该线程中提供了一些建议,例如在变量周围添加“”,但我测试的是一个列表,其中并非所有值都正确,这是我的错。谢谢大家抽出时间。试试这个
由于您使用的是CSV,我猜想您是从另一个AD cmdlet通过管道传输它们的
Get Member是一个很好的工具
$users | Get成员将输出TypeName:CSV:Selected.Microsoft.ActiveDirectory.Management.ADUser
但是,这不是ADUser中的筛选器参数所需的字符串类型。
所以要转换这个
$selection | Get成员将输出TypeName:System.String
另一部分是确保Get ADUser中的-Filter参数正确地逐个扩展字符串,因为Get ADUser的-Filter参数不能处理字符串数组
$users = Import-Csv C:\filename.csv
$selection = ($users.emailaddress)
foreach ($user in $selection)
{
get-aduser -filter {EmailAddress -eq $user} -properties CanonicalName,LastLogon,Name |`
select Name,@{N="Thing";E={$_.DistinguishedName.Split(',')[-4]}},`
@{N="Place";E={$_.DistinguishedName.Split(',')[-5]}},`
@{N="Last Logon";E={[DateTime]::FromFileTime($_.Lastlogon)}}
}
谷歌搜索“get aduser Escape撇号”会显示几个相关的答案,例如,
“EmailAddress-比如“$user””
您好,谢谢您的回复。我在这里发布关于我的撇号问题之前,已经看过了其他论坛。我还尝试了其他解决方案。虽然你在文章中提供的链接没有涉及撇号,但我遇到了他们之前遇到的问题,找到了与第一篇文章中编辑的答案相同的解决方案,解决了我最初的问题。虽然脚本无法解析撇号,但我仍然有问题。如果您能解释您的答案如何解决OP的问题,这将非常有用。我应该,现在已经编辑了,说我的.csv文件是一列没有标题的电子邮件地址。我认为提供的建议可能在使用upn的场景中起作用。只是好奇,您从哪里提取数据来创建CSV?为什么不在CSV中使用标题?我是从消息管理员的报告中提取的,而报告本身没有标题。我也无法访问这些数据,除了提供给我的谷歌表单上的上述信息。我试图不使用标题,这样我就可以将这个脚本提供给其他人,如果他们获得了相同的信息,除了更改从何处提取csv和将其存储在何处之外,我不会向他们解释太多。