PowerShell рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдиреЗрдЯрд╡рд░реНрдХ рдлрд╝реЛрд▓реНрдбрд░ рд░рд┐рдкреЛрд░реНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ

рдЬреЗрдлрд░реА рд╣рд┐рдХреНрд╕ рдиреЗ рдЗрд╕ рдмрд╛рд░ рдлрд╛рдЗрд▓ рд╕рд░реНрд╡рд░ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рдкреЙрд╡рд░рд╢реЗрд▓ рд▓реЗрдЦ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рд╣реИред рд╣рдордиреЗ рдЗрд╕реЗ рджреЛ рднрд╛рдЧреЛрдВ рдореЗрдВ рддреЛрдбрд╝рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛: рдлрд╝рд╛рдЗрд▓ рд╕рд░реНрд╡рд░ рдкрд░ рд░рд┐рдкреЛрд░реНрдЯ рдмрдирд╛рдирд╛ рдФрд░ рд╕реАрдзреЗ рдлрд╝рд╛рдЗрд▓ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рдирд╛ред рдкрд╣рд▓реЗ рднрд╛рдЧ рдореЗрдВ рд╣рдо рд░рд┐рдкреЛрд░реНрдЯ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗред
рдкреЛрд╕реНрдЯ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рд╢реНрдиреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:

рддреЛ, рдХрдЯ рдХреЗ рдиреАрдЪреЗ рдЖрдкрдХреЛ рд╡рд┐рдВрдбреЛрдЬ рдкреЙрд╡рд░рд╢реЗрд▓ рдХреЗ рд╕рд╛рде рд▓реЗрдЦ рдлрд╝рд╛рдЗрд▓ рд╕рд░реНрд╡рд░ рдкреНрд░рдмрдВрдзрди рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдорд┐рд▓реЗрдЧрд╛ред


рд╕рднреА рдиреЗрдЯрд╡рд░реНрдХ рдлрд╝реЛрд▓реНрдбрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ


рдЬреЛ рд╕рд╛рдЭрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЙрд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдХреЗ рд╢реБрд░реВ рдХрд░реЗрдВред рдпрд╣ рдХрд╛рд░реНрдп рд╕рд░рд▓ рд╣реИ: рд╣рдо рдХреЗрд╡рд▓ Windows рдкреНрд░рдмрдВрдзрди рдЗрдВрд╕реНрдЯреНрд░реВрдореЗрдВрдЯреЗрд╢рди (WMI) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Win32_Share рд╡рд░реНрдЧ рдХреЛ рдХреНрд╡реЗрд░реА рдХрд░рддреЗ рд╣реИрдВред рдЖрдкрдХреЛ рдлрд╝рд╛рдЗрд▓ рд╕рд░реНрд╡рд░ рдореЗрдВ рд▓реЙрдЧ рдЗрди рдХрд░рдиреЗ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЗрд╕ рдХрдорд╛рдВрдб рдХреЛ рдЖрдк рдХрд╣реАрдВ рд╕реЗ рднреА рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред

Get-WmiObject -class -Win32_Share -computername chi-fp01 


Chi-fp01 рдХреЗ рдмрдЬрд╛рдп рд╣рдо рдЙрд╕ рдХрдВрдкреНрдпреВрдЯрд░ рдХрд╛ рдирд╛рдо рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд╣рдореЗрдВ рд░реБрдЪрддрд╛ рд╣реИ

рдЗрд╕ рдЖрджреЗрд╢ рдХреЛ рдЪрд▓рд╛рдиреЗ рд╕реЗ рдЖрдкрдХреЛ рдкреНрд░рд┐рдВрдЯрд░ (рдпрджрд┐ рдХреЛрдИ рд╣реЛ) рд╕рд╣рд┐рдд рд╕рднреА рдиреЗрдЯрд╡рд░реНрдХ рдлрд╝реЛрд▓реНрдбрд░ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдВрдЧреЗред рд▓реЗрдХрд┐рди рдЬрдм рд╕реЗ рд╣рдо рдлрд╝рд╛рдЗрд▓ рдмреЙрд▓реНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЕрдиреБрд░реЛрдз рдХреЛ рд╕реАрдорд┐рдд рдХрд░реЗрдВред рд╕рднреА Win32_Share рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреА рд╕рдВрдкрддреНрддрд┐ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рддрд╛рд▓рд┐рдХрд╛ 1 рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред


