Powershell导出到csv

Powershell导出到csv,powershell,Powershell,我有包含一些共享路径的文本文件(例如\\INTBMCELB\Abbott ADD HR Finance或\\INTBMCELB\Abbott ADD HR Finance\u VSS等)。 我读取了此文本文件中的所有路径以及每个路径中的文件夹。 文件夹的详细信息从.csv文件加载。 目前,我在这个.csv文件中有一个名为size的字段,我需要再添加一个名为“文件类别”的字段 文件类别字段应显示基于其文件大小的说明: 微小(0 KB-10 KB) 小型(10KB-100KB) 中等大小(100

我有包含一些共享路径的文本文件(例如
\\INTBMCELB\Abbott ADD HR Finance
\\INTBMCELB\Abbott ADD HR Finance\u VSS
等)。
我读取了此文本文件中的所有路径以及每个路径中的文件夹。
文件夹的详细信息从
.csv
文件加载。
目前,我在这个
.csv
文件中有一个名为
size
的字段,我需要再添加一个名为“文件类别”的字段

文件类别
字段应显示基于其文件大小的说明:

  • 微小(0 KB-10 KB)
  • 小型(10KB-100KB)
  • 中等大小(100 KB–1 MB)
  • 大容量(1MB-16MB)
  • 巨大(16 MB-128 MB)
  • 巨大的(>128MB)
目前我正在做的就是:

$infle='C:\Users\417193\Desktop\MyShareBatch\SharePaths.txt'
$outdir='C:\Users\417193\Desktop\MyShareBatch\MyShareOuts'
foreach($dir-in(获取内容$infle)){
Get-ChildItem-Path$dir-Filter*.-Recurse |选择对象名称,
@{Name=“Owner”表达式={(Get ACL$\uUx.fullname).Owner}},CreationTime,
@{Name=“FileModifiedDate”表达式={$\ LastWriteTime},
@{Name=“FileAccessedDate”表达式={$\ u0.LastAccessTime},
@{Name=“Attributes”;表达式={$\属性},
@{l='ParentPath';e={Split Path$\ u.FullName}},
@{Name=“DormantFor(days)”;表达式={[int]((获取日期)-$\ux.LastWriteTime).TotalDays},
@{N=“FileCategory”E={Get FileSizeCategory($)},
@{Name=“Size”表达式={if($\.PSIsContainer-eq$True){(New Object-com Scripting.FileSystemObject).GetFolder($\.FullName.Size}其他{$\.Length}}
}
函数Get FileSizeCategory($Object){
如果($Object.PSIsContainer)
{
$Length=(新对象-coobject Scripting.FileSystemObject).GetFolder($Object.FullName).Size
}
其他的
{
$Length=$\长度
}
交换机($长度){
{$ule-10KB}{$Category=“Tiny”break}
{$\le 1MB}{$Category=“Medium”break}
{$\le 16MB}{$Category=“Large”break}
{$ule-128MB}{$Category=“mage”break}
默认值{$Category=“巨人”}
}
}
当我尝试从远程服务器执行上述脚本时,文件类别字段没有得到更新。我也尝试使用本地服务器路径,但仍然存在相同的问题。

在我的本地计算机上,脚本在所有字段中都成功执行。我试图删除导出到
.csv
并打印输出,但问题仍然存在。

尝试将整个
\u函数Get-FileSizeCategory
移动到
$outdir
下方和
foreach
之前。
另外,
\u函数Get-FileSizeCategory
没有返回任何内容,因此在右括号上方添加
返回$Category
,即:

函数Get FileSizeCategory($Object){ ...... 默认值{$Category=“巨人”} } 返回$Category }
应该这样做。

如何从远程服务器执行它?