• 【玛沁天气】最新玛沁今天天气,实时提供玛沁气温、空气质量、24小时天气预报、生活指数查询 2019-07-24
  • 安徽快3派奖热销 宿州彩民一天两趟忙兑奖 2019-07-24
  • 宜昌朝天吼景区举行国际龙舟漂流大赛 2019-07-10
  • 中国大学生帆船锦标赛大鹏启航 2019-07-10
  • 党的十九大举行第一场记者招待会 介绍加强党建工作和全面从严治党有关情况 2019-07-02
  • 中华人民共和国安全生产法 2019-07-02
  • 网络司法拍卖若违法 当事人受损可申请国家赔偿 2019-07-01
  • 火箭3巨头计划选詹皇or乔治?泡椒3点更兼容灯泡 2019-07-01
  • 世界30座顶级建筑美轮美奂令人叹服 ——凤凰网房产 2019-06-25
  • 端午假期要来了!收藏这份指南,避开人山人海 2019-06-18
  • 华为新平板!MediaPad M5 将配麒麟 960 2019-06-16
  • 【中国梦·大国工匠篇】鸡蛋上钻孔显真功 潜心坚守一线练就绝活儿 2019-06-11
  • 【理上网来·喜迎十九大】塞尔维亚驻华大使:中国的发展是其他国家望尘莫及的 2019-06-10
  • 六大工程培育发展新动能 2019-06-10
  • 为推动上合组织发展提供中国智慧、中国方案 2019-05-29
  • 批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程
    [批处理文件精品]批处理版照片整理器[批处理文件精品]纯批处理备份&还原驱动在线第三方下载
    返回列表 发帖

    广东11选五推荐号码:[转载教程] 玩转PowerShell之(1)检测硬盘自由空间

    玩转PowerShell之(1)检测硬盘自由空间//bbs.bathome.net/thread-27008-1-1.html
    玩转PowerShell之(2)计算篇//bbs.bathome.net/thread-27010-1-1.html
    玩转PowerShell之(3)命令执行结果//bbs.bathome.net/thread-27011-1-1.html
    玩转PowerShell之(4)email篇//bbs.bathome.net/thread-27012-1-1.html
    玩转PowerShell之(5)偷偷下载//bbs.bathome.net/thread-27013-1-1.html
    玩转PowerShell之(6)数据库篇//bbs.bathome.net/thread-27014-1-1.html
    玩转PowerShell之(7)图形菜单//bbs.bathome.net/thread-27016-1-1.html
    玩转PowerShell之(8)email篇续  - 把gmail当相册//bbs.bathome.net/thread-27017-1-1.html
    玩转PowerShell之(9)DNS//bbs.bathome.net/thread-27018-1-1.html

    玩powershell已经有几天,发现它实在是太好用了!兄弟们,别在vbs和批处理上费劲了,这边有特别省力的方法??!
    今天开始,逐步推出原创的 玩转PS系列,主要针对管理员的日常管理任务,谈谈在PS上,怎么实现。

    第一个任务,检查服务器上面硬盘的自由空间!

    首先让我们看看在vbs下面是怎么实现的,下面代码是我从微软脚本中心copy来的。
     广东十一选五计划软件 www.qe-ar.com 
    1. Const HARD_DISK = 3
    2. strComputer = "."
    3. Set objWMIService = GetObject("winmgmts:" _
    4.     & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    5. Set colDisks = objWMIService.ExecQuery _
    6.     ("Select * from Win32_LogicalDisk Where DriveType = " & HARD_DISK & "")
    7. For Each objDisk in colDisks
    8.     Wscript.Echo "DeviceID: "& vbTab &  objDisk.DeviceID
    9.     Wscript.Echo "Free Disk Space: "& vbTab & objDisk.FreeSpace
    10. Next
    复制代码
    注意strComputer = "."这句话,其中的点代表检查本地计算机,如果换成其他服务器的名字,就可以检查远程计算机了。

    好了用PS如何做呢?
    首先我们把上面那个select语句抄下来,稍加改动,就是PS的格式
    $query="Select * from Win32_LogicalDisk Where DriveType = '3'"
    看着比vbs简单吧? 注意我把hard_disk换成了数字3,省去了再定义个变量的麻烦。
    然后我们就可以直接用PS下面的gwmi (全名为get-wmiobject)命令来进行检测了
    $disks = gwmi -query $query
    简单吧,上面的命令检测本地计算机的逻辑硬盘,把结果放到$disks变量里面去,如果检测远程计算机呢?把上面的命令改成
    $disks = gwmi -query $query -computer "remotepc"
    其中remotepc应该是你要检测的远程计算机名字。
    下面我们如何查看$disks里面的内容呢?
    你可以直接打$disks
    会给你一个列表类似这样。
    DeviceID     : C:
    DriveType    : 3
    ProviderName :
    FreeSpace    : 14351843328
    Size         : 31453437952
    VolumeName   :

    DeviceID     : E:
    DriveType    : 3
    ProviderName :
    FreeSpace    : 1361903616
    Size         : 5388038144
    VolumeName   : New Volume

    不太好看哦,我们只需要看看deviceid 和 freespace就可以了。好了运行这一句
    $disks | select deviceid, freespace
    之后,结果类似下面

    deviceid                                                              freespace
    --------                                                              ---------
    C:                                                                  14351843328
    E:                                                                   1361903616
    好看多了吧?
    我觉得还是不够,我想看到freespace的大小是gb或者mb而不是上面的那个样子。
    我们做一个简单的除法就可以了。试试下面的命令
    foreach ($disk in $disks)
    {
    "DiviceID - " + $disk.deviceid
    "FreeSize(GB) - "+($disk.freespace/1gb)
    }
    结果就变成
    DiviceID - C:
    FreeSize(GB) - 13.3661956787109
    DiviceID - E:
    FreeSize(GB) - 1.26837158203125

    呵呵够精确吧?在PS下面,把 数字转化成mb或gb是非常方便的,不需要你1024,1024的除,只要直接除1gb或1kb或1mb就可以了!

    让我们最后总结一下上面的命令
    1. $query="Select * from Win32_LogicalDisk Where DriveType = '3'"
    2. $disks = gwmi -query $query
    3. foreach ($disk in $disks)
    4. {
    5. "DiviceID - " + $disk.deviceid
    6. "FreeSize(GB) - "+($disk.freespace/1gb)
    7. }
    复制代码
    比较一下vbs的代码,哪个更方便呢?

    好事儿做到底,再加点儿功能,想列出多台计算机的信息咋办?
    不急,先建立一个变量,假设你有三台服务器,名字是server1,server2,server3
    1. $servers= "server1","server2","server3"
    复制代码
    然后把上面的代码改写成
    1. $query="Select * from Win32_LogicalDisk Where DriveType = '3'"
    2. foreach ($server in $servers)
    3. {
    4. "Servername - " + $server
    5. $disks = gwmi -query $query -computer $server
    6. foreach ($disk in $disks)
    7. {
    8. "DiviceID - " + $disk.deviceid
    9. "FreeSize(GB) - "+($disk.freespace/1gb)
    10. }
    11. }
    复制代码
    //bbs.winos.cn/thread-25982-1-1.html

    看了大半天的帖子,感觉需要记忆的东西太多啦

    TOP

    段落用 list 排版缩进一下,会比较好阅读
    综合型编程论坛
    Writing Code That Nobody Else Can Read.

    TOP

    回复 3# 523066680


        下意识看了下发帖时间,论坛这个版块还没逛过~几乎没人

    TOP

    这贴居然没人回,不科学

    TOP

    本帖最后由 wrove 于 2018-7-22 02:43 编辑

    现在微软不是转向提倡使用CIM来替代WMI么,功能一样,但cim相关的cmdlets支持要好得多,比如一些参数的自动完成,Tab补全等

    上面的应用可以写成:
    1. Get-CimInstance -ClassName Win32_LogicalDisk -Filter "DriveType = '3'"
    复制代码
    或者:
    1. Get-CimInstance -Query "Select * From Win32_LogicalDisk Where DriveType = '3'"
    复制代码
    或者【如果你要查询的对象惟一的话,通过Property限定,指向惟一对象】:
    1. $x = New-CimInstance -ClassName Win32_LogicalDisk `
    2.     -Property @{ DeviceID = 'C:' } -Key DeviceID -ClientOnly
    3. Get-CimInstance -InputObject $x
    复制代码

    TOP

    get-volume不能用吗

    TOP

    返回列表
  • 【玛沁天气】最新玛沁今天天气,实时提供玛沁气温、空气质量、24小时天气预报、生活指数查询 2019-07-24
  • 安徽快3派奖热销 宿州彩民一天两趟忙兑奖 2019-07-24
  • 宜昌朝天吼景区举行国际龙舟漂流大赛 2019-07-10
  • 中国大学生帆船锦标赛大鹏启航 2019-07-10
  • 党的十九大举行第一场记者招待会 介绍加强党建工作和全面从严治党有关情况 2019-07-02
  • 中华人民共和国安全生产法 2019-07-02
  • 网络司法拍卖若违法 当事人受损可申请国家赔偿 2019-07-01
  • 火箭3巨头计划选詹皇or乔治?泡椒3点更兼容灯泡 2019-07-01
  • 世界30座顶级建筑美轮美奂令人叹服 ——凤凰网房产 2019-06-25
  • 端午假期要来了!收藏这份指南,避开人山人海 2019-06-18
  • 华为新平板!MediaPad M5 将配麒麟 960 2019-06-16
  • 【中国梦·大国工匠篇】鸡蛋上钻孔显真功 潜心坚守一线练就绝活儿 2019-06-11
  • 【理上网来·喜迎十九大】塞尔维亚驻华大使:中国的发展是其他国家望尘莫及的 2019-06-10
  • 六大工程培育发展新动能 2019-06-10
  • 为推动上合组织发展提供中国智慧、中国方案 2019-05-29
  • 河南快三走势图查询表 美女娱乐城贴图论坛 江西快三一定牛网 黑龙江快乐扑克牌秒杀 河南快3开奖结果走势图 幸运农场攻略 p3试机号天吉网 河北快3走势图130725 河北十一选五预测 七星彩走势图综合板版 4场进球彩去哪里兑奖 浙江20选5风采网 浙江大乐透7000万大奖 梅西c罗总进球数 福彩3d中彩网