如何将完整路径返回到文件夹和文件?

时间:2018-07-05 10:16:26

标签: powershell

我的任务是审核工作中的文件服务器,以查看目录和文件所有权以及后续的元数据。我已经打乱了互联网,使我可以将返回所需数据的脚本串在一起。到目前为止,我创建的脚本如下:

Get-ChildItem -r -Path '\\SERVERNAME.wan.net\launshared\Training' |
    Select DirectoryName, UNC_Path_Parent_DIR, Name, Type, Extension,
        @{N='Owner';E={$_.GetAccessControl().owner}},
        @{N='SizeInKb';E={$_.Length/1kb}}, CreationTime, LastAccessTime,
        LastWriteTime |
    epcsv 'C:\Users\USERNAME\Desktop\Information Management\TrainingTEST - 2018- SCRIPT_RESULT.xls' -En UTF8 -NoType -Delim ','

请忽略UNC_Path_Parent_DIR条目,这只是在导出的CSV文件中插入没有返回数据的字段标题。

该脚本可以正常运行,尽管有一个例外……它不返回目录的完整UNC路径!请注意,将为文件返回完整的UNC路径,但 目录

我已经在Internet上搜索解决方案,并向我们的IT专家询问,但是我一生都找不到找到列出目录和文件的完整UNC路径的解决方案。

2 个答案:

答案 0 :(得分:3)

UNC path不是来自Get-ChildItem的对象的属性。这意味着它需要手动添加。就像您一样,可以通过在property中添加带有expression的自定义Select-Object来做到这一点。

请记住,当其他人阅读您的代码时,格式化事物并使用完整的参数名称总是更好。十年后再次阅读时,它也使阅读和理解变得更容易;)

我会告诉您可以找到获得UNC path herehere的代码,为您提供帮助。剩下的唯一事情就是在Select-Object中的正确位置实现它。我把它留给您练习:

Get-ChildItem -Recurse -Path '\\fsabbey12.wan.net\launshared\Training' | Select-Object FullName, DirectoryName, 
    Name, Type, Extension, 
    @{N='UNC';E= {  
        # Code to get the UNC Path
    }}, 
    @{N='Owner';E= {$_.GetAccessControl().owner}}, 
    @{N='SizeInKb';E={$_.Length/1kb}}, 
    CreationTime, LastAccessTime, LastWriteTime

我认为这会让您入门。

答案 1 :(得分:1)

我也将其保留在此处,作为其他可能的方式(尽管@DarkLite1答案相当完整地涵盖了这个问题)

<Menu.Resources> <Image x:Key="img" x:Shared="false" Source="pack://application:,,,/Resources/checked_lightslategray.ico"/> <Style TargetType="MenuItem"> <Style.Triggers> <DataTrigger Binding="{Binding IsSelected}" Value="true"> <Setter Property="Icon" Value="{StaticResource img}"/> </DataTrigger> </Style.Triggers> </Style> </Menu.Resources> 可能会在没有任何自定义表达式的情况下满足您的需求。

如果您像这样使用FullName

Get-ChildItem

然后使用Get-ChildItem -Path \\servername.domain.com\C$\foldername\ 将为您提供UNC格式的路径:

| Select FullName

请记住,它仅适用于引用远程文件夹的情况,而不适用于运行脚本的计算机上的文件夹。如果您在本地文件夹上使用\\servername.domain.com\C$\foldername\\FirstSubfolder ,则格式如下:

FullName