рдореВрд▓ рдЖрджреЗрд╢ рдореЗрдВ рдПрдХ рдлрд╝рд┐рд▓реНрдЯрд░ рдЬреЛрдбрд╝реЗрдВ:

 Get-WmiObject -class -Win32_Share -computername chi-fp01 тАУfilter "Type=0" 


рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдо рдХреЗрд╡рд▓ рдЖрд╡рд╢реНрдпрдХ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВред



рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рднреА рдЫрд┐рдкреЗ рд╣реБрдП рдлрд╝реЛрд▓реНрдбрд░ рдХреА рддрд▓рд╛рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ - рдЬреЛ рдПрдХ рдбреЙрд▓рд░ рдХреЗ рд╕рдВрдХреЗрдд ($) рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрддреЗ рд╣реИрдВ - рддреЛ рдЖрдкрдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛:

 Get-WmiObject -Class win32_share -computername chi-fp01 тАУfilter "Type=0 AND name like '%$'" 


WMI рдореЗрдВ, рд╡рд╛рдЗрд▓реНрдбрдХрд╛рд░реНрдб рдХреЗ рдмрдЬрд╛рдп рдкреНрд░рддрд┐рд╢рдд рдЪрд┐рд╣реНрди (%) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрди рд╕рднреА рдлрд╝реЛрд▓реНрдбрд░реЛрдВ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░реЗрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рдереЛрдбрд╝рд╛ рдореБрд╢реНрдХрд┐рд▓ рдЫрд┐рдкрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

 Get-WmiObject -Class win32_share -computername chi-fp01тАУfilter "type=0 AND name like '%[^$]'" 


рдХрдорд╛рдВрдб рд╕рднреА Win32_Share рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдк рд╕рдВрдкрддреНрддрд┐ 0 рд╣реИ рдФрд░ рдирд╛рдо $ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред

рдиреЗрдЯрд╡рд░реНрдХ рдлрд╝реЛрд▓реНрдбрд░ рдХрд╛ рдЖрдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ



рдЕрдХреНрд╕рд░, рдЬрд╛рдирдХрд╛рд░реА рдХреА рдЬрд░реВрд░рдд рд╣реЛрддреА рд╣реИ рдХрд┐ рдХрд┐рддрдиреА рдЬрдЧрд╣ рдкрд░ рдлрд╛рдЗрд▓ рдмреЙрд▓реНрд╕ рдХрд╛ рдХрдмреНрдЬрд╛ рд╣реИред рд╣рдо Get-ChildItem , рдпрд╛ рдЗрд╕рдХреЗ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ-рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ:

 dir c:\shares\public -recurse | where {-Not $_.PSIsContainer}| Measure-Object -Property length -Sum -Minimum -Maximum 


