Articles of PowerShell

PowerShell脚本收集系统温度

有没有人有他们用来收集系统温度信息的PowerShell脚本? 这不是要取代外部传感器,而是从温度的angular度来监测系统健康的另一种方式。

Active Directorypipe理中心PowerShell

在执行任何function(如Exchangepipe理控制台)时,本机Active Directorypipe理中心(ADAC)不会为您提供powershell替代scheme。 有没有办法改变这个或有一个插件,将显示此?

需要帮助进行ODBC MySQL连接

简洁版本: 如何从PowerShell连接到ODBC 5.1 MySQL驱动程序? 我似乎无法find任何连接string准确地有一个“提供者”字段为这个特定的实例。 (有关示例/错误,请参阅此问题的底部) ===== 长版本: 我不是一个服务器的人,我已经交给了在我们的networking上build立PowerGadgets的任务。 我有一个Linux服务器上运行的MySQL服务器,configuration为远程访问,并有一个用户定义远程访问。 在我的Windows台式电脑上,我安装了PowerGadgets。 我安装了MySQL ODBC 5.1连接器,然后转到“控制面板”>“数据源”,然后build立到数据库的用户DSN连接。 连接,用户和传递似乎是正确的,因为它列出了我的Windows控制面板中的数据库表。 我遇到麻烦的地方是在PowerGadgets的3个地方: select数据源时,我可以select“SQL Server”。 input服务器IP地址不起作用,我不能得到这个选项工作。 select数据源时,可以select“OleDB”。 这个屏幕上有一个向导,似乎为我填充所有正确的信息(包括数据库表名!)。 “testing连接”运行良好。 但是,如果我尝试完成该向导,则会出现错误“OLEDB的.NET Framework数据提供程序不支持ODBC驱动程序的MS Ole DB提供程序”。 select数据源时,可以select“ODBC”。 这个屏幕没有向导,我不能找出一个“连接string”的工作。 通常情况下,它会回应错误“领域”提供者“缺less”。 searchODBC连接string不会透露任何与“提供者”字段的例子,不知道在这里放什么。 上面的连接string(用于#2)包含“SQLOLEDB”作为提供程序,并将该值input到此连接string中时,会得到与#2相同的连接错误。 我相信我可以通过计算#3的连接string来解决我的问题,但不知道从哪里开始。 (PowerGadgets也支持PowerShell支持,但我相信我会遇到同样的问题) == 这是我当前的PowerShell连接不起作用: invoke-sql -connection "Driver={MySQL ODBC 5.1 Driver};Initial Catalog=hq_live;Data Source=HQDB" -sql "Select * FROM accounts" 吐出错误: "Invoke-Sql : An OLE DB Provider […]

交换延期交付:更新消息“date:”标题

客户端正在使用Outlook / Exchange中的“延迟传递”function。 由于某些原因,这个特性不会像RFC-822 Date:头一样保留原始的消息创build时间(即,当用户点击“发送”button时),所以即使消息的传送确实是“延迟”,头仍然承受这是在交付之前已经写好的证据。 我的客户希望将Date:标题设置为消息实际上离开Exchange组织的时间,所以它看起来像是最近编写和发送的。 解决此问题的想法是将所有传出SMTP邮件上的Date:标头设置为Exchange 2007环境中服务器的当前时间。 我知道我可以使用-Action参数设置一个新的Transportrule,设置为Microsoft.Exchange.MessagingPolicies.Rules.Tasks.SetHeaderAction,并定义用不同的值replace“Date”。 但是,我看不到在这里使用像Get-Date这样的函数的dynamic返回值的方法 – Get-Date的结果最好被转换为它在执行new-Transportrule cmdlet时的静态值。 lambdaexpression式/闭包将执行所需的function(即不插入一个静态值,但一个函数指针,并在每次运行重新评估expression式),但据我所知,Powershell不支持这些。 一个丑陋的解决方法将是一个非常频繁的重新定义(如每分钟一次)的传输规则与更新的当前时间,但我想避免这一点,如果一个更优雅的解决scheme是可用的。 任何想法呢? 编辑为了简要说明为什么使用该function:客户想发送包含决定结果的邮件,该结果在某个date之前不能公开。 另外,他还想隐瞒决定时的date/时间,以防止不必要的讨论。 这实际上是MUA的function(Outlook支持这个开箱即用),但服务器支持当然是一个额外的好处,因为即使客户端没有运行,邮件也会被发送。 还有这样的问题:在向服务器发送消息时,MUA设置“Date:”头,服务器在释放等待队列时不会改变它。 Outlook中曾经有两个function执行类似的function – 一个叫做“延期交付”,一个叫做“延期提交”。 显然,后者就是这里所需要的,但是它已经在Outlook 2000中被删除了,并且从未被重新引入 – 可能是因为Outlook团队正试图向苹果学习。

Powershell默认的控制台大小

我正在使用NSCLient在Windows Server框上运行一些NRPE检查。 检查运行Powershell脚本,但我遇到的问题是NSClient 79个字符后添加随机换行符。 我猜这是因为默认的Powershell / CMD控制台宽度是80个字符(这是正确的?),但我需要检查不添加这些新行(他们搞砸了性能数据和Nagios得不安)。 我试过从一个标准的Powershell实例改变控制台的大小,但没有奏效,有什么办法用命令行标志指定控制台的大小? 帮助文件没有多大用处。 我从Nagios的check_nrpe得到的输出的一个例子 vmxnet3 ethernet adapter _2:728.370961294234isatap.{1c6435bc-27c9-452b-a6fe-668^M dced31461}:0| 'Network Usage (Bytes/sec) (vmxnet3 ethernet adapter _2)'=728.370^M 961294234 'Network Usage (Bytes/sec) (isatap.{1c6435bc-27c9-452b-a6fe-668dced31^M 461})'=0 (问题不在于控制字符,Nagios似乎没有注意到它们,但是新的线路本身) Powershell脚本; # # Check Network Usage # #Check for argument variables if ( $($args.count) -lt 2 ) { "Usage: ./check_network.ps1 [warn level] [crit level]" exit 3 […]

如何使用PowerShell注册用户login脚本?

我的公司生产一种医疗器械和运行它的软件。 引擎盖下有一台运行Windows 7的电脑。我正在开发一个进程,以便未经培训的技术人员可以configuration系统并安装我们的应用程序。 我开发了一套PowerShell脚本,并编写了有关如何使用它们的工作说明。 其中一个脚本需要重新启动计算机。 下一个脚本需要在技术人员重新login后(使用服务帐户)手动启动。 我想通过注册第二个脚本来运行用户login来简化这个过程。 我知道有几种机制可以做到这一点 组策略login/注销脚本 启动程序 任务计划程序 但是,我正在寻找一个可以从PowerShellconfiguration的机制(添加和删除脚本是必要的)。 最好从Windows 7和PowerShell的香草安装。 我没有能力安装组策略PowerShell模块 ,所以这个机制已经不存在了。

Exchange 2010 Powershell筛选SMTP域

如何过滤只有SMTP地址? 我只想报告域名为@mydomain.com用户。 所有其他域名将被排除。 我试图运行一个报告,将排除某些基于用户的域的SIP / SMTP地址。 $CheckUser = Get-CsUser -Filter {SipAddress -eq $SIP} $s = 0 While ($CheckUser -eq $null) { $CheckUser = Get-CsUser -Filter {SipAddress -eq $SIP} $s++ If ($s -eq 2000) { $Date = Get-Date –f "MM/dd/yyyy HH:mm:ss" "[$Date] User $EUID did not complete OCS configuration" $ProcessedDateandTime = Get-Date $ProcessedDate = $ProcessedDateandTime.ToShortDateString() $ProcessedTime […]

正则expression式在Powershell上不起作用

背景:我需要在C#源文件中匹配多行模式(?)。 正则expression式将由Powershell操作。 我已经testing过,它在RegexBuddy上运行(使用Dot Matches换行符),但是当我尝试通过powershell使用它时,它不起作用。 正则expression式: [\s]*(?!\/)\[Role.*?\].*?\(.*?\).*?; C#代码: [Role (MethodName ="param")] void doSomething(Param1 Param2); Powershell代码: $FunctionPattern="^[\s]*(?!\/)\[Role.*?\].*?\(.*?\).*?;" $FunctionMatch =[regex]::matches($Data,$FunctionPattern) $FunctionMatch | format-table index,length,value -auto 据此,Powershell使用多行,我必须使用构造(?m),但这是行不通的 提前帮助和感谢! (Opps我不能使用grep /专用的分析器/和findstr不没有hacl等多行,因此需要Powershell)

Lync 2010群聊logging

我的小组正在推出Lync 2010群聊,从文档看来,Lync Server不会logging群聊的实际对话历史logging。 我发现这个嫌疑人,因为如果在给定的聊天频道中启用了对话历史logging,即使在注销时,历史logging仍然存在。 但是,我一直无法find频道logging的存储位置。 是将这些信息写入后端的MSSQL数据库吗? 如果是这样的话,有没有办法把它parsing成.txt或类似的可读格式? (我几乎没有SQL数据库的经验!) 我还想知道,如果有人知道Lync Server的存档服务器angular色是否也将组群聊天中的邮件存档,就像使用Lync一样? Lync和群聊是两个独立的客户,但他们运行在同一台服务器上…

设置一个非常混合的Active Directorynetworking以使用PowerShell远程pipe理

简介:我希望能够监视我的networking上的计算机,但不需要自动化。 我们太小,不能购买像MOM这样的东西,但太大,无法手动做任何事情(两个地方约100台机器)。 我只是不断遇到问题,并想知道是否有一个组策略设置的主列表,我可以分发到我的环境,以获得远程PowerShell的工作。 环境:我们的广告networking相当混杂。 最终用户有XP SP3 , Win 7和Win 7 x64 。 服务器包括Win2k3 SP2 , Win2k8 , Win2k8 x64 , Win2k8 R2和Win2k8 R2 x64 。 详细信息:我试图让它与远程PowerShell一起工作,但我遇到了如下错误: Connecting to remote server failed with the following error message : The WinRM client cannot process the request. Default authentication may be used with an IP address under the […]