Articles of PowerShell

监控PowerShell脚本文件安全脚本安全地运行在多用户Access 2003数据库?

我试图监视大小达到2GB时损坏的MS Access数据库文件的大小 。 我发现下面的PowerShell脚本监视文件的大小,然后运行一个命令。 该脚本使用(Get-ChildItem $FilePath).length来确定正在监视的文件的大小。 虽然我想这样做只是一个读取操作,但它将监视多用户MS Access数据库的大小的事实并不真正为读取操作留下空间,所以我想我会问一些更有经验的Powershell用户,如果是这样的话。 我使用Powershell 2,因为这是shell $ Host.Version 输出 : Major Minor Build Revision —– —– —– ——– 2 0 -1 -1 为了方便,这里是powershell脚本的全文: function Test-FileSizeUntil { <# .Synopsis Checks the file size of a given file until it reaches the specified size and creates an action .Description Controls the size of […]

尽pipe运行了sqlserver备份,Powershell(sqlps)的lastbackupdate仍然没有发生变化

我正在使用Powershell检查所有sqlserver数据库的最后备份时间。 这似乎工作得很好,但我有一个问题 如果我运行这个(实际脚本的精简版): dir SQLSERVER:\SQL\Server1\default\databases | select parent, name, lastbackupdate 我得到: Parent Name LastBackupDate —— —- ————– [Server1] ADBA 10/09/2012 21:15:37 [Server1] ReportServer 10/09/2012 21:00:17 [Server1] ReportServerTempDB 10/09/2012 21:00:18 [Server1] db1 10/09/2012 21:15:35 如果我然后运行Server1默认实例的SQL备份,并运行相同的查询,最后的备份date不会更改: PS C:\temp> dir SQLSERVER:\SQL\Server1\default\databases | select parent, name, lastbackupdate Parent Name LastBackupDate —— —- ————– [Server1] ADBA 10/09/2012 21:15:37 [Server1] ReportServer […]

如何通过Powershell远程获取群集信息?

我一直在试图find一个很好的方法来远程收集各种windows群集设置,最好通过WMI,因为我们还没有实现PowerShell远程处理(我知道这个问题消失了)。 我知道我可以使用以下来获取当前节点: Get-WmiObject Win32_ComputerSystem -ComputerName RemoteServer1 | Select Name 我还需要Get-Cluster的名称属性,我无法弄清楚如何从远程系统获取。 有没有什么东西呢,还是应该等到Remoting得到执行? 我是一个新手,所有的事情都集中在一起,只是一个dba,希望能正确地清理我们的服务器。 谢谢你的帮助!

PowerShell脚本来帮助存档公司电子邮件

我试图使用PowerShell来收集与某个主题相关的电子邮件,以便将这些信件交给法律部门。 我在这里有几个问题,我希望得到一些帮助过去。 我运行以下命令: get-mailbox -Database "Mailbox Database" | Export-Mailbox -ContentKeywords "Keywords To Search" -TargetMailbox "sec_goat" -TargetFolder EmailSearch -StartDate "01/13/2011 12:01:00 这已经完成了我想做的事情,并返回了一大堆电子邮件,但它也填充了我的收件箱数百个空白日历和联系人列表。 我意识到现在我应该使用这些文件夹的排除,以及testing环境(我们没有)。 1.如何清理这个脚本,使其不包含与关键字search不匹配的所有空白文件夹,联系人和日历? 2.如何在我的邮箱中清除数百个空白联系人列表和日历,而不用右键单击并删除每个联系人列表和日历? 编辑:我编辑的职位,以改变问题的范围。 我认为我的重点不在于法律观点,更多的是关于“我怎样清理我的烂摊子,让未来的档案减less混乱和痛苦”?

Powershell脚本删除Exchange 2010邮件联系人的辅助SMTP地址

我有几千个Exchange 2010邮件联系人通过默认收件人策略错误地分配了内部SMTP地址。 我试图使用以下命令删除这些地址(保留主SMTP)并禁用从收件人策略的自动更新,以便SMTP地址不会再次被重新创build。 Get-MailContact -OrganizationalUnit "domain.local/OU" -Filter {EmailAddresses -like *@domain.local -and name -notlike "ExchangeUM*"} -ResultSize unlimited -IgnoreDefaultScope | foreach {$contact = $_; $email = $contact.emailaddresses; $email | foreach {if ($_.smtpaddress -like *@domain.local) {$address = $_.smtpaddress; write-host "Removing address" $address "from Contact" $contact.name; Set-Mailcontact -Identity $contact.identity -EmailAddresses @{Remove=$address}; $contact | set-mailcontact -emailaddresspolicyenabled $false} }} 虽然我收到以下错误: 您必须在“类似”运算符的右侧提供值expression式。 […]

发送邮件事件日志错误触发安全检查频率

我想使用PowerShell来提醒我,当我的新的Win2k12标准服务器上的事件查看器发生错误时,我想我可以让脚本每10分钟执行一次,但不想在服务器上施加任何压力,只为事件日志检查,这里是我想要使用的powershell脚本: $SystemErrors = Get-EventLog System | Where-Object { $_.EntryType -eq "Error" } If ($SystemErrors.Length -gt 0) { Send-MailMessage -To "[email protected]" -From $env:COMPUTERNAME + @company.co.nz" -Subject $env:COMPUTERNAME + " System Errors" -SmtpServer "smtp.company.co.nz" -Priority High } 什么是安全的频率我可以运行这个脚本,而不会伤害我的服务器? 硬件: Intel Xeon E5410 @ 2.33GHz x2 32GB内存 3x 7200RPM S-ATA 1TB(2x RAID1) 编辑: 在Mathias R. Jessen的回答的帮助下,我最终用一个脚本附加了一个事件到应用程序和系统日志中: Param( [string]$LogName […]

隐藏的文件共享上的Powershell脚本不能在工作站上访问

我们在隐藏的共享文件夹\\Server\Share$上有一个PowerShell脚本script.ps1 。 我们有一个bat文件Initiator.bat ,它执行脚本。 batch file的快捷方式放在用户的桌面上,这是他们运行的地方。 一切工作正常与正常共享,但是当我通过在最后一个$将共享更改为一个隐藏的共享远程执行不起作用,即使我已经更新的快捷方式。 它甚至不会给出错误,它只是显示一个命令窗口。 如果$从共享中删除,它立即生效。 我应该使用不同的语法? 我如何使这些脚本在隐藏的共享上工作和执行?

有多个参数的PowerShell调用运算符?

我正在尝试使用powershell调用操作符本质上运行以下命令: “C:\ Program Files(x86)\ PuTTY \ plink.exe”“-v -agent -m C:\ Scripts \ idrac_powerup_commands.txt root @ [servername]” 当前代码 $runputtyscript = @() $runputtyscript += "-v" $runputtyscript += "-agent" $runputtyscript += "-m C:\Scripts\idrac_powerup_commands.txt" & 'C:\Program Files (x86)\PuTTY\plink.exe' $allArgs root@servername 问题 这是执行,但脚本不会执行该命令相同的,如果从命令行执行原始string的文件。它显示我的pipe理控制台(所以它已经login,使用公钥进行身份validation等),但它只是没有运行我要求它运行的脚本。 我试过的东西 将-m的文件名组件移到它自己的参数 将引号放在-m的文件名组件中 题 也许更简洁的方式问 :什么是适当的方式来使用参数,然后有自己的参数(例如“-m [文件名] -v -a”与调用运算符(&)在PowerShell中?

从Powershell和事件日志查看器采取事件日志之间的差异

域控制器操作系统 – Window Server 2008 R2 请参阅附加的第一个PrintScreen(Powershell.png)。 在Powershell命令的帮助下,我正在尝试检查DC的事件日志。 请注意红色矩形彩色框。 失败原因:%% 2313“ 但同样的日志,如果我从事件查看器(第二个打印屏幕附加 – EventViewer.png)检查相同的事件ID,在这里它清楚地显示“失败的原因:未知的用户名或密码错误” 为什么与Powershell相同的事件ID显示失败的原因与一些语法和Windows的事件查看器日志,它显示正确?

Powershell – 如何启动 – 使用ActiveDirectory凭据进行作业

我的客户端使用ActiveDirectory控制对数据库的访问。 我想要做以下事情: $cred = Get-Credential Start-Job -Credential $cred { #do some stuff with the db } 这适用于任何本地用户,但在vpn上并input我的ActiveDirectory凭据时无法进行身份validation。 我知道我可以使用runas作为ActiveDirectory用户启动进程,只要我提供/netonly标志(否则不起作用)。 我认为以下可能会有所帮助 $cred = (Get-Credential).GetNetworkCredential() 但生成的对象不能转换为PsCredential ,这是-Credential参数的作用。 与此有关的这个问题,但似乎我可能一直在问错的东西。