找到相关内容 43
PowerShell2.0之桌面计算机维护(六)修改电源计划
Windows Vista和Windows Server 2008的电源计划有大量改进,可以针对使用电池或交流电供电的情况分别设置。如果当前计算机正在使用电池,那么续航时间是个需要关心的问题。而在某些情况下,计算机的性能才是最重要的。例如,如果电力会在几分钟之后恢复,则不必为延长电池使用时间而降低性能。在不同的电源计划下显示器、磁盘及CPU的电力消耗也不同,在Windows Server 2008
http://www.cyqdata.cn/cnblogs/article-detail-2995 
PowerShell2.0之桌面计算机维护(五)管理桌面电源设置
便携式计算机的供电是个很重要的问题,因其直接关系到便携式设备的可移动性。Windows有多个组件与电源管理的配置策略相关,在Windows Server 2008中的电源策略设置界面如图1所示。 图1 Windows Server 2008中的电源策略设置界面 创建名为“ReportPowerConfig.ps1”的脚本,根据用户提供的如下参数提供相应的电源配置信息。 a:当前主
http://www.cyqdata.cn/cnblogs/article-detail-2993 
PowerShell2.0之桌面计算机维护(四)审核安全的屏幕保护程序
Windows系统需要针对图形界面设置有关选项,如屏幕保护程序、桌面及电源设置等。尽管有很多用户通过组策略方式配置这些选项,但是对于尚未部署活动目录(Active Directory)的企业还是在使用默认的组策略对象,为需要通过PowerShell实现这些功能。 屏幕保护程序也有潜在的安全威胁,如果用户主机中存在大量的用户,则系统管理员逐个查看用户的屏幕保护程序设置是否安全,以及设置是否按照要求
http://www.cyqdata.cn/cnblogs/article-detail-2992 
PowerShell2.0之桌面计算机维护(一)监控磁盘空间
随着时间的增长,系统中的可用空间会越来越少。系统管理员需要清理磁盘,前提是了解系统磁盘空间,为此需要追踪一段时间内的磁盘空间的使用情况。创建名为“QueryOldFiles.ps1”的脚本连接到特定文件夹,并为其中所有超过30天未访问过的文件生成列表,在获得过期文件后可以根据实际情况处理。该脚本的代码如下: function FunWithLine ($strIN) { $num = $st
http://www.cyqdata.cn/cnblogs/article-detail-2820 
PowerShell 2.0管理事件日志(三)管理和创建事件日志
事件日志是操作系统用来保存本身及其他程序信息的工具,本文将会介绍如何通过PowerShell脚本阅读事件日志并创建新的日志条目。Windows系统中包含多种事件日志,在Windows XP系统中包括4种主要的事件日志。即应用程序、系统、安全性及Internet Explorer日志,如图1所示。这样用户可以方便地从系统中提取和查看日志,从而了解系统的当前运行情况。本文将会介绍如何通过PowerShell管理和创建Windows事件日志的方法。 1 管理事件日志 在使用事件日志时需要管理多个组件,其中最重要的是事件日志文件的大小。为了能够包括所需时间内的所有特定系统事件,通常情况下日志文件需要足够大,但是读取过大的文件将会耗费大量的时间。 (1)选择来源 使用事件日志时必须能够知道作为记录使用的日志,为此需要查看事件日志的源是否已经注册,实现这个目的的简单方法是使用WMI类Win32
http://www.cyqdata.cn/cnblogs/article-detail-2629 
PowerShell 2.0管理事件日志(三)管理和创建事件日志
事件日志是操作系统用来保存本身及其他程序信息的工具,本文将会介绍如何通过PowerShell脚本阅读事件日志并创建新的日志条目。Windows系统中包含多种事件日志,在Windows XP系统中包括4种主要的事件日志。即应用程序、系统、安全性及Internet Explorer日志,如图1所示。这样用户可以方便地从系统中提取和查看日志,从而了解系统的当前运行情况。本文将会介绍如何通过PowerShell管理和创建Windows事件日志的方法。 1 管理事件日志 在使用事件日志时需要管理多个组件,其中最重要的是事件日志文件的大小。为了能够包括所需时间内的所有特定系统事件,通常情况下日志文件需要足够大,但是读取过大的文件将会耗费大量的时间。 (1)选择来源 使用事件日志时必须能够知道作为记录使用的日志,为此需要查看事件日志的源是否已经注册,实现这个目的的简单方法是使用WMI类Win32
http://www.cyqdata.cn/cnblogs/article-detail-2619 
PowerShell 2.0管理事件日志(一)查看和读取事件日志
事件日志是操作系统用来保存本身及其他程序信息的工具,本文将会介绍如何通过PowerShell脚本阅读事件日志并创建新的日志条目。Windows系统中包含多种事件日志,在Windows XP系统中包括4种主要的事件日志。即应用程序、系统、安全性及Internet Explorer日志,如图1所示。这样用户可以方便地从系统中提取和查看日志,从而了解系统的当前运行情况。本文将会介绍如何通过PowerShell管理Windows事件日志的方法。 图1 WindowsXP系统的事件日志 1 查看事件日志 在Windows Vista和Windows Server 2008版本中,事件日志的功能能够得到了大量改进和增强。通过使用Get-EventLog cmdlet可以查看事件日志内容,下面是脚本GetEventLogs.ps1的代码: Get-EventLog –List 该脚本可获
http://www.cyqdata.cn/cnblogs/article-detail-2293 
PowerShell 2.0之使用WMI管理Windows(三)获取软硬件信息
管理大型的异构网络非常繁琐,而在本地计算机上用不同的自动化接口,如PowerShell、COM对象,甚至基于.NET的程序管理单独的程序和服务则容易得多。关键是存在于混合网络中的分布式系统,即如何操作防火墙后面的设备。如果它只是一种硬件设备,如路由器,则使用WMI(Windows Management Instrumentation)即可。WMI是协同工作的一系列技术,可以提供网络对象的统一访问形式。并且用其查询服务信息,尤其是各种形式的数据、触发命令,以及改变配置选项 1 查询硬件设备 与Windows内核紧密结合允许于WMI操作多种设备,获取不同计算接和硬件配置的信息,例如,可以通过查询Win32_DiskDirver对象获取系统中当前安装的硬盘,如图1所示。 图1 获取当前系统中安装的硬盘 其中列出了所有驱动器,包括此时所使用的U盘。上面的清单中只包含物理硬盘,如果要获
http://www.cyqdata.cn/cnblogs/article-detail-2256 
PowerShell 2.0之使用WMI管理Windows(三)对WMI对象的语言支持
管理大型的异构网络非常繁琐,而在本地计算机上用不同的自动化接口,如PowerShell、COM对象,甚至基于.NET的程序管理单独的程序和服务则容易得多。关键是存在于混合网络中的分布式系统,即如何操作防火墙后面的设备。如果它只是一种硬件设备,如路由器,则使用WMI(Windows Management Instrumentation)即可。WMI是协同工作的一系列技术,可以提供网络对象的统一访问形式。并且用其查询服务信息,尤其是各种形式的数据、触发命令,以及改变配置选项。 在第2个PowerShell版本中针对WMI对象增加了很多语言增强功能,允许用户使用类似URL的字符串作为WMI对象的别名。 首先介绍将包含WQL查询字符串转换为WMI查询对象,这个类型是[wmisearcher],由此可以引申出ManagementObjectSearcher对象。搜索对象只有一个Get()方法,用于执
http://www.cyqdata.cn/cnblogs/article-detail-2237 
PowerShell 2.0之使用WMI管理Windows(二)PowerShell操作WMI
PowerShell发布之前,标准的操作方法是使用编程脚本API调用一系列COM对象。调用COM客户端代码可以在各种语言中都能使用,只是典型的WMI客户端脚本代码使用VBScript编写,因为这样简单易行。代码会获取CIM对象的实例,并通过WQL查询和获取信息。结果是用标准的foreach循环获得的集合。下例为使用VBS获取winword.exe进程id的winword_pid.vbs脚本,代码如下: strComputer = "." classNamespace = "winmgmts:\\" & strComputer & "\root\cimv2" Set objWMIService = GetObject(classNamespace) query = "SELECT * from W
http://www.cyqdata.cn/cnblogs/article-detail-2180 
PowerShell2.0之与COM对象交互(五)与脚本宿主代码协同工作
网络中存在大量由VBScript和Jscript或者其他Windows脚本宿主相关的语言编写的代码,其中相当一部分用对应语言实现很简短,而且有部分代码甚至不能转换为PowerShell代码。丢弃所有这些代码并且完全使用PowerShell重写很不明智,因此需要在PowerShell中有一种重用Jscript和VBScript脚本的代码方法。 MSScriptControl这个COM对象可以作为脚本环境的宿主,其ProgID是MSScriptControl.ScriptControl。用户可以用其注册并执行代码,使用这个对象作为从PowerShell中调用现有VBScript和Jscript脚本的方法。一旦导入脚本,即可调用其中的函数,传递参数并返回值。 为了示范脚本如何控制对象的操作,下面演示计算文件大小的两个实例,分别是Jscript编写的FileSize.js和VBScirpt编写
http://www.cyqdata.cn/cnblogs/article-detail-2140 
PowerShell2.0之与COM对象交互(四)IE自动化
上一篇文章主要介绍了powershell中通过COM操作Excel,本篇文章中将会着重介绍powershell中通过COM操作IE达到自动化管理的目的。 Internet Explorer浏览器提供基于COM的富对象模型,可以用来编写网站的自动化测试脚本模仿用户操作,如输入文字和单击按钮等并用浏览器创建提交信息的脚本。 能够编程控制Internet Explorer的仍然是application对象,其ProgID是InternetExplorer.Application。完成自动化范例脚本需要的操作步骤如下。 (1)创建Internet Explorer Application对象。 (2)浏览一个URL。 (3)等待浏览器载入文档内容。 (4)操作文档。 (5)通过调用Quit()方法退出Application。 如果Internet Explorer在后台浏览并下载网
http://www.cyqdata.cn/cnblogs/article-detail-1649 
通过PowerShell操作事件日志
管理员能够获取信息的主要来源是事件日志,PowerShell中有专门的Get-EventLog cmdlet处理事件日志。为了获取已存在的事件日志,需要使用-list参数以返回System.Diagnostics.EventLog类型的对象集合。获取这些对象后即可实现任何与系统日志相关联的操作,如下所示: 从下例的输出能够看到当前系统中存在的日志条数: PS C:\PowerShell\AppendixB> get-eventlog -list Max(K) Retain OverflowAction Entries Name ------ ------ -------------- ------- ---- 512 7 OverwriteOlder 486 Application 512 7 OverwriteOlder 0 Internet Explorer
http://www.cyqdata.cn/cnblogs/article-detail-385 
PowerShell 2.0解析、格式化及显示远程输出
由于PowerShell 2.0远程管理的传输是在网络上进行,而对象是不能通过网络进行传递的,为了能够继续将PowerShell所具有的面向对象的优点进行继续保持,PowerShell2.0远程管理传输的过程中是将对象序列化为XML后进行传输,在达到目标主机后在进行反序列化解包,在客户端实现远程到本地端对端的对象传递,然而对象传递的过程中很有可能远程对象的格式化配置文件在本地并不存在,这就可能使传输到本地的输出杂乱无章,并不能体现面向对象的优点,也不方便用户的识别和阅读,最好的解决方法可能就是将远程主机的格式化文件传输到本地,在本地对接收到的对象进行格式化输出。在本文中将会介绍PowerShell远程管理的输出,包括输出是如何从远程主机传输到本地,如何显示以及如何根据自己的需要格式化输出。 1 远程输出问题的引入 首先,看看从远程线程接收的输出有何不同,如果用Invoke-Comm
http://www.cyqdata.cn/cnblogs/article-detail-326 
PowerShell 2.0在远程主机上运行命令和脚本
在前面的文章里关于持久远程线程的讨论中,曾经介绍了如何在本地主机上进入远程线程并执行命令。如果没有显式的终止线程的情况下,用户能在本地计算机上执行远程主机的命令,而PowerShell的提示符能够直接反映当前所使用线程的状况。在本章将会介绍PowerShell的内置特性,这些特性能够使用户在远程主机上运行命令和脚本。 通过使用交互式远程管理可以克服使用Invoke-Command的一些缺点,然而这种方法也是有其局限性的。在交互式远程管理中,用户需要显式的进入或退出远程线程,这就意味着,同时只能连接到一个远程主机上,而且只能访问对应远程主机上的cmdlet和模块。如果需要让不同的cmdlet在不同的主机上都可以执行,这就做不到了。 比如,有两台主机分别各自安装了Exchange 2010和SharePoint 2010,如果用户需要访问两台主机上各自可用的cmdlet,两台主机和本机
http://www.cyqdata.cn/cnblogs/article-detail-279 
PowerShell 2.0 远程管理之启用和执行命令
PowerShell 2.0的远程管理功能很强大,为了方便读者学习这里首先介绍学习环境的设置,便于读者在理解原理的同时有相对形象的体验。在本文中,将会分别介绍了如何启用和禁用powershell的远程管理,以及如何在工作组和混合域环境下配置计算机。以及如何使用Invoke-Command cmdlet用于在远程主机上执行命令,创建持久线程,在多个命令间同一线程传递的变量和参数。用户还可以在执行较费时的命令时以后台任务的形式实现,并在执行完毕后使用命令回调执行结果。 1 启用和禁用远程管理 PowerShell 2.0中能通过在PowerShell提示符下执行下列的cmdlet启用远程管理 PS C:\> Enable-PSRemoting 该cmdlet会向用户询问几个问题如下图1所示 当执行该cmdlet时执行了以下操作,其中包括: 1. 启动或重新启动
http://www.cyqdata.cn/cnblogs/article-detail-260 
觉得PowerBuild语言的clicked方法有问题
PowerBuild语言不怎么流行,因为公司系统的原因开始接触这门语言,至今已有半年。 今天在制作一张发货单的过程中发现了一个问题。在发货单的datawindow的一个checkbox复选框clicked事件中,添加如下代码: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->dw_detail.accepttext()messagebox("",row)if dwo.name="unfinished" then if dw_detail.getitemnumber(row,"unfinished")=1 then dw_detail.deleterow(row) end ifend if     发现datawindo
http://www.cyqdata.cn/cnblogs/article-detail-207 
PowerShell 使用PowerTab加强Tab键自动补全
Windows 2000及其以后版本为cmd命令增加了基本的Tab自动补全功能的支持,PowerShell是微软第1个实现为文件、函数、变量和命令提供了该支持的产品,并且还可以根据需要定制化。在PowerShell中支持通过Tab自动补全功能,以及使自定义函数提供Tab键自动补全名称支持。PowerTab也采用这种方式,并且增加了很多高级特性。 PowerTab是由微软公司名为“Marc van Orsouw”的MVP创建的一个免费工具,它也被称为“/\/\o\/\/”或“PowerShell Guy”。这一工具由一系列脚本组成,将这些脚本嵌入到PowerShell机制中可以提供用户扩展的Tab实现。它通过搜索对象来提供更好的实现建议,包括默认的shell甚至未触及对象,如.NET类型的WMI类名,以及其他对象。该工具还通过提供包含各种建议的下拉框来改善用户体验,默认的Tab扩展允许通
http://www.cyqdata.cn/cnblogs/article-detail-205 
PowerShell操作文件的机制探讨
由程序生成的数据通常会比生成它的程序有更长的存活期,文本文件能够很容易地从一个系统传输到另一个系统。本文将探讨PowerShell操作文件的机制、如何读取不同的数据格式并生成自己的数据,以及如何使用正则表达式从文本块中获取数据。 1 读取内容 在PowerShell中,Get-Content和Set-Content这两个cmdlet分别用于获取和设置原始二进制文件。默认情况下,这两个命令用于操作文本文件。图1所示为使用Get-Content获取文件内容。 Get-Content以行为单位返回一个字符串数组,每个数组元素中包含一行内容。图2所示为返回5个元素的字符串数组的文件内容。 从图中可以看到,返回值为数组形式。如果操作的文件内容为每行一个条目存在,则使得记录操作非常方便。 如果需要获取整个文件内容并转换为一个独立的字符串形式,则使用[string]::Join()静态
http://www.cyqdata.cn/cnblogs/article-detail-189 
Windows PowerShell 2.0语言之扩展类型系统
参与博客评选,欢迎大家为我投上宝贵的一票,谢谢!http://2010blog.51cto.com/274616  本文将简要介绍PowerShell的类型系统,以及内置的类型适配器和类型扩展如何协同工作,以实现所有代码中存在的类型。这里的扩展类型系统不仅仅是对于标准的.NET、COM和WMI对象类型的扩展,也对所有未知扩展公开。可以为活动对象添加属性和成员或者修改类型定义,这样所有该类型的对象都会自动添加新的成员,从而通过为目标对象添加自定义属性和方法来个性化定义运行环境。在学习如何修改对象和类型之前,通常会创建一些操作对象的常用函数,所以必须为函数名添加前缀或后缀以便于辨别函数操作的对象。如果将这些函数改成方法作为扩展类型,即可得到更短的类型名,从而不必记忆过多的函数名。 PowerShell可以灵活地将二进制对象转换为适当格式的文本,这样允许用户将一系列对象转换后填充到表格
http://www.cyqdata.cn/cnblogs/article-detail-155