powershell

sethayes

·

Get-NetworkFolders

·

Powershell

·

Total Size: 5.2 KB

·

·

Created: 4 years ago

·

Edited: 4 years ago

Set-ExecutionPolicy bypass -Force -confirm:$false # Get the User Profile Folder Paths from the Registry # Also, get the size of the Folder Paths $doc = (Get-ItemProperty -Path Registry::"HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" -Name Personal -ErrorAction SilentlyContinue).Personal $docSize = [math]::Round([double]((Get-ChildItem "$($doc)" -recurse -force | measure-object -property length -sum).sum / 1024 / 1024 / 1024),2) $desk = (Get-ItemProperty -Path Registry::"HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" -Name Desktop -ErrorAction SilentlyContinue).Desktop $deskSize = [math]::Round([double]((Get-ChildItem "$($desk)" -recurse -force | measure-object -property length -sum).sum / 1024 / 1024 / 1024),2) $fave = (Get-ItemProperty -Path Registry::"HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" -Name Favorites -ErrorAction SilentlyContinue).Favorites $faveSize = [math]::Round([double]((Get-ChildItem "$($fave)" -recurse -force | measure-object -property length -sum).sum / 1024 / 1024),2) $music = (Get-ItemProperty -Path Registry::"HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" -Name "My Music" -ErrorAction SilentlyContinue)."My Music" $musicSize = [math]::Round([double]((Get-ChildItem "$($music)" -recurse -force | measure-object -property length -sum).sum / 1024 / 1024 / 1024),2) $pic = (Get-ItemProperty -Path Registry::"HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" -Name "My Pictures" -ErrorAction SilentlyContinue)."My Pictures" $picSize = [math]::Round([double]((Get-ChildItem "$($pic)" -recurse -force | measure-object -property length -sum).sum / 1024 / 1024 / 1024),2) $vid = (Get-ItemProperty -Path Registry::"HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" -Name "My Video" -ErrorAction SilentlyContinue)."My Video" $vidSize = [math]::Round([double]((Get-ChildItem "$($vid)" -recurse -force | measure-object -property length -sum).sum / 1024 / 1024 / 1024),2) # Name the WMI NameSpace and Class $nameSpace = 'MSI' $class = 'NetworkFolders' # Does Namespace already exist? Write-Verbose "Getting WMI Namespace $nameSpace" $nsFilter = "Name = '$nameSpace'" $nsExist = Get-WmiObject -Namespace root -Class __namespace -Filter $nsFilter # Namespace does not nsExist If ($nsExist -eq $null) { Write-Verbose "$nameSpace Namespace does not exist. Creating new Namespace . . ." # Create Namespace $rootNamespace = [wmiClass]'root:__namespace' $newNamespace = $rootNamespace.CreateInstance() $newNamespace.Name = $nameSpace $newNamespace.Put() } # Does Class already exist? Write-Verbose "Getting $Class Class" $classExist = Get-CimClass -Namespace root/$nameSpace -ClassName $class -ErrorAction SilentlyContinue # Class does not exist If ($classExist -eq $null) { Write-Verbose "$class Class does not exist. Creating new class . . ." # Create Class $newClass = New-Object System.Management.ManagementClass("root\$nameSpace", [string]::Empty, $null) $newClass.name = $class $newClass.Qualifiers.Add("Static", $true) $newClass.Properties.Add("ComputerName", [System.Management.CimType]::String, $false) $newClass.Properties["ComputerName"].Qualifiers.Add("Key", $true) $newClass.Properties.Add("Documents", [System.Management.CimType]::String, $false) $newClass.Properties.Add("Documents_Size", [System.Management.CimType]::real64, $false) $newClass.Properties.Add("Desktop", [System.Management.CimType]::String, $false) $newClass.Properties.Add("Desktop_Size", [System.Management.CimType]::real64, $false) $newClass.Properties.Add("Favorites", [System.Management.CimType]::String, $false) $newClass.Properties.Add("Favorites_Size", [System.Management.CimType]::real64, $false) $newClass.Properties.Add("Music", [System.Management.CimType]::String, $false) $newClass.Properties.Add("Music_Size", [System.Management.CimType]::real64, $false) $newClass.Properties.Add("Pictures", [System.Management.CimType]::String, $false) $newClass.Properties.Add("Pictures_Size", [System.Management.CimType]::real64, $false) $newClass.Properties.Add("Video", [System.Management.CimType]::String, $false) $newClass.Properties.Add("Video_Size", [System.Management.CimType]::real64, $false) $newClass.Put() } # Add all the Folders/Sizes to WMI $wmiPath = 'root\' + $nameSpace + ':' + $class $wmiInstance = ([wmiclass]$wmiPath).CreateInstance() $wmiInstance.ComputerName = $ENV:COMPUTERNAME $wmiInstance.Documents = $doc $wmiInstance.Documents_Size = $docSize $wmiInstance.Desktop = $desk $wmiInstance.Desktop_Size = $deskSize $wmiInstance.Favorites = $fave $wmiInstance.Favorites_Size = $faveSize $wmiInstance.Music = $music $wmiInstance.Music_Size = $musicSize $wmiInstance.Pictures = $pic $wmiInstance.Pictures_Size = $picSize $wmiInstance.Video = $vid $wmiInstance.Video_Size = $vidSize $wmiInstance.Put() Clear-Variable -Name wmiInstance

1 bit

1126 views

Are you sure you want to delete?