Powershell 从get ADUser筛选AD属性

Powershell 从get ADUser筛选AD属性,powershell,active-directory,Powershell,Active Directory,所以我在写剧本, 在我们公司,我们将用户主目录存储在网络驱动器上, 当他们离开时,我们通过在文件夹名中添加.left来重命名目录, 示例:“name.left” 实际上,我们是通过在广告中找到用户来实现的 复制主目录属性的内容并重命名它。 到目前为止,我已经做到了: $name = Read-Host 'User Name: ' $path = Get-ADUser $name -Properties homedirectory Rename-Item $path {$name+".left"}

所以我在写剧本, 在我们公司,我们将用户主目录存储在网络驱动器上, 当他们离开时,我们通过在文件夹名中添加.left来重命名目录, 示例:“name.left” 实际上,我们是通过在广告中找到用户来实现的 复制主目录属性的内容并重命名它。 到目前为止,我已经做到了:

$name = Read-Host 'User Name: '
$path = Get-ADUser $name -Properties homedirectory
Rename-Item $path {$name+".left"}
问题是,当我在get aduser中获取主目录路径时,它会将其与standart get aduser输出一起提供,它只是将其添加到输出中,所以我尝试使用过滤器:

$path = Get-ADUser $name -Properties homedirectory -Filter homedirectory 
它给了我一个错误,但不是针对过滤器,现在它无法识别我给它的用户名

现在,我确信有一种方法可以过滤属性中的字符串。 我觉得我写的第三行可能也错了, 但那是我的python大脑在尝试与powershell合作:)所以如果enyone能帮我做这件事,我会非常感激, 如果有人能给我指点好的powershell指南,那就太好了

编辑: 所以我把它改成这样:

$name=读取主机“用户名:”
$date=读取主机“请输入日期:”
do{$path=Get ADUser$name-Properties homeditory | select-Expand homeditory$newname={$name+“LFT”+$date}
重命名项$path$newname
写入主机$name+“已更改”}
而($name-ne'exit')

我得到一个错误,新名称是一个脚本,而不是一个字符串,所以它无法运行,你知道修复它的方法吗

重命名项:无法计算参数“NewName”,因为其参数被指定为脚本块,并且没有 输入。如果没有输入,则无法计算脚本块。 第6行字符:19 +重命名项$path$newname + ~~~~~~~~ +CategoryInfo:MetadataError:(:)[Rename Item],ParameterBindingException +FullyQualifiedErrorId:ScriptBlockArgumentNoInput,Microsoft.PowerShell.Commands.RenameItemCommand

EDIT2 一位同事帮了我的忙,结果是: 它正是我所需要的:)


使用
选择对象
可以过滤掉不需要的属性。它仍然会返回一个对象tho。它有一个名为
expand
的简便参数,该参数将返回单个属性值:

$path = Get-ADUser $name -Properties homedirectory | select -Expand HomeDirectory

非常感谢你!我得到的绳子正是我想要的!
$path = Get-ADUser $name -Properties homedirectory | select -Expand HomeDirectory