我正在尝试在Windows计算机中检索配置文件的确切大小。
下面是我的代码和O / P
$profiles = Get-ChildItem C:\Users | ?{Test-path C:\Users\$_\NTUSER.DAT} | Select -ExpandProperty Name
foreach($profile in $profiles)
{
$largeprofile = Get-ChildItem C:\Users\$profile -recurse | Measure-Object -Sum length | Select -ExpandProperty Sum
$largeprofile = [math]::Round(($largeprofile/1MB),2) + "MB"
if($largeprofile -lt 20){Continue}
$object = New-Object -TypeName PSObject
$object | Add-Member -MemberType NoteProperty -Name Name -Value $profile
$object | Add-Member -MemberType NoteProperty -Name "Size(MB)" -Value $largeprofile
($object | fl | Out-String).Trim();Write-Output "`n"
}
O / P
名称:管理员
大小(MB):34.62
但是该文件夹的确切大小为181MB,powershell无法读取父文件夹内的所有文件夹和文件,我如何获得显示在该文件夹的属性中的确切大小。
注意:对于配置文件文件夹o / p以外的其他文件夹,是正确的。
递归目录时,必须将参数-Force
添加到Get-ChildItem
。从文档Get-ChildItem
到Get-ChildItem
参数:
允许cmdlet获取原本无法访问的项目由用户,例如隐藏文件或系统文件。
此外,您将要添加-Force
,这样就不会出现-ErrorAction SilentlyContinue
错误。这些更改使您的代码如下所示:
Access Denied
我将如何修改此代码以在远程计算机上为我收集信息。
我想使用邮件合并。
示例:
计算机名| UserProfileName
CIPMITDD007 | fMunoz
我想让我阅读用户个人资料的大小。 MB / GB等...
我可以通过\ CIPMITDD007 \ C $ \ Users \ fMunoz从服务器访问计算机。
我只需要为180多台计算机完成此操作。有人可以帮我解决这个问题。
谢谢。
费迪南德