博客首页 注册 建议与交流 排行榜 加入友情链接
推荐 投诉 搜索: 帮助

PowerShell

努力做中文最好的Windows PowerShell学习基地 本Blog所发表的所有"原创文章", 除特别说明, 均可转载, 转载请保留作者姓名, 链接. 谢谢
   PowerShell.cublog.cn
关于作者  
联系邮箱:
PowerShellCn<AT>hotmail{DOT}com
PowerShellCn<AT>gmail{DOT}com
PowerShell<AT>163{DOT}com

我的分类  




PowerShell中调用Win32API

调用Win32 API, 取得网络文件夹的剩余空间. 用户无需挂载磁盘即可取得结果

$a = Add-Type -memberDefinition @"
[DllImport("Kernel32.dll")]
public static extern bool GetDiskFreeSpaceEx(
string lpDirectoryName,
out long lpFreeBytesAvailable,
out long lpTotalNumberOfBytes,
out long lpTotalNumberOfFreeBytes
);
"@ -passthru -name MyGetDiskFreeSpaceEx

$fba = [int64] 0;
$tnb = [int64] 0;
$nfb = [int64] 0;
$a::GetDiskFreeSpaceEx("\\.host\Shared Folders\files", [ref] $fba, [ref] $tnb, [ref] $nfb)
"FreeBytesAvailable: $($x)"
"TotalNumberOfBytes: $($y)"
"TotalNumberOfFreeBytes: $($z)"

------------OLD------------

$a = Add-Type -memberDefinition @"
[DllImport("Kernel32.dll")]
public static extern bool GetDiskFreeSpaceEx(
string lpDirectoryName,
IntPtr lpFreeBytesAvailable,
IntPtr lpTotalNumberOfBytes,
IntPtr lpTotalNumberOfFreeBytes
);
"@ -passthru -name MyGetDiskFreeSpaceEx

$fba = [System.Runtime.InteropServices.Marshal]::AllocHGlobal(20);
$tnb = [System.Runtime.InteropServices.Marshal]::AllocHGlobal(20);
$nfb = [System.Runtime.InteropServices.Marshal]::AllocHGlobal(20);


$a::GetDiskFreeSpaceEx("\\.host\Shared Folders\files", $fba, $tnb,  $nfb)


$x = [System.Runtime.InteropServices.Marshal]::ReadInt64($fba)
$y = [System.Runtime.InteropServices.Marshal]::ReadInt64($tnb)
$z = [System.Runtime.InteropServices.Marshal]::ReadInt64($nfb)

"FreeBytesAvailable: $($x)"
"TotalNumberOfBytes: $($y)"
"TotalNumberOfFreeBytes: $($z)"

[System.Runtime.InteropServices.Marshal]::FreeHGlobal($fba);
[System.Runtime.InteropServices.Marshal]::FreeHGlobal($tnb);
[System.Runtime.InteropServices.Marshal]::FreeHGlobal($nfb);

 TAG PowerShell Win32
 发表于: 2008-06-03,修改于: 2008-06-04 20:16 已浏览473次,有评论0条 推荐 投诉

  网友评论

  发表评论



Copyright © 2001-2006 ChinaUnix.net All Rights Reserved

感谢所有关心和支持过ChinaUnix的朋友们
页面生成时间:2.91155

京ICP证041476号