首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GetType().InvokeMember命令

GetType().InvokeMember命令
EN

Stack Overflow用户
提问于 2020-03-27 17:15:53
回答 1查看 655关注 0票数 1

我正在尝试从AD计算机OU获取启用RDP的组成员的用户列表。不知何故,我无法获得其他域中用户的全名详细信息,而我不是其中的一部分。ADSPath将显示正确的WinNT://域/用户名。但全名详细信息是空白的。任何帮助都将不胜感激。全名详细信息是正确填写的域名,我的一部分。OU.csv文件包含计算机OU详细信息和域服务器详细信息。

代码语言:javascript
复制
$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
EN

回答 1

Stack Overflow用户

发布于 2020-03-27 17:49:06

您可以尝试在此处避免使用Invoke-Expression,也可以用单引号将表达式括起来,这样不会扩展值:

代码语言:javascript
复制
$Select = $Properties | ForEach { @{n="$_"e={ $_.GetType().InvokeMember("$_","GetProperty", $Null, $_, $Null) }}}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60883036

复制
相关文章

相似问题

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