我正在尝试从AD计算机OU获取启用RDP的组成员的用户列表。不知何故,我无法获得其他域中用户的全名详细信息,而我不是其中的一部分。ADSPath将显示正确的WinNT://域/用户名。但全名详细信息是空白的。任何帮助都将不胜感激。全名详细信息是正确填写的域名,我的一部分。OU.csv文件包含计算机OU详细信息和域服务器详细信息。
$Properties = "AdsPath","Name","FullName"
$Select = $Properties | %{
Invoke-Expression "@{n='$_';e={ `$_.GetType().InvokeMember('$_', 'GetProperty', `$Null, `$_, `$Null) }}"
}
$OUData = import-csv c:\change\OU.csv
$OUexport = foreach($OU in $OUdata)
{
$OUpath = $OU.ou
$server = $OU.server
Get-ADComputer -filter * -Property * -SearchBase $OUpath -Server $server | Select-object Name,DNSHostName,Description | ForEach-Object {
$ComputerName = $_.Name
$Description = $_.description
$DNSHostname = $_.DNSHostName
$Group = [ADSI]("WinNT://$DNSHostname/Remote Desktop Users")
$Group.PsBase.Invoke("Members") | Select-Object ([Array](@{n='Workstation';e={ $ComputerName }},@{n='Comp_Description';e={ $Description }}) + $Select)
} }
$OUexport | export-csv c:\change\RDP_Enable.csv -NoTypeInformation发布于 2020-03-27 17:49:06
您可以尝试在此处避免使用Invoke-Expression,也可以用单引号将表达式括起来,这样不会扩展值:
$Select = $Properties | ForEach { @{n="$_"e={ $_.GetType().InvokeMember("$_","GetProperty", $Null, $_, $Null) }}}https://stackoverflow.com/questions/60883036
复制相似问题