<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Powershell script for SASWORK usage in Administration and Deployment</title>
    <link>https://communities.sas.com/t5/Administration-and-Deployment/Powershell-script-for-SASWORK-usage/m-p/862793#M26175</link>
    <description>&lt;P&gt;I need to provide some SAS admin tools to non-SAS admins for a very basic Windows2019 server with about 25 occasional EG users. Due to shared disk, Environment Manager is not reliable and does not integrate with the IT team. cleanwork.exe is scheduled but sometimes a lot of users need a lot of space at the same time.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This powershell script can be supported by IT operations and the output is sufficient for basic capacity planning but it needs some tweaking. Hopefully, I am not missing something obvious:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;# Write owner and aggregate SASwork usage to csv&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;# D:\sas\Batch\scripts\SASWorkDirUse2csv.ps1&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;# Nearly there but array($owner) values are weird&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;lt;#&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;tree /A D:\SASWork&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;Folder PATH listing for volume Data&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;Volume serial number is EE9D-7C3D&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;D:\SASWORK&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;+---SAS_util0001000008C0_WIN2019SRV&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;+---SAS_util000100007504_WIN2019SRV&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;+---SAS_util000100008B28_WIN2019SRV&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;+---SAS_util0001000095B4_WIN2019SRV&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;+---_TD2240_WIN2019SRV_&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;| &amp;nbsp; +---EC_4qh9k9re&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;| &amp;nbsp; \---Prc2&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;+---_TD29956_WIN2019SRV_&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;| &amp;nbsp; +---EC_jh9gtz1t&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;| &amp;nbsp; \---Prc2&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;+---_TD35624_WIN2019SRV_&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;| &amp;nbsp; +---EC_1gt8bc1d&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;| &amp;nbsp; \---Prc2&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;+---_TD38324_WIN2019SRV_&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;| &amp;nbsp; +---EC_nb5qr46m&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;| &amp;nbsp; \---Prc2&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;\---_TD4000_WIN2019SRV_&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;#&amp;gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;$folder&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;'D:\SASWork'&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;$DirUseArray&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;@&lt;/SPAN&gt;&lt;SPAN&gt;()&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;# Get a list of first level sub-folders&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;$firstLevel&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;Get-ChildItem&lt;/SPAN&gt; &lt;SPAN&gt;$folder&lt;/SPAN&gt; &lt;SPAN&gt;-directory&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;$firstLevel&lt;/SPAN&gt;&lt;SPAN&gt; | &lt;/SPAN&gt;&lt;SPAN&gt;foreach&lt;/SPAN&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;Echo&lt;/SPAN&gt; &lt;SPAN&gt;"Reading &lt;/SPAN&gt;&lt;SPAN&gt;$_&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;# Read the size of this folder and all its sub folders.&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;$size&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt; (&lt;/SPAN&gt;&lt;SPAN&gt;Get-ChildItem&lt;/SPAN&gt; &lt;SPAN&gt;$folder&lt;/SPAN&gt;&lt;SPAN&gt;\&lt;/SPAN&gt;&lt;SPAN&gt;$_&lt;/SPAN&gt;&lt;SPAN&gt;\* &lt;/SPAN&gt;&lt;SPAN&gt;-recurse&lt;/SPAN&gt;&lt;SPAN&gt;) | &lt;/SPAN&gt;&lt;SPAN&gt;measure-object&lt;/SPAN&gt; &lt;SPAN&gt;-property&lt;/SPAN&gt;&lt;SPAN&gt; length &lt;/SPAN&gt;&lt;SPAN&gt;-sum&lt;/SPAN&gt;&lt;SPAN&gt; | &lt;/SPAN&gt;&lt;SPAN&gt;Select-Object&lt;/SPAN&gt; &lt;SPAN&gt;-expand&lt;/SPAN&gt;&lt;SPAN&gt; sum&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;# Convert from Bytes to GB and round to 2 decimal places&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;$size&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt; &amp;nbsp;[&lt;/SPAN&gt;&lt;SPAN&gt;math&lt;/SPAN&gt;&lt;SPAN&gt;]::&lt;/SPAN&gt;&lt;SPAN&gt;Round&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;$&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt; &lt;SPAN&gt;+&lt;/SPAN&gt; &lt;SPAN&gt;$size&lt;/SPAN&gt; &lt;SPAN&gt;/&lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;GB&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;SPAN&gt;2&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;$owner&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt; (&lt;/SPAN&gt;&lt;SPAN&gt;Get-ChildItem&lt;/SPAN&gt; &lt;SPAN&gt;$folder&lt;/SPAN&gt;&lt;SPAN&gt;\&lt;/SPAN&gt;&lt;SPAN&gt;$_&lt;/SPAN&gt; &lt;SPAN&gt;-directory&lt;/SPAN&gt;&lt;SPAN&gt;) | &lt;/SPAN&gt;&lt;SPAN&gt;select&lt;/SPAN&gt; &lt;SPAN&gt;@&lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;SPAN&gt;Name&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"Owner"&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;SPAN&gt;Expression&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;{ (&lt;/SPAN&gt;&lt;SPAN&gt;Get-ACL&lt;/SPAN&gt; &lt;SPAN&gt;$_&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;Fullname&lt;/SPAN&gt;&lt;SPAN&gt;).&lt;/SPAN&gt;&lt;SPAN&gt;Owner&lt;/SPAN&gt;&lt;SPAN&gt; }}&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;Echo&lt;/SPAN&gt; &lt;SPAN&gt;$owner&lt;/SPAN&gt; &lt;SPAN&gt;$size&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;# Add to an array&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;$DirUseArray&lt;/SPAN&gt; &lt;SPAN&gt;+=&lt;/SPAN&gt; &lt;SPAN&gt;New-Object&lt;/SPAN&gt;&lt;SPAN&gt; PsObject &lt;/SPAN&gt;&lt;SPAN&gt;-property&lt;/SPAN&gt; &lt;SPAN&gt;@&lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;'Owner'&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;$owner&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;'Folder'&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;$_&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;'Size (GB)'&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;$size&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp;}&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;# $DirUseArray | Export-Csv -path D:\sas\Batch\datafiles\SASWorkDirUse.csv -NoTypeInformation&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;$DirUseArray&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;#&amp;lt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;Size&lt;/SPAN&gt;&lt;SPAN&gt; (&lt;/SPAN&gt;&lt;SPAN&gt;GB&lt;/SPAN&gt;&lt;SPAN&gt;) Folder &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Owner &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;--&lt;/SPAN&gt;&lt;SPAN&gt;--&lt;/SPAN&gt;&lt;SPAN&gt;--&lt;/SPAN&gt;&lt;SPAN&gt;--&lt;/SPAN&gt;&lt;SPAN&gt;-&lt;/SPAN&gt; &lt;SPAN&gt;--&lt;/SPAN&gt;&lt;SPAN&gt;--&lt;/SPAN&gt;&lt;SPAN&gt;--&lt;/SPAN&gt;&lt;SPAN&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;--&lt;/SPAN&gt;&lt;SPAN&gt;--&lt;/SPAN&gt;&lt;SPAN&gt;-&lt;/SPAN&gt;&lt;SPAN&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt; &lt;SPAN&gt;SAS_util0001000008C0_WIN2019SRV&lt;/SPAN&gt;&lt;SPAN&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt; &lt;SPAN&gt;SAS_util000100007504_WIN2019SRV&lt;/SPAN&gt;&lt;SPAN&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt; &lt;SPAN&gt;SAS_util000100008B28_WIN2019SRV&lt;/SPAN&gt;&lt;SPAN&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt; &lt;SPAN&gt;SAS_util0001000095B4_WIN2019SRV&lt;/SPAN&gt;&lt;SPAN&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;4.59&lt;/SPAN&gt; &lt;SPAN&gt;_TD2240_WIN2019SRV_&lt;/SPAN&gt;&lt;SPAN&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/SPAN&gt;&lt;SPAN&gt;@&lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;SPAN&gt;Owner&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;SASUSER1&lt;/SPAN&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt; &lt;SPAN&gt;@&lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;SPAN&gt;Owner&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;SASUSER1&lt;/SPAN&gt;&lt;SPAN&gt;}} &amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;1.14&lt;/SPAN&gt; &lt;SPAN&gt;_TD29956_WIN2019SRV_&lt;/SPAN&gt;&lt;SPAN&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;/SPAN&gt;&lt;SPAN&gt;@&lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;SPAN&gt;Owner&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;SASUSER1&lt;/SPAN&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt; &lt;SPAN&gt;@&lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;SPAN&gt;Owner&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;SASUSER1&lt;/SPAN&gt;&lt;SPAN&gt;}} &amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;19.76&lt;/SPAN&gt; &lt;SPAN&gt;_TD35624_WIN2019SRV_&lt;/SPAN&gt;&lt;SPAN&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;/SPAN&gt;&lt;SPAN&gt;@&lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;SPAN&gt;Owner&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;SASUSER2&lt;/SPAN&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt; &lt;SPAN&gt;@&lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;SPAN&gt;Owner&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;SASUSER2&lt;/SPAN&gt;&lt;SPAN&gt;}}&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;19.76&lt;/SPAN&gt; &lt;SPAN&gt;_TD38324_WIN2019SRV_&lt;/SPAN&gt;&lt;SPAN&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;/SPAN&gt;&lt;SPAN&gt;@&lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;SPAN&gt;Owner&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;SASUSER2&lt;/SPAN&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt; &lt;SPAN&gt;@&lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;SPAN&gt;Owner&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;SASUSER2&lt;/SPAN&gt;&lt;SPAN&gt;}}&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt; &lt;SPAN&gt;_TD4000_WIN2019SRV_&lt;/SPAN&gt;&lt;SPAN&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;#&amp;gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;I am testing using an account that is a member of the Administrators group but I have noticed that get-acl can be erratic if not run as&amp;nbsp;Administrator. Still testing that aspect. The original script came from&amp;nbsp;&lt;A href="https://ss64.com/ps/syntax-diruse.html" target="_blank"&gt;DirUse Directory size - PowerShell - SS64.com&lt;/A&gt;&lt;/P&gt;&lt;P&gt;An excellent resource for powershell amateurs&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Tue, 07 Mar 2023 20:32:57 GMT</pubDate>
    <dc:creator>Acf2</dc:creator>
    <dc:date>2023-03-07T20:32:57Z</dc:date>
    <item>
      <title>Powershell script for SASWORK usage</title>
      <link>https://communities.sas.com/t5/Administration-and-Deployment/Powershell-script-for-SASWORK-usage/m-p/862793#M26175</link>
      <description>&lt;P&gt;I need to provide some SAS admin tools to non-SAS admins for a very basic Windows2019 server with about 25 occasional EG users. Due to shared disk, Environment Manager is not reliable and does not integrate with the IT team. cleanwork.exe is scheduled but sometimes a lot of users need a lot of space at the same time.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This powershell script can be supported by IT operations and the output is sufficient for basic capacity planning but it needs some tweaking. Hopefully, I am not missing something obvious:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;# Write owner and aggregate SASwork usage to csv&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;# D:\sas\Batch\scripts\SASWorkDirUse2csv.ps1&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;# Nearly there but array($owner) values are weird&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;lt;#&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;tree /A D:\SASWork&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;Folder PATH listing for volume Data&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;Volume serial number is EE9D-7C3D&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;D:\SASWORK&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;+---SAS_util0001000008C0_WIN2019SRV&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;+---SAS_util000100007504_WIN2019SRV&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;+---SAS_util000100008B28_WIN2019SRV&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;+---SAS_util0001000095B4_WIN2019SRV&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;+---_TD2240_WIN2019SRV_&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;| &amp;nbsp; +---EC_4qh9k9re&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;| &amp;nbsp; \---Prc2&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;+---_TD29956_WIN2019SRV_&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;| &amp;nbsp; +---EC_jh9gtz1t&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;| &amp;nbsp; \---Prc2&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;+---_TD35624_WIN2019SRV_&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;| &amp;nbsp; +---EC_1gt8bc1d&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;| &amp;nbsp; \---Prc2&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;+---_TD38324_WIN2019SRV_&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;| &amp;nbsp; +---EC_nb5qr46m&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;| &amp;nbsp; \---Prc2&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;\---_TD4000_WIN2019SRV_&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;#&amp;gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;$folder&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;'D:\SASWork'&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;$DirUseArray&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;@&lt;/SPAN&gt;&lt;SPAN&gt;()&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;# Get a list of first level sub-folders&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;$firstLevel&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;Get-ChildItem&lt;/SPAN&gt; &lt;SPAN&gt;$folder&lt;/SPAN&gt; &lt;SPAN&gt;-directory&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;$firstLevel&lt;/SPAN&gt;&lt;SPAN&gt; | &lt;/SPAN&gt;&lt;SPAN&gt;foreach&lt;/SPAN&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;Echo&lt;/SPAN&gt; &lt;SPAN&gt;"Reading &lt;/SPAN&gt;&lt;SPAN&gt;$_&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;# Read the size of this folder and all its sub folders.&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;$size&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt; (&lt;/SPAN&gt;&lt;SPAN&gt;Get-ChildItem&lt;/SPAN&gt; &lt;SPAN&gt;$folder&lt;/SPAN&gt;&lt;SPAN&gt;\&lt;/SPAN&gt;&lt;SPAN&gt;$_&lt;/SPAN&gt;&lt;SPAN&gt;\* &lt;/SPAN&gt;&lt;SPAN&gt;-recurse&lt;/SPAN&gt;&lt;SPAN&gt;) | &lt;/SPAN&gt;&lt;SPAN&gt;measure-object&lt;/SPAN&gt; &lt;SPAN&gt;-property&lt;/SPAN&gt;&lt;SPAN&gt; length &lt;/SPAN&gt;&lt;SPAN&gt;-sum&lt;/SPAN&gt;&lt;SPAN&gt; | &lt;/SPAN&gt;&lt;SPAN&gt;Select-Object&lt;/SPAN&gt; &lt;SPAN&gt;-expand&lt;/SPAN&gt;&lt;SPAN&gt; sum&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;# Convert from Bytes to GB and round to 2 decimal places&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;$size&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt; &amp;nbsp;[&lt;/SPAN&gt;&lt;SPAN&gt;math&lt;/SPAN&gt;&lt;SPAN&gt;]::&lt;/SPAN&gt;&lt;SPAN&gt;Round&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;$&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt; &lt;SPAN&gt;+&lt;/SPAN&gt; &lt;SPAN&gt;$size&lt;/SPAN&gt; &lt;SPAN&gt;/&lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;GB&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;SPAN&gt;2&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;$owner&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt; (&lt;/SPAN&gt;&lt;SPAN&gt;Get-ChildItem&lt;/SPAN&gt; &lt;SPAN&gt;$folder&lt;/SPAN&gt;&lt;SPAN&gt;\&lt;/SPAN&gt;&lt;SPAN&gt;$_&lt;/SPAN&gt; &lt;SPAN&gt;-directory&lt;/SPAN&gt;&lt;SPAN&gt;) | &lt;/SPAN&gt;&lt;SPAN&gt;select&lt;/SPAN&gt; &lt;SPAN&gt;@&lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;SPAN&gt;Name&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"Owner"&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;SPAN&gt;Expression&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;{ (&lt;/SPAN&gt;&lt;SPAN&gt;Get-ACL&lt;/SPAN&gt; &lt;SPAN&gt;$_&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;Fullname&lt;/SPAN&gt;&lt;SPAN&gt;).&lt;/SPAN&gt;&lt;SPAN&gt;Owner&lt;/SPAN&gt;&lt;SPAN&gt; }}&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;Echo&lt;/SPAN&gt; &lt;SPAN&gt;$owner&lt;/SPAN&gt; &lt;SPAN&gt;$size&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;# Add to an array&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;$DirUseArray&lt;/SPAN&gt; &lt;SPAN&gt;+=&lt;/SPAN&gt; &lt;SPAN&gt;New-Object&lt;/SPAN&gt;&lt;SPAN&gt; PsObject &lt;/SPAN&gt;&lt;SPAN&gt;-property&lt;/SPAN&gt; &lt;SPAN&gt;@&lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;'Owner'&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;$owner&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;'Folder'&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;$_&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;'Size (GB)'&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;$size&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp;}&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;# $DirUseArray | Export-Csv -path D:\sas\Batch\datafiles\SASWorkDirUse.csv -NoTypeInformation&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;$DirUseArray&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;#&amp;lt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;Size&lt;/SPAN&gt;&lt;SPAN&gt; (&lt;/SPAN&gt;&lt;SPAN&gt;GB&lt;/SPAN&gt;&lt;SPAN&gt;) Folder &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Owner &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;--&lt;/SPAN&gt;&lt;SPAN&gt;--&lt;/SPAN&gt;&lt;SPAN&gt;--&lt;/SPAN&gt;&lt;SPAN&gt;--&lt;/SPAN&gt;&lt;SPAN&gt;-&lt;/SPAN&gt; &lt;SPAN&gt;--&lt;/SPAN&gt;&lt;SPAN&gt;--&lt;/SPAN&gt;&lt;SPAN&gt;--&lt;/SPAN&gt;&lt;SPAN&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;--&lt;/SPAN&gt;&lt;SPAN&gt;--&lt;/SPAN&gt;&lt;SPAN&gt;-&lt;/SPAN&gt;&lt;SPAN&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt; &lt;SPAN&gt;SAS_util0001000008C0_WIN2019SRV&lt;/SPAN&gt;&lt;SPAN&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt; &lt;SPAN&gt;SAS_util000100007504_WIN2019SRV&lt;/SPAN&gt;&lt;SPAN&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt; &lt;SPAN&gt;SAS_util000100008B28_WIN2019SRV&lt;/SPAN&gt;&lt;SPAN&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt; &lt;SPAN&gt;SAS_util0001000095B4_WIN2019SRV&lt;/SPAN&gt;&lt;SPAN&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;4.59&lt;/SPAN&gt; &lt;SPAN&gt;_TD2240_WIN2019SRV_&lt;/SPAN&gt;&lt;SPAN&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/SPAN&gt;&lt;SPAN&gt;@&lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;SPAN&gt;Owner&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;SASUSER1&lt;/SPAN&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt; &lt;SPAN&gt;@&lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;SPAN&gt;Owner&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;SASUSER1&lt;/SPAN&gt;&lt;SPAN&gt;}} &amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;1.14&lt;/SPAN&gt; &lt;SPAN&gt;_TD29956_WIN2019SRV_&lt;/SPAN&gt;&lt;SPAN&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;/SPAN&gt;&lt;SPAN&gt;@&lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;SPAN&gt;Owner&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;SASUSER1&lt;/SPAN&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt; &lt;SPAN&gt;@&lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;SPAN&gt;Owner&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;SASUSER1&lt;/SPAN&gt;&lt;SPAN&gt;}} &amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;19.76&lt;/SPAN&gt; &lt;SPAN&gt;_TD35624_WIN2019SRV_&lt;/SPAN&gt;&lt;SPAN&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;/SPAN&gt;&lt;SPAN&gt;@&lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;SPAN&gt;Owner&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;SASUSER2&lt;/SPAN&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt; &lt;SPAN&gt;@&lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;SPAN&gt;Owner&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;SASUSER2&lt;/SPAN&gt;&lt;SPAN&gt;}}&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;19.76&lt;/SPAN&gt; &lt;SPAN&gt;_TD38324_WIN2019SRV_&lt;/SPAN&gt;&lt;SPAN&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;/SPAN&gt;&lt;SPAN&gt;@&lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;SPAN&gt;Owner&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;SASUSER2&lt;/SPAN&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt; &lt;SPAN&gt;@&lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;SPAN&gt;Owner&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;SASUSER2&lt;/SPAN&gt;&lt;SPAN&gt;}}&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt; &lt;SPAN&gt;_TD4000_WIN2019SRV_&lt;/SPAN&gt;&lt;SPAN&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;#&amp;gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;I am testing using an account that is a member of the Administrators group but I have noticed that get-acl can be erratic if not run as&amp;nbsp;Administrator. Still testing that aspect. The original script came from&amp;nbsp;&lt;A href="https://ss64.com/ps/syntax-diruse.html" target="_blank"&gt;DirUse Directory size - PowerShell - SS64.com&lt;/A&gt;&lt;/P&gt;&lt;P&gt;An excellent resource for powershell amateurs&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 07 Mar 2023 20:32:57 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Administration-and-Deployment/Powershell-script-for-SASWORK-usage/m-p/862793#M26175</guid>
      <dc:creator>Acf2</dc:creator>
      <dc:date>2023-03-07T20:32:57Z</dc:date>
    </item>
    <item>
      <title>Re: Powershell script for SASWORK usage</title>
      <link>https://communities.sas.com/t5/Administration-and-Deployment/Powershell-script-for-SASWORK-usage/m-p/937150#M28767</link>
      <description>&lt;P&gt;Getting the owners sometimes needs Admin rights but not always. Here are 4 different outputs :&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;# Compact view for pasting into email&lt;BR /&gt;Get-ChildItem "D:\SASWork" -File -recurse | select Directory, Name, length, &amp;lt;# path, filename,#&amp;gt; lastwritetime, @{Name="Owner";&lt;BR /&gt;Expression={ (Get-ACL $_.Fullname).Owner }} | Sort-Object -Descending length | Out-GridView&lt;/P&gt;
