Articles of PowerShell

在WAN上运行点对点networking速度testing的好方法是什么?

我想监视两个办公室之间的WAN速度,并且能够安排它在一天的特定时间运行。 我想以最简单的forms,这只是一个点到点的副本,但我想自动化,所以我可以安排它在特定的时间运行。 那里有工具吗? 我也想知道如何使用Powershell。

默认情况下,Exchange 2010将对通讯组禁用身份validation

我知道这是违背最佳做法的,但是我一直无法find一种方法在Exchange 2010上创build新的通讯组时将其设置为默认设置。我知道如何从EMS和PowerShell中为单个组执行此操作(或运行脚本改变一切),但我希望它在初始创build时默认执行。

HTML在PowerShell发送的电子邮件中不能正确显示

我有一个脚本,它在HTML页面上的所有服务器上显示磁盘空间,并且从保存的HTML文件的内容并排发送电子邮件。 HTML文件是完美的,并且电子邮件在HTML文件中显示相同的表格信息。 但是,这些表格在电子邮件中重叠。 代码如下: $freeSpaceFileName = "c:\script\FreeSpace.htm" $serverlist = "c:\script\computers.txt" $warning = 50 $critical = 30 New-Item -ItemType file $freeSpaceFileName -Force # Getting the freespace info using WMI #Get-WmiObject win32_logicaldisk | Where-Object {$_.drivetype -eq 3} | format-table DeviceID, VolumeName,status,Size,FreeSpace | Out-File FreeSpace.txt # Function to write the HTML Header to the file Function writeHtmlHeader { […]

如何检查特定的IP地址,如果不存在则更改它?

我试图testing一个特定的IP地址,然后改变它,如果它不在Powershell中。 我不知道我的代码有什么问题: if($wmi.ipaddress -ne "10.0.0.15") {$wmi = Get-WmiObject win32_networkadapterconfiguration -filter "ipenabled ='true'" $wmi.EnableStatic("10.0.0.15", "255.255.255.0") $wmi.SetGateways("10.0.0.1", 1) $wmi.SetDNSServerSearchOrder("127.1.1.12")}

Powershell在哪里对象的速度提高

我想从运行Windows Server 2012 R2的DHCP服务器获取DHCP预留的列表。 该列表应包含IP,MAC,名称,描述和预约的租约状态(仅用于检查客户端是否在线)。 我知道有一个CMDLet来获得保留。 $IP_res = (Get-DhcpServerv4Reservation -ComputerName $env:COMPUTERNAME -ScopeId 10.10.0.0) 结果不包含租约状态。 但是还有另外一个CMDLet来获取它: $IP_lease =(Get-DhcpServerv4Lease -ComputerName $env:COMPUTERNAME -ScopeId 10.10.0.0) 现在我的想法是build立一个自定义对象,其中包含我需要的所有属性。 $save = New-Object System.Collections.Generic.List[System.Object] foreach($line in $IP_res) { $new_IP_Obj = "" | Select IP, MAC, Name, Description, LeaseStatus $var = $IP_lease | Where-Object {$_.ClientId -eq $line.ClientId } $new_IP_Obj.IP = $line.IPAddress.IPAddressToString $new_IP_Obj.MAC = $line.ClientId […]

如何使用代理工具在现有的Azure虚拟机上安装AV?

如果我已经部署了虚拟机,如何使用VM代理从Azure市场(即McAfee)安装防病毒软件? 必须有一些Powershell的命令或一些东西,但我试过的一切都没有奏效。

活动目录:跟踪旧的密码更改和失效date?

有无论如何找出最后2个密码更改是为了一个帐户? 我重置一个帐户密码,但我想知道它是否已经改变了几个小时或几分钟之前,我重置。 或者也许找出它应该到期的时间? 现在,我已经重置了它,我只能获取下一个过期date和我通过PowerShell改变它的时间。

在通过远程模块运行命令和在powershell中执行Invoke-Command之间的区别

我正在试图清理一些我们已有的脚本,并遇到了一个有趣的问题。 如果我使用以下来加载远程模块(在这种情况下ActiveDirectory): $cred= Get-Credential $session= New-PSSession -ComputerName dc1 -Credential $cred Invoke-Command -ScriptBlock {Import-Module ActiveDirectory} -Session $session Import-PSSession -Session $session -module ActiveDirectory -Prefix Rem 使用New-RemADUser -samaccountname $samname -etc创build一个新的用户帐户一切都按预期工作。 但是,如果我尝试将其放入函数中,而没有错误,则不会创build新帐户。 例: function newuser{ param([string]$givenname,[string]$surname,$etc) New-RemADUser -GivenName $givenname -SurName… } $gname= Read-Host "Given name" … newuser($gname,$sname,$samname) 所以我的问题是,该函数可以不查看New-RemADUser cmdlet,尽pipe它运行在相同的脚本范围内? 我将不得不使用Invoke-Command -Session $ session New-ADUser …为了使函数工作? 或者是有一些最好的做法或显而易见的原因,我最初的方式来尝试它不会工作(值不正确,远程命令不存在,在function内,等)。

复制项目与多个filter

我怎样才能使用复制多个filter值? 例如,如果我只指定1个值来过滤(* .jpg) Copy-Item -Path Y:\TEST -Recurse -Filter *.jpg -Destination D:\Users\MS5253\Desktop\Lots 这创build了一个文件夹(D:\ Users \ MS5253 \ Desktop \ Lots \ TEST),其中只包含jpg文件 但我也想过滤XML文件,我试过这个: Copy-Item -Path Y:\TEST -Recurse -Filter *.jpg,*.xml -Destination D:\Users\MS5253\Desktop\Lots 这给我一个错误。 和这: Copy-Item -Path Y:\TEST -Recurse -include "*.jpg","*.xml" -Destination D:\Users\MS5253\Desktop\Lots 它不工作… 感谢您的帮助,我正在使用Windows 7与Powershell v4。

大量转发用户邮箱电子邮件到同名的邮件联系人。 需要powershell命令来这样做

我有两个OU的用户,每个用户在一个单独的OU中都有一个具有相同名称的邮件联系人。 所以Jane Doe会通过[email protected]电子邮件进入Staff \ OU1。 Mike Doe将通过[email protected] \ OU2。 然后在OU Contacts \ Staff中,他们每个人都会有一个联系人,他们的姓名和[email protected]的电子邮件地址。 我需要将OU1和OU2中的所有用户电子邮件转发到contacts \ staff OU中的联系人。 另外我需要邮件去他们的邮箱和联系电子邮件。 有没有在PowerShell中的语法会为我做这个?