0

我有一个循环遍历 CSV 文件中的值的变量。由于循环为我在 CSV 中的每个值返回结果集,我还希望在结果集中返回该值(变量)。我试图$user在我的Select语句中添加我的变量 , ,但它只显示在列标题中,我的值为空白或{}.

这是循环代码:

$users = Get-Content C:\AD\ad_groups.txt

ForEach ($User in $users) 
{
    Get-ADGroupMember -Identity $user  -Server MyServerName| Select name,SamAccountName,$user 
}
4

3 回答 3

3

您可能需要使用所谓的计算属性。代替 $User,尝试使用以下哈希表作为属性值。如果您认为有必要/首选,“名称”可以缩短为“N”,“表达式”可以缩短为“E”(此处没有双引号)。

@{Name='User';Expression={$User}}
于 2020-02-14T21:50:17.327 回答
1

您可以使用这样的计算属性:

$userList = Get-Content C:\AD\ad_groups.txt
ForEach ($User in $userList) { 
    Get-ADGroupMember -Identity $user -Server MyServerName | 
        Select-Object name, SamAccountName, @{Name='user';Expression={$User}} 
}
于 2020-02-14T21:51:05.300 回答
0

您的代码可能只需要几个字符就可以工作了。

您没有说格式是什么$User,但是由于它是参数可以接受的,-Identity这意味着根据文档,它必须是以下之一(指向输出对象属性的链接,与代码交错以选择该值)...

专有名称

示例:CN=saradavisreports,OU=europe,CN=users,DC=corp,DC=contoso,DC=com

Get-ADGroupMember -Identity $user  -Server MyServerName| Select name,SamAccountName,DistinguishedName

GUID(对象GUID)

示例:599c3d2e-f72d-4d20-8a88-030d99495f20

Get-ADGroupMember -Identity $user  -Server MyServerName| Select name,SamAccountName,objectGUID

安全标识符 (objectSid)

示例:S-1-5-21-3165297888-301567370-576410423-1103

Get-ADGroupMember -Identity $user  -Server MyServerName| Select name,SamAccountName,objectSid

安全帐户管理器 (SAM) 帐户名称 (sAMAccountName)

示例:saradavisreports

sAMAccountName原始代码中已选择的属性)

如果$users包含多种格式的标识符,或者您想要保留传递给的确切文本Get-ADGroupMember,那么您将需要使用其他答案之一来使用ScriptBlock.

于 2020-02-14T22:16:53.430 回答