&lt;P&gt;# Write to standard output for selecting details&lt;BR /&gt;Get-ChildItem "D:\SASWork" -File -recurse | select Directory, Name, length, &amp;lt;# path, filename,#&amp;gt; lastwritetime, @{Name="Owner";&lt;BR /&gt;Expression={ (Get-ACL $_.Fullname).Owner }} | Sort-Object -Descending length | Format-Table&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;# Write to csv for DSD parsing with SAS&lt;BR /&gt;Get-ChildItem "D:\SASWork" -File -recurse | select Directory, Name, length, &amp;lt;# path, filename,#&amp;gt; lastwritetime, @{Name="Owner";&lt;BR /&gt;Expression={ (Get-ACL $_.Fullname).Owner }} | Export-CSV -Path D:\sas\Batch\datafiles\D_SASWork_Files_$(get-date -f "yyyyMMdd").csv -NoTypeInformation&lt;/P&gt;
&lt;P&gt;# Pre-req : Install-Module ImportExcel -AllowClobber -Force&lt;/P&gt;
&lt;P&gt;# Write to xlsx&lt;BR /&gt;Get-ChildItem "D:\SASWork" -File -recurse | select Directory, Name, length, &amp;lt;# path, filename,#&amp;gt; lastwritetime, @{Name="Owner";&lt;BR /&gt;Expression={ (Get-ACL $_.Fullname).Owner }} | Export-Excel -Path D:\SAS_Users\AFarrer\xlsx\D_SASWork_Files_$(get-date -f "yyyyMMdd").xlsx&lt;/P&gt;</description>
      <pubDate>Thu, 25 Jul 2024 16:40:39 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Administration-and-Deployment/Powershell-script-for-SASWORK-usage/m-p/937150#M28767</guid>
      <dc:creator>Acf2</dc:creator>
      <dc:date>2024-07-25T16:40:39Z</dc:date>
    </item>
    <item>
      <title>Re: Powershell script for SASWORK usage</title>
      <link>https://communities.sas.com/t5/Administration-and-Deployment/Powershell-script-for-SASWORK-usage/m-p/937152#M28769</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/440477"&gt;@Acf2&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I've written this script for windows to display&amp;nbsp;all existing SAS WORK Directories (_TD*), and&amp;nbsp;SAS Utility directories (SAS_util*), then find their associated process id (PID), if active, with every found directory. This was inspired by the &lt;A title="WORKtop is a Unix utility that provides a rolling display of SAS WORK and UTIL directories ordered by size" href="https://github.com/Boemska/worktop" target="_self"&gt;WORKtop&lt;/A&gt;&amp;nbsp;freeware utility developed back in the day by the folks from Boemska&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;:: -----------------------------------------------------------------------
