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