在PowerShell中识别其他用户的特殊文件夹

时间:2014-10-27 23:24:13

标签: windows powershell

我有一个托管用户家庭驱动器的文件服务器。用户子集具有文件夹重定向,因此从资源管理器中查看时,它们的文件夹名称都称为“我的文档”。

e.g。
\ Auser
\布塞
...
\ K用户
\我的文件
\我的文件
\我的文件
\ N用户
....

Powershell似乎忽略了特殊的“我的文档”名称,只列出了下面的真实文件夹名称。普通文件夹和重定向文件夹的powershell属性似乎相同。

如何使用powershell识别哪些文件夹具有特殊的“我的文档”名称?

2 个答案:

答案 0 :(得分:0)

感谢jscott提供有关Desktop.ini的线索

以下是我如何获取我的商家信息,它显示了每个用户的文件夹名称以及它的正常情况'或哈希表中定义的一个特殊重定向文件夹('桌面''文档' ...)

$SpecialFolders = @{}
$SpecialFolders.Add("LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21770","Documents")
$SpecialFolders.Add("LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21769","Desktop")
$SpecialFolders.Add("LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21798","Downloads")
$SpecialFolders.Add("LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21779","Pictures")
$SpecialFolders.Add("PersonalizedName=","CustomName")


$folders = Get-ChildItem "\\someServer\homeDirs"

$folders | Select Name,@{l="Type";e={
    $desktopini = gci $_.fullname 'Desktop.ini' -Force
    if($desktopini){
        $desktopiniContents = Get-Content $desktopini.FullName
        $SpecialFolders.Keys | %{
            if($desktopiniContents -contains $_){$SpecialFolders.Item($_)}        
        }
    } else {
        "normal"
    }
}}

答案 1 :(得分:0)

如果您要查找在Windows 7用户目录中找到的特殊重定向文件夹,则至少需要将Get-ChildItem-Force一起使用允许cmdlet获取无法使用的项目否则,TechNet不会被用户访问,例如隐藏或系统文件

Get-ChildItem C:\users\SomeUser -Force |  Where-Object {$_.Attributes.ToString().Contains("ReparsePoint")}

以上内容将返回上述文件夹,因为它们具有ReparsePoint属性。有关该信息的更多信息可以找到here。对于我认为您正在寻找的内容,您至少需要-Force