::  Filename: getworkdirpid.bat
::  Description: Find all existing SAS WORK Directories (_TD*), and
::  SAS Utility directories (SAS_util*), then find their associated
::  process id (PID), if active, with every found directory
:: -----------------------------------------------------------------------
:: Syntax:
::
:: To generate output on the screen, just execute the script
::     &amp;gt; getworkdirpid.bat /v f: c: 
::
:: To store generated output into a text file, here is an example usage
::     &amp;gt; getworkdirpid.bat /v f: c: &amp;gt; c:\tmp\getworkdirpid_output.txt
::
:: -----------------------------------------------------------------------
@ECHO OFF

:: Ensure that I don’t clobber any existing variables after my script exits
SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION 

:: Store the name of the script (without the file extension) 
SET scrpt=%~n0

:: Store the path of the folder for the script file for later user
SET parent=%~dp0

:: Command line parameter check 
ECHO.%* | FIND "?" &amp;gt;NUL 
IF NOT ERRORLEVEL 1 GOTO SYNTAX
IF "%1" == "/v" SET allArgs=%2
IF NOT defined allArgs GOTO SYNTAX

:: Initialize variable 
SET n=2
SET dirCount=0

:: Skip to the next argument
SHIFT

:LOOP
   :: Change directory, and try to find the SAS temporary directories
   %1
   ECHO.
   ECHO Searching _TD* directories on %1 ...
   FOR /F %%I IN ('DIR _TD* /s /ad /b') DO (
      SET /a dirCount+=1
      CALL :unifyLength %%~I, col
      SET argVec[!dirCount!].fullPath=!col!
	  
      CALL :getDirPid %%~nI, pid, w
      SET argVec[!dirCount!].pid=!pid!

	  CALL :getPidInfo !pid!, pidInfo
	  :: echo !pidInfo!
      SET argVec[!dirCount!].pidInfo=!pidInfo!
   )
   
   ECHO.
   ECHO Searching SAS_util* directories on %1 ...
   FOR /F %%I IN ('DIR SAS_util* /s /ad /b') DO (
      SET /a dirCount+=1
      CALL :unifyLength %%~I, col
      SET argVec[!dirCount!].fullPath=!col!
	  
      CALL :getDirPid %%~nI, pid, u
      SET argVec[!dirCount!].pid=!pid!
	  
      CALL :getPidInfo !pid!, pidInfo
      :: echo !pidInfo!
      SET argVec[!dirCount!].pidInfo=!pidInfo!
   )
   SET /a n+=1
   SHIFT
   SET param=%1
   if defined param (GOTO :LOOP) else (GOTO :REPORT)

