Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 返回并保存特定OU中用户的所有Unix属性_Powershell_Active Directory_Quest - Fatal编程技术网

Powershell 返回并保存特定OU中用户的所有Unix属性

Powershell 返回并保存特定OU中用户的所有Unix属性,powershell,active-directory,quest,Powershell,Active Directory,Quest,作为我们公司政策的一部分,所有离开公司的员工保留其active directory帐户,这些帐户被禁用并移动到特定的OU。此过程有几个部分需要自动化,但重要的部分是从ADUC MMC中取消选中“Unix启用”属性并清除所有Unix属性。这些操作并不总是执行的,所以我的任务是清理它。我对Powershell相当陌生,但对它有足够的了解,可以制定解决方案。我相信下面的scipt应该可以做到这一点(格式化以获得更好的可见性): 这可能不是写得最优雅的剧本,但它似乎按预期的那样工作。当然,它将在生产之前

作为我们公司政策的一部分,所有离开公司的员工保留其active directory帐户,这些帐户被禁用并移动到特定的OU。此过程有几个部分需要自动化,但重要的部分是从ADUC MMC中取消选中“Unix启用”属性并清除所有Unix属性。这些操作并不总是执行的,所以我的任务是清理它。我对Powershell相当陌生,但对它有足够的了解,可以制定解决方案。我相信下面的scipt应该可以做到这一点(格式化以获得更好的可见性):

这可能不是写得最优雅的剧本,但它似乎按预期的那样工作。当然,它将在生产之前在测试环境中运行

我的困境:


在运行这些命令之前,我需要返回这些命令将清除的所有属性(出于退出的目的),我不相信Get QasUnixUser单独就能做到这一点。有谁能告诉我如何返回所有这些信息,以及如何根据用户对其进行排序的专业见解吗?我知道链接不被认为是合适的答案,但我也理解我所问的问题的范围,因此任何帮助都将不胜感激

查看QAS的文档,它们似乎使用了现成的模式。较新版本似乎使用
altsecurityidentifications
属性,而较旧版本似乎使用Windows附带的各种SFU属性。您可以尝试使用ldifde为用户创建快照,为QAS启用它们,创建另一个LDIF快照,并将文件作为查看所有QAS更改的一种方法


您可以使用Get ADUser的Properties参数提供想要返回的属性列表。它将按用户进行本机排序,但是,
Sort Object
cmdlet使您能够调整顺序。

太好了,应该可以了。我感谢你迅速的答复。我只需要返回值,它实际被使用的可能性很小,几乎没有,这只是一个过程,让先前的值可用。我甚至没有想过使用LDIF快照来查看发生了什么变化。再次感谢你!
Get-ADUser -SearchBase "OU=Disabled Accounts,OU=AnotherOU,DC=mycompany,DC=com" 
-Filter {(Enabled -eq $false)} -Properties SamAccountName | ForEach-Object {
Clear-QasUnixUser $_.SamAccountName
Disable-QasUnixUser $_.SamAccountName
}