用powershell写一个统计c盘里所有文件夹大小的代码
时间: 2023-05-19 14:03:45 浏览: 50
可以使用以下代码来统计C盘中所有文件夹的大小:
Get-ChildItem -Path C:\ -Directory | ForEach-Object { $_.FullName; Get-ChildItem $_.FullName -Recurse | Measure-Object -Property Length -Sum } | Format-Table @{Name="Folder";Expression={$_}}, @{Name="Size(MB)";Expression={$_.Sum / 1MB -as [int]}} -AutoSize
这个代码会输出C盘中所有文件夹的名称和大小(以MB为单位)。
相关问题
用powershell写一个获取文件服务器所有共享文件夹以及共享文件夹的权限的代码
可以使用以下代码来获取文件服务器所有共享文件夹以及共享文件夹的权限:
$server = "文件服务器名称"
$shares = Get-WmiObject -Class Win32_Share -ComputerName $server
foreach ($share in $shares) {
Write-Host "共享文件夹名称:" $share.Name
Write-Host "共享文件夹路径:" $share.Path
$acl = Get-Acl $share.Path
foreach ($access in $acl.Access) {
Write-Host "用户/组:" $access.IdentityReference
Write-Host "权限:" $access.FileSystemRights
Write-Host "类型:" $access.AccessControlType
Write-Host "Inherited:" $access.IsInherited
Write-Host " "
}
}
请注意,这是一个示例代码,您需要根据您的实际情况进行修改。
用powershell写一个自动定时导出共享文件夹权限的代码
可以尝试使用以下代码:
$FolderPath = "C:\SharedFolder"
$ReportPath = "C:\Reports\SharedFolderPermissions.csv"
$Acl = Get-Acl $FolderPath
$Ar = @()
foreach ($Access in $Acl.Access) {
$Ar += New-Object PSObject -Property @{
"FolderName" = $FolderPath
"AD Group or User" = $Access.IdentityReference
"Permissions" = $Access.FileSystemRights
"Inherited" = $Access.IsInherited
"Inheritance Flags" = $Access.InheritanceFlags
"Propagation Flags" = $Access.PropagationFlags
}
}
$Ar | Export-Csv -Path $ReportPath -NoTypeInformation
这段代码会将指定共享文件夹的权限信息导出到指定的 CSV 文件中。