如何在结果集中添加变量作为列值?
How do I add a variable as a column value in a result set?
我有一个循环遍历 CSV 文件中的值的变量。由于 CSV 中每个值的循环 returns 结果集,我还希望在结果集中返回该值(变量)。我试图在我的 Select
语句中添加我的变量 $user
,但它只显示在 header 列中并且我的值是空白或 {}
.
这是循环代码:
$users = Get-Content C:\AD\ad_groups.txt
ForEach ($User in $users)
{
Get-ADGroupMember -Identity $user -Server MyServerName| Select name,SamAccountName,$user
}
您可能需要使用所谓的计算 属性。代替 $User,尝试将以下散列 table 作为 属性 值。 "Name" 可以缩短为 "N" 和 "Expression to "E"(没有这里看到的双引号),如果你觉得它是 necessary/preferred.
@{Name='User';Expression={$User}}
您可以像这样使用计算的 属性:
$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}}
}
您的代码可能只需要几个字符就可以正常工作。
你没有说 $User
的格式是什么,但是因为它是 -Identity
参数可以接受的,所以根据我的 the documentation, it must be one of the following (links to output object 属性 , 与代码交错 select 该值)...
Example:
CN=saradavisreports,OU=europe,CN=users,DC=corp,DC=contoso,DC=com
Get-ADGroupMember -Identity $user -Server MyServerName| Select name,SamAccountName,DistinguishedName
Example: 599c3d2e-f72d-4d20-8a88-030d99495f20
Get-ADGroupMember -Identity $user -Server MyServerName| Select name,SamAccountName,objectGUID
Security Identifier (objectSid)
Example: S-1-5-21-3165297888-301567370-576410423-1103
Get-ADGroupMember -Identity $user -Server MyServerName| Select name,SamAccountName,objectSid
Security Accounts Manager (SAM) Account Name (sAMAccountName)
Example: saradavisreports
(sAMAccountName
属性 已经 select 编辑在原始代码中)
如果 $users
包含多种格式的标识符,或者您想保留传递给 Get-ADGroupMember
的确切文本,那么您将需要使用 select 的其他答案之一它作为 属性 使用 ScriptBlock
.
我有一个循环遍历 CSV 文件中的值的变量。由于 CSV 中每个值的循环 returns 结果集,我还希望在结果集中返回该值(变量)。我试图在我的 Select
语句中添加我的变量 $user
,但它只显示在 header 列中并且我的值是空白或 {}
.
这是循环代码:
$users = Get-Content C:\AD\ad_groups.txt
ForEach ($User in $users)
{
Get-ADGroupMember -Identity $user -Server MyServerName| Select name,SamAccountName,$user
}
您可能需要使用所谓的计算 属性。代替 $User,尝试将以下散列 table 作为 属性 值。 "Name" 可以缩短为 "N" 和 "Expression to "E"(没有这里看到的双引号),如果你觉得它是 necessary/preferred.
@{Name='User';Expression={$User}}
您可以像这样使用计算的 属性:
$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}}
}
您的代码可能只需要几个字符就可以正常工作。
你没有说 $User
的格式是什么,但是因为它是 -Identity
参数可以接受的,所以根据我的 the documentation, it must be one of the following (links to output object 属性 , 与代码交错 select 该值)...
Example: CN=saradavisreports,OU=europe,CN=users,DC=corp,DC=contoso,DC=com
Get-ADGroupMember -Identity $user -Server MyServerName| Select name,SamAccountName,DistinguishedName
Example: 599c3d2e-f72d-4d20-8a88-030d99495f20
Get-ADGroupMember -Identity $user -Server MyServerName| Select name,SamAccountName,objectGUID
Security Identifier (objectSid)
Example: S-1-5-21-3165297888-301567370-576410423-1103
Get-ADGroupMember -Identity $user -Server MyServerName| Select name,SamAccountName,objectSid
Security Accounts Manager (SAM) Account Name (sAMAccountName)
Example: saradavisreports
(sAMAccountName
属性 已经 select 编辑在原始代码中)
如果 $users
包含多种格式的标识符,或者您想保留传递给 Get-ADGroupMember
的确切文本,那么您将需要使用 select 的其他答案之一它作为 属性 使用 ScriptBlock
.