The following script creates a picture format (to enable TB sizings) and then runs a powershell command to import the disk size and disk free for each mapped drive on the SAS server:
/* create readable format */
%let onetb=%sysevalf(1024**4);
proc format;
picture sizekmgt
0 - < &onetb=[sizekmg10.1]
&onetb - high ='000000.9TB'
(multiplier=
%sysevalf(1/&onetb.));
run;
filename in pipe "powershell
-Command ""get-WmiObject
win32_logicaldisk
-ComputerName &syshostname""
";
data s;
infile in;
format DevID
VolumeName $100.
FreeSpace Size SIZEKMGt22.1
diskUsed percent.;
retain DevID VolumeName
FreeSpace Size;
input;
if _infile_=:'DeviceID' then
DevID=scan(_infile_,2,':');
else if _infile_=:'FreeSpace'
then FreeSpace=
scan(_infile_,2,':');
else if _infile_=:'Size' then
Size=scan(_infile_,2,':');
else if _infile_=:'VolumeName'
then do;
VolumeName=coalescec(
scan(_infile_,2,':')
,devid);
diskUsed=1-(freespace/size);
output;
end;
run;