Powershell获得所有权并基于SamaAccountName删除文件夹
需要根据samaccountname获取unc路径中的所有权/删除文件夹/文件Powershell获得所有权并基于SamaAccountName删除文件夹,powershell,Powershell,需要根据samaccountname获取unc路径中的所有权/删除文件夹/文件 Foreach ($line in $users){ Get-Aduser -identity $line.DistinguishedName | Select samaccountname $username = $line.samaccountname takeown /a /r /d y /f "\\fileserver\share\$username" Remove-Ite
Foreach ($line in $users){
Get-Aduser -identity $line.DistinguishedName | Select samaccountname
$username = $line.samaccountname
takeown /a /r /d y /f "\\fileserver\share\$username"
Remove-Item "\\fileserver\share\$username"}
以上尝试获取\\fileserver\share中所有内容的所有权,我只需要它获取/删除$username文件夹/子文件夹的所有权。此外,需要能够正确地做一个-whatif,以便在它发生之前看到将发生什么。谢谢大家! 我认为问题的根源在于您的源CSV可能没有
samaccountname
列,因此您的行$username=$line.samaccountname
正在将$username
设置为$null
。要修复此问题,请保存Get ADUser
调用的结果,然后引用该结果
Foreach ($line in $users){
$ADUser = Get-Aduser -identity $line.DistinguishedName | Select samaccountname
$username = $ADUser.samaccountname
takeown /a /r /d y /f "\\fileserver\share\$username"
Remove-Item "\\fileserver\share\$username"}
就这样,这是我的答案,其余的只是我觉得适用于这种情况的额外材料,可能会有所帮助
以前,当NTFS所有者丢失或损坏时,我在尝试获取文件和文件夹的所有权时遇到过一些问题(例如帐户被删除,而所有者只剩下一个没有指向任何内容的SID)。下面是我手头上的函数,以防出现这种麻烦的情况(我知道函数上的动词不是一个被认可的动词,但它使我微笑,所以它保持不变!):
你只需给它提供路径,它就会处理好所有的路径。用法示例:
"\\fileserver\share\jim","\\fileserver\share\bob","\\fileserver\share\mark"|PWN-Item
或
我觉得你跳过了一步。您可以
获取ADUser
,但不存储结果。我想您希望这些结果用于设置$username
,而不是从$line.samaccountname
进行设置。所以可能$ADUser=Get ADUser-iden…
,然后$username=$ADUser.samaccountname
?@themadtechnician这是有意义的。这是否会阻止它尝试获得\\servername\share而不是\\servername\share\$username的所有权?@SantiagoSquarzon那么使用Set ACL的代码会是什么样子呢?是的,因为$username
将为空,这使得“\\fileserver\share\$username”
读作“”\\fileserver\share\”
@SantiagoSquarzon获取Acl
和设置Acl
如果所有者丢失或帐户损坏,处理文件时可能会遇到问题。我以前在使用Set Acl
获取所有权时遇到过问题,不得不使用其他方法。因此,如果用户的samAccountName为“WShattner”,您是否正在尝试获取文件/文件夹“fileserver\share\WShattner.v2”的所有权?就是这样!好的,另一个问题是takeown/a/r/d y/f“\\fileserver\share\$username.v2”是否适用于用户名为.v2的文件夹?是的,samaccountname是“WShattner”,试图获得文件/文件夹的所有权“\\fileserver\share\WShattner.v2”是的,这很好。谢谢!这帮了大忙。现在,最后一部分是删除项目“\\servername\share\$username”,再次删除$username.v2。
"\\fileserver\share\jim","\\fileserver\share\bob","\\fileserver\share\mark"|PWN-Item
PWN-Item "\\fileserver\share\$username"