рдирддреАрдЬрддрди, рдЖрдкрдХреЛ рд╡рд╕реНрддреБрдУрдВ рдХреА рдХреБрд▓ рд╕рдВрдЦреНрдпрд╛, рдмрд╛рдЗрдЯреНрд╕ рдореЗрдВ рдЖрдХрд╛рд░, рд╕рдмрд╕реЗ рдЫреЛрдЯреА рдФрд░ рд╕рдмрд╕реЗ рдмрдбрд╝реА рдлрд╝рд╛рдЗрд▓ рдЖрдХрд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдорд┐рд▓реЗрдЧреАред рдкрд┐рдЫрд▓реЗ рдЖрджреЗрд╢ рдореЗрдВ, рдореИрдВрдиреЗ рдПрдХ рдлрд╝рд┐рд▓реНрдЯрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдерд╛ред PowerShell 3.0 рдореЗрдВ, рд╡рд╣реА рдЖрд╕рд╛рди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореИрдВрдиреЗ рдЬрд┐рд╕ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ рд╡рд╣ v2.0 рдФрд░ 3.0 рджреЛрдиреЛрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕реНрдерд╛рдиреАрдп рд╕реНрддрд░ рдкрд░ рдЪрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг 1 рдХрд╛ рдХреЛрдб рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдлрд╝реЛрд▓реНрдбрд░реЛрдВ рдХреЗ рдЖрдХрд╛рд░ рдкрд░ рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реА WMI рддрдХрдиреАрдХ рдХреЗ рд╕рд╛рде рдЗрд╕ рдХрдорд╛рдВрдб рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг 1: рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдиреЗрдЯрд╡рд░реНрдХ рдлрд╝реЛрд▓реНрдбрд░реЛрдВ рдХреЗ рдЖрдХрд╛рд░ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдирд╛

 $share=Get-WmiObject -Class Win32_Share -ComputerName CHI-FP01 -filter "name='Sales'" $sb={ Param ($path) dir $path | where {$_.PSIscontainer} | foreach { $stats=dir $_.Fullname -recurse -errorAction "SilentlyContinue" | where {-NOT $_.PSIscontainer} | Measure-object -Property Length -sum New-Object -TypeName PSObject -Property @{ Computername=$env:Computername Path=$_.Name Fullname=$_.Fullname SizeKB=[math]::Round(($stats.sum/1KB),2) NumberFiles=$stats.count } #property } #foreach } #sb $results=Invoke-Command -ScriptBlock $sb -ComputerName $share.__SERVER -ArgumentList @($share.path) -HideComputerName 


рдЖрдк рдЕрдкрдиреА рдЗрдЪреНрдЫрд╛рдиреБрд╕рд╛рд░ $ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдкреНрд░рд╛рд░реВрдкрд┐рдд рдпрд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдПрдХ рд╕реБрдкрд╛рдЪреНрдп рдЯреЗрдмрд▓ рдЪрд╛рд╣рд┐рдП? рдмрд╕ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:

 $results | Format-Table Computername,Fullname,SizeKB,NumberFiles -autosize 




рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдлрд╝рд╛рдЗрд▓ рд╕рд░реНрд╡рд░ рдкрд░ рд╕рднреА рдлрд╝реЛрд▓реНрдбрд░реЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдкрд░ рдкреВрд░реА рд░рд┐рдкреЛрд░реНрдЯ рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИред рд╕рдордп рдмрдЪрд╛рдПрдВ, рдЙрджрд╛рд╣рд░рдг 2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

рдЙрджрд╛рд╣рд░рдг 2: рдлрд╝рд╛рдЗрд▓ рдмреЙрд▓ рдЙрдкрдпреЛрдЧ рдкрд░ рд░рд┐рдкреЛрд░реНрдЯ

 $sb={ #Get the file shares locally. $shares=Get-WmiObject -Class Win32_Share -filter "type=0" foreach ($share in $shares) { #Suppress any access denied error messages. Write-Host "Measuring $($share.path)" -ForegroundColor Green $stats=dir $share.path -Recurse -ErrorAction SilentlyContinue | Where {-Not $_.PSIscontainer} | Measure-Object -Property Length -Sum $hash=@{ Computername=$env:Computername Path=$share.path Share=$share.Name SizeKB=[math]::Round(($stats.sum/1KB),2) Files=$stats.count } #Write a custom object to the pipeline for each share. New-Object -TypeName PSObject -Property $hash } #foreach $share }#sb $results = Invoke-Command -ScriptBlock $sb -ComputerName CHI-FP01 -HideComputerName 


рдФрд░ рдлрд┐рд░, рдореИрдВ рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рдереЛрдбрд╝рд╛ рдкреНрд░рд╛рд░реВрдкрд┐рдд рдХрд░реВрдВрдЧрд╛ред

 $results | sort SizeKB тАУDescending | Select Computername,Share,SizeKB,Files | ft -auto 




рд╕реНрд╡рд╛рдореА рджреНрд╡рд╛рд░рд╛ рдлрд╝рд╛рдЗрд▓реЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ



рд╣рдо рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВ - рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рдорд╛рд▓рд┐рдХреЛрдВ рдХреЛ рдвреВрдВрдврддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдХреЛрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рд╢рд╛рдпрдж рд░рд┐рдкреЛрд░реНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗред рдЕрдиреНрдпрдерд╛, рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдПрд╕реАрдПрд▓ рдХреЛ рдирд┐рдХрд╛рд▓рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдорд╛рд▓рд┐рдХ рд╢рд╛рдорд┐рд▓ рд╣реИ, рдФрд░ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдПрдХрддреНрд░ рдХрд░рддрд╛ рд╣реИред рдХрд╕реНрдЯрдо рдЧреБрдг рдХреЗ рд░реВрдк рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рд╕реНрд╡рд╛рдореА рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИ

 $data=dir | where {-not $_.PSIsContainer} | select name, @{Name="Owner";Expression={(Get-ACL $_.fullname).Owner}}, length 


рд╣рдо рдирдП рдорд╛рд▓рд┐рдХ рдХреА рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕рдореВрд╣ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдирдИ рд╡рд╕реНрддреБ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

 $data | group owner | Select Name,Count,@{Name="Size";Expression={($_.Group | Measure-Object -Property Length -sum).Sum}} 


рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЗ рдПрдХ рдЬреЛрдбрд╝реЗ рдФрд░ рдЖрдк рдлрд╝рд╛рдЗрд▓ рд╢реЗрдпрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рджреГрд╖реНрдЯрд┐рдХреЛрдг рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдЙрджрд╛рд╣рд░рдг 3 рдореЗрдВ рдХреЛрдб рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг 3: рд╕реНрд╡рд╛рдореА рджреНрд╡рд╛рд░рд╛ рд╕рдореВрд╣ рдлрд╝рд╛рдЗрд▓ рдЧреЗрдВрджреЛрдВ

 $sb={ Param($path) $data=dir $path | where {-not $_.PSIsContainer} | select name, @{Name="Owner";Expression= {(Get-ACL $_.fullname).Owner}},length $data | group -property owner | Select @{Name="Computername";Expression={$env:computername}}, @{Name="Path";Expression={$path}},Name,Count,@{Name= "Size";Expression={ ($_.Group | Measure-Object -Property Length -sum).Sum}} } #sb <# Run the command remotely and suppress the RunspaceID since we don't really need it. #> Invoke-Command -ScriptBlock $sb -ComputerName CHI-FP01 -ArgumentList @("c:\shares\public") -HideComputerName | Select * -ExcludeProperty RunspaceID 


рдореБрдЭреЗ рдпрд╣ рднреА рдЗрдВрдЧрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ: рдЙрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдЬрд┐рдирдХрд╛ рдирд╛рдо 260 рд╕реЗ рдЕрдзрд┐рдХ рд╡рд░реНрдг рд╣реИрдВ рдпрд╛ рдЬрд┐рдирдореЗрдВ рдЕрд╕рд╛рдорд╛рдиреНрдп рд╡рд░реНрдг рд╣реИрдВ, рдЦрд╛рд╕рдХрд░ рдпрджрд┐ рдЖрдк рдЧреЗрдЯ-рдПрд╕реАрдПрд▓ рдЪрд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВред PowerShell 3.0 рдореЗрдВ, рдЗрд╕ cmdlet рдореЗрдВ -LiteralPath рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИ, рдЬреЛ рдЙрдкрд░реЛрдХреНрдд рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред

рд╣рдо рдлрд┐рд░ рд╕реЗ рдкрдардиреАрдп рддрд╛рд▓рд┐рдХрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВред

 $data | Sort Size | ft -auto 




рд╣рдо рдирд┐рд░реНрдорд╛рдг рдХреА рддрд╛рд░реАрдЦ рддрдХ рдлрд╛рдЗрд▓реЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ



рдЕрдВрддрд┐рдо рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рддрдХрдиреАрдХ рдЬрд┐рд╕реЗ рдореИрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рд╡рд╣ рд╕рдмрд╕реЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдмрдирд╛рдИ рдЧрдИ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рдмрдирд╛ рд░рд╣реА рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╣рдо рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдПрдХ рд╕рдВрдЧреНрд░рд╣ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рдо рдХрдИ рддрд░реАрдХреЛрдВ рд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдк рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдпрд╛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╣рдЯрд╛рдирд╛ рдпрд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ рдЖрдк рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рдЖрдк рдкреНрд░рдмрдВрдзрди рдХреЛ рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдореЗрд╢рд╛ PowerShell рдХрдорд╛рдВрдб рдмрдирд╛рдПрдВ рддрд╛рдХрд┐ рдЖрдк рдЙрдиреНрд╣реЗрдВ рдмрд╛рдж рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХреЗрдВред
рдХрд┐рд╕реА рдлрд╝рд╛рдЗрд▓ рдХреА рдЖрдпреБ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рдЗрддрдирд╛ рд╕рд░рд▓ рдирд╣реАрдВ рд╣реИред PowerShell рдореЗрдВ, рдПрдХ рдлрд╝рд╛рдЗрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ (рдкреНрд░рдХрд╛рд░ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ) рдореЗрдВ рдХрдИ рдЧреБрдг рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрдорд╛рдВрдб:
 get-item c:\work\wishlist.txt | Format-List Name,*time 

рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдирд┐рд╖реНрдХрд░реНрд╖ рджреЗрддрд╛ рд╣реИред



рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ LastWriteTime рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ, рдЬреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЬрдм рдлрд╝рд╛рдЗрд▓ рдЕрдВрддрд┐рдо рдмрд╛рд░ рдПрдХреНрд╕реЗрд╕ рдХреА рдЧрдИ рдереАред рдореБрдЭреЗ рдЙрди рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рд╣реИ рдЬрд╣рд╛рдВ рд▓рд╛рд╕реНрдЯрдЕрдЯреЗрд╕реНрдЯ рдЯрд╛рдЗрдо рдХреЛ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ , рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдПрдВрдЯреАрд╡рд╛рдпрд░рд╕, рдЬреЛ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рд╕рдЪреНрдЪрд╛рдИ рдХрд╛ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИред рдФрд░ Windows Vista рдХреЗ рдмрд╛рдж рд╕реЗ LastAccessTime рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЖрдк рдЗрд╕реЗ рд╕рдХреНрд╖рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдкрдХреЛ рд╕рд╛рд╡рдзрд╛рди рд░рд╣рдиреЗ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпреЗ рдорд╛рди рдЗрд╕ рдЖрдзрд╛рд░ рдкрд░ рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдбрд┐рд╕реНрдХ рдХреЗ рдмреАрдЪ (рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рдмреАрдЪ) рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдХреЙрдкреА рдпрд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЖрдк рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рд╣рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╣рдо рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдлрд╝рд╛рдЗрд▓ рдХрд┐рддрдиреА рдкреБрд░рд╛рдиреА рд╣реИ, рдпрд╣ рдмрддрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ PowerShell рдорд┐рд▓ рд╕рдХрддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг 4 рджреЗрдЦреЗрдВред

рдЙрджрд╛рд╣рд░рдг 4. рдлрд╛рдЗрд▓реЛрдВ рдХреА рдЙрдореНрд░ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг
 PS C:\work> get-item wishlist.txt | format-list name, CreationTime,LastWriteTime, >> @{Name="Age";Expression={(Get-Date)-$_.LastWriteTime}}, >> @{Name="Days";Expression={((Get-Date) -$_.LastWriteTime).TotalDays}} >> Name : wishlist.txt CreationTime : 11/23/2010 10:31:10 PM LastWriteTime : 2/15/2011 7:36:34 AM Age : 511.06:42:17.4251748 Days : 511.279372271039 


рдЖрдпреБ рд╕рдВрдкрддреНрддрд┐ рдПрдХ рдЯрд╛рдЗрдорд╕реНрдкреИрди рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИ, рдФрд░ рдбреЗрдЬрд╝ рдкреНрд░реЙрдкрд░реНрдЯреА рдЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдХреБрд▓ рд╕рдВрдкрддреНрддрд┐ рд╣реИред рд▓реЗрдХрд┐рди рдЪреВрдВрдХрд┐ рд╣рдо рдПрдХ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рдо рджреВрд╕рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдЗрдП рдореЗрд░реЗ рд╕рд╛рдЭрд╛ рдлрд╝реЛрд▓реНрдбрд░ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ рдФрд░ рдЙрди рд╕рднреА рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдЦреЛрдЬреЗрдВ рдЬреЛ рдкрд┐рдЫрд▓реЗ 400 рджрд┐рдиреЛрдВ рдореЗрдВ рдирд╣реАрдВ рдмрджрд▓реА рд╣реИрдВред

 dir c:\shares\public -recurse | Select Fullname,CreationTime,LastWriteTime, @{Name="Age";Expression={(Get-Date)-$_.LastWriteTime}}, @{Name="Days";Expression={[int]((Get-Date) -$_.LastWriteTime).TotalDays}}, @{Name="Owner";Expression={(Get-ACL $_.fullname).Owner}} | Where {$_.Days -ge 400} | Sort Days -Descending 


рдореИрдВ рдЖрдЧреЗ рдЬрд╛рдХрд░ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдорд╛рд▓рд┐рдХ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░реВрдВрдЧрд╛ред рдиреАрдЪреЗ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдореЗрд░реЗ рдлрд╝рд╛рдЗрд▓ рд╕рд░реНрд╡рд░ рдкрд░ рджреВрд░рд╕реНрде рд╕рддреНрд░ рдореЗрдВ рдЗрд╕ рдХреЛрдб рдХреЛ рдЪрд▓рд╛рдиреЗ рд╕реЗ рдкрд░рд┐рдгрд╛рдо рджрд┐рдЦрд╛рддрд╛ рд╣реИред



рдореИрдВ рдЗрди рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдПрдХ рдЪрд░ рдореЗрдВ рд╕рд╣реЗрдЬ рд╕рдХрддрд╛ рд╣реВрдВ рдФрд░ рдХрд┐рд╕реА рднреА рд╕рдордп рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдЪреВрдВрдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдкреВрд░рд╛ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХрд┐рд╕реА рдЕрдиреНрдп рдХрдорд╛рдВрдб рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирд┐рдХрд╛рд▓реЗрдВ-рдЖрдЗрдЯрдо, рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИред
рдореЗрд░реА рдкрд╕рдВрджреАрджрд╛ рддрдХрдиреАрдХреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рд╣реИ рдХрд┐ рдПрдХ рд╡рд░реНрд╖ рдореЗрдВ рдХрд┐рддрдиреА рдлрд╛рдЗрд▓реЗрдВ рдмрджрд▓реА рдЧрдИрдВред

 dir c:\shares\sales -recurse | Select Fullname,LastWriteTime, @{Name="Age";Expression={(Get-Date)-$_.LastWriteTime}}, @{Name="Year";Expression={$_.LastWriteTime.Year}} | Group-Object Year | Sort Name 


рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рдм рдХреБрдЫ рдХрдВрдШреА рджрд┐рдЦрддрд╛ рд╣реИред рд╡рд┐рд╡рд░рдг рдЪрд╛рд╣рд┐рдП? рдЖрдк рд╕рдореВрд╣ рдХреА рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдлрд╛рдЗрд▓реЛрдВ рдХрд╛ рд╕рдВрдЧреНрд░рд╣ рд╣реИред



рдпрд╣ рдЬрд╛рдирдирд╛ рдЙрдкрдпреЛрдЧреА рд╣реИ рдХрд┐ 30, 90 рдпрд╛ 180 рджрд┐рдиреЛрдВ рдореЗрдВ рдХрд┐рддрдиреА рдлрд╛рдЗрд▓реЗрдВ рдирд╣реАрдВ рдмрджрд▓реА рд╣реИрдВред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЗрд╕рдХреЗ рд▓рд┐рдП рдЧреНрд░реБрдк-рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ "рджреВрд╕рд░реЗ рддрд░реАрдХреЗ рд╕реЗ рдЬрд╛рдиреЗ" рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ; рдЙрджрд╛рд╣рд░рдг 5 рджреЗрдЦреЗрдВред

рдЙрджрд╛рд╣рд░рдг 5: рдлрд╝рд╛рдЗрд▓ рд╕рдВрд╢реЛрдзрди рдЕрд╡рдзрд┐ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛

 $path="c:\scripts" #Get some other properties in case we want to further #break down each bucket. $files=dir $path -recurse | Select Fullname,CreationTime,LastWriteTime,Length, @{Name="Age";Expression={(Get-Date)-$_.LastWriteTime}}, @{Name="Days";Expression={[int]((Get-Date) -$_.LastWriteTime).TotalDays}} $hash=@{ Path=$path Over= ($files | Where {$_.Days -gt 365} | Measure-Object).Count '365Days'= ($files | Where {$_.Days -gt 180 -AND $_.Days -le 365} | Measure-Object).Count '180Days'= ($files | Where {$_.Days -gt 90 -AND $_.Days -le 180} | Measure-Object).Count '90Days'= ($files | Where {$_.Days -gt 30 -AND $_.Days -le 90} | Measure-Object).Count '30Days'= ($files | Where {$_.Days -gt 7 -AND $_.Days -le 30} | Measure-Object).Count '7Days'= ($files | Where {$_.Days -gt 0 -AND $_.Days -le 7} | Measure-Object).Count } New-Object -TypeName PSObject -Property $hash | Select Path,Over,365Days,180Days,90Days,30Days,7Days 


рдиреАрдЪреЗ рджрд┐рдпрд╛ рдЧрдпрд╛ рдЖрдВрдХрдбрд╝рд╛ рдкрд░рд┐рдгрд╛рдо рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдЬрдм рдореИрдВрдиреЗ рдЕрдкрдиреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдХреЛрдб рдХреЛ рдЪрд▓рд╛рдпрд╛, рдЬреЛ рдХрд┐, рдЬреИрд╕рд╛ рдХрд┐ рдореБрдЭреЗ рдкрддрд╛ рд╣реИ, рдПрдХ рд╕рднреНрдп рдЖрдпреБ рд╡рд┐рддрд░рдг рд╣реИред рдореЗрд░реЗ рдХреЛрдб рдореЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдлрд╛рдЗрд▓реЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдЙрджрд╛рд╣рд░рдг рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╣реЛрдЧрд╛ред



рдкреЛрд╕реНрдЯ Windows PowerShell рдХреЗ рд╕рд╛рде рдЖрд▓реЗрдЦ рдлрд╝рд╛рдЗрд▓ рд╕рд░реНрд╡рд░ рдкреНрд░рдмрдВрдзрди рдХреЗ рдкрд╣рд▓реЗ рднрд╛рдЧ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред

рдмреЛрдирд╕:

рд╡реИрд╕реЗ, PowerShell рдФрд░ WMI рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдЬреЗрдлрд░реА рд╣рд┐рдХреНрд╕ рдЕрдкрдиреЗ рдмреНрд▓реЙрдЧ (рднрд╛рдЧ 1 рдФрд░ 2 ) рдкрд░ рд▓рд┐рдЦрддреЗ рд╣реИрдВред

Source: https://habr.com/ru/post/In168377/


All Articles