:SYNTAX 
   ECHO.
   ECHO Display list of SAS Temporary directories, and their associated PID, if any 
   ECHO Usage: getworkdirpid [/v volume(s)] 
   ECHO Where: /v volume specifies the volume to search for SAS Temporary directories.
   ECHO Note: When specifying more than one volume, separate them with spaces.
   ENDLOCAL
   ECHO ON
   @EXIT /B 0

:unifyLength
   SETLOCAL ENABLEEXTENSIONS
   SET "spaces=                                                                             "
   SET "newCol=%1%spaces%"
   SET newCol=%newCol:~0,77%
   :: ECHO %newCol%
   ENDLOCAL&amp;amp;SET %2=%newCol%&amp;amp;GOTO :eof

:getDirPid
   SETLOCAL ENABLEEXTENSIONS
   SET lclPid=%~nx1
   IF "%3" == "w" (
      SET lclPid=%lclPid:~3,4%
   ) else (
      SET lclPid=%lclPid:~12,8%   
      SET /A lclPid=0X%lclPid%
   )
   :: echo %lclPid%
   ENDLOCAL&amp;amp;SET %2=%lclPid%&amp;amp;GOTO :eof

:getPidInfo
   SETLOCAL ENABLEEXTENSIONS
   tasklist /v /fi "PID eq %1" /nh /fo "CSV" &amp;gt; c:\temp\_tmp.txt
   ENDLOCAL&amp;amp;SET /p %2=&amp;lt;c:\temp\_tmp.txt&amp;amp;GOTO :eof
   
:REPORT
   ECHO.
   ECHO Number of found temporary directories: %dirCount%
   ECHO ------------------------------------------------------------------------------+-------+------------------------------------------------------
   ECHO Directory                                                                     :  PID  : Task / Process
   ECHO ------------------------------------------------------------------------------+-------+------------------------------------------------------
   for /L %%i in (1,1,%dirCount%) do (
      ECHO !argVec[%%i].fullPath! :  !argVec[%%i].pid! : !argVec[%%i].pidInfo!
   )
   ENDLOCAL
   ECHO ON
   @EXIT /B 0
&lt;/PRE&gt;</description>
      <pubDate>Thu, 25 Jul 2024 16:57:11 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Administration-and-Deployment/Powershell-script-for-SASWORK-usage/m-p/937152#M28769</guid>
      <dc:creator>AhmedAl_Attar</dc:creator>
      <dc:date>2024-07-25T16:57:11Z</dc:date>
    </item>
  </channel>
</rss>

