Articles of PowerShell

如何修改远程桌面的Azure VM防火墙规则

在Azure虚拟机上,我编辑了Windows防火墙规则“RemoteDesktop-UserMode-In-TCP”,以便只允许我们的远程IP地址访问。 为了做到这一点,我还必须select一般>行动>允许连接,如果它是安全的。 由于某种原因,尽pipe提供了正确的IP地址,但连接断开,我无法login。 我已经尝试http://www.hanselman.com/blog/CSIReenablingRemoteDesktopWithPowerShellAfterYouveBlockedItWithYourOwnFirewallRule.aspx中的步骤无济于事。 如何从Azure Powershell中删除/重新创build默认的RDP防火墙规则?

创build有效的启用邮件的联系人,而不使用Exchange特定的cmdlet

我已经写了一个powershell脚本来定期处理并将大量(超过70k)的联系人导入到Exchange环境中。 脚本工作正常,但我想尽可能加快速度。 用于导入和导出数据的最耗时的部分。 通过删除Exchange 2013 cmdlet上的大部分依赖关系,我能够缩短大量处理时间。 例如,使用“本机”Get-ADObject cmdlet来提取数据,而不是Exchange特定的Get-MailContact和Get-Contact的组合,我能够将处理时间缩短10倍。 该命令如下所示: $result = Get-ADObject -LDAPFilter "(objectClass=contact)" -searchBase "$OU" -ResultPageSize 100 -property GivenName, SN, DisplayName, Department, physicalDeliveryOfficeName , telephoneNumber, mailnickname, targetaddress | select @{ label="Email"; Expression={ ($_.targetaddress -replace "^SMTP:","").tostring().Tolower().Trim() }}, @{ N="Alias"; E={ $_.mailnickname} }, @{ N="FirstName"; E={ $_.GivenName} }, @{ N="LastName"; E={ $_.SN} }, DisplayName, @{ N="Office"; […]

如何在Windows Server 2012 R2上使用IISpipe理命令行程序?

我正在尝试在Windows Server 2012 R2计算机上使用IISpipe理命令行程序(如Get-IISSite)。 我已经安装了IIS服务器和所有的IISpipe理工具angular色,并重新启动了服务器。 但是,当我以pipe理员身份打开PS命令行时,commandlet仍然丢失: PS C:\Users\Administrator> get-command *iis* CommandType Name ModuleName ———– —- ———- Function IIS: WebAdministration Application iisreset.exe PS C:\Users\Administrator> 我究竟做错了什么? 编辑 :我也已经尝试了一件事(没有任何运气): PS C:\Users\Administrator> Import-Module webadministration PS C:\Users\Administrator> get-command *iis* CommandType Name ModuleName ———– —- ———- Function IIS: webadministration Application iisreset.exe PS C:\Users\Administrator>

WMIC命令的作品,但在PowerShell脚本不起作用

#Get Data Rate wmic "/OUTPUT:'C:\Users\user\Documents\DATE RATE\Data_Rate-ts8"+".txt" nic where 'NetEnabled = True' 'get Name,MacAddress,Speed'" 在控制台中直接运行这个工作。 这只是因为在控制台中,我可以这样做: ps C:\>wmic wmic:root\cli>/OUTPUT:"C:\Users\user\Documents\DATE RATE\Data_Rate-ts8"+".txt" nic netenabled ="True" wmic:root\cli>exit ps C:\> 在powershell脚本中,我不能简单地inputWMIC,然后input命令的其余部分,或者通过inputWMIC提示符来中断脚本,等待用户键入并不再执行脚本。 当我把它放在一个PowerShell脚本(第一个片段),我不断得到: 找不到别名 我已经尝试了不同的引号组合。 但是我上面贴的脚本专门给我: “/ OUTPUT:'C:\ Users \ user \ Documents \ DATE RATE TESTS \ Data_Rate-ts8'+'。txt'nic其中'NetEnabled = True''get Name – Alias not found。

Azure:启动或closures多个虚拟机的脚本

是否可以编写和保存某种脚本来启动Azure PowerShell,然后validationAzure订阅,然后一步启动/closures多个虚拟机? 我有5个虚拟机,我经常在特定的计划时间使用,所以我不想做login到Azure门户的步骤,逐个启动虚拟机,然后同样closures虚拟机,每次我需要使用它们! 我需要自动化这个过程。

Azure资源pipe理器使用PowerShell安全规则实现

我一直在试图通过PowerShell推动Azure NetworkSecurityGroup规则。 使用控制台,我似乎能够创build我想要的,但是使用PowerShell,我没有什么成功。 使用以下语法: Get-AzureRmNetworkSecurityGroup -Name $SecGroup -ResourceGroupName $RGName | Set-AzureRmNetworkSecurityGroup | Add-AzureRmNetworkSecurityRuleConfig -Name 'MSTSC' -Direction Inbound -Priority 100 -Access Allow -SourceAddressPrefix 'INTERNET' -SourcePortRange '65456' -DestinationAddressPrefix '*' -DestinationPortRange '3389' -Protocol '*' 我得到一个输出窗口似乎表明安全规则已经创build: 但是,如果我然后检查门户,或者做 Get-AzureRmNetworkSecurityGroup -Name $SecGroup -ResourceGroupName $RGName 新增的规则不在那里。 但是,如果我添加规则与门户,并尝试使用我的PowerShell命令创build它,我收到以下错误: Add-AzureRmNetworkSecurityRuleConfig:具有指定名称的规则已经存在 我错过了什么,但什么?

生成上次login报告交换服务器phellhell

在shell中使用此命令get-MailboxStatistics -Server servername | Select-Object DisplayName | Sort LastLogonTime -Descending | Export-csv c:\export.csv get-MailboxStatistics -Server servername | Select-Object DisplayName | Sort LastLogonTime -Descending | Export-csv c:\export.csv 我能够生成显示名称的最后一次login的完整报告。 但我也需要一个列显示最后一个用户访问邮箱,因为我们有一些邮箱与许多用户共享这可能吗?

find陈旧/不活跃的Exchange邮箱

希望有人可以帮助/这是一个容易解释的问题,但基本上我正在寻找邮箱在我们的Exchange 2010环境中还没有login到超过x天/一定的时间。 我已经find了几个PowerShell脚本在线,通过查看邮箱统计信息的最后一次login时间属性,似乎工作,但是当我尝试导出(甚至只是在PowerShell中显示结果),似乎有很多的邮箱(但不是全部)不显示lastlogontime的任何信息 – 这只是空白。 我使用的一个脚本例如下面,但是想知道是否有人可能有更好的方法来find这些信息,或者知道为什么这些结果不是按预期生成的? 提前感谢您的帮助,您可以提供! Get-Mailbox -ResultSize Unlimited | Get-MailboxStatistics | Where{$_.Lastlogontime -lt (Get-Date).AddDays(-90)} | Select DisplayName, LastLoggedOnUserAccount, LastLogonTime | Export-csv C:\Temp\InactiveUsers.csv

在Win2008 R2服务器上从Powershell获得网卡速度

我试图通过我的一些服务器上的Powershell获得网卡的速度。 对于我的实验室服务器,我知道那里有一个1GB的网卡。 但是,当我通过Powershell做到这一点时,我得到了下面的奇怪的数字: Get-WmiObject -Class Win32_NetworkAdapter -filter "Name LIKE '%Intel%' OR Name LIKE '%HP%' OR Name LIKE '%Broadcom%'" | select name, speed | ft -AutoSize name speed —- —– Intel(R) 82580 Gigabit Network Connection 9223372036854775807 我回来的速度是“ 9223372036854775807 ” – 我在Win32_NetworkAdapter检查了速度的WMI属性,它返回“ Bits per second ” – 但是,在转换时,这看起来像每秒超过1GB? 任何想法,为什么我回来这也是确定网卡速度的最佳方式(并确认它绝对是1GB)? 因为我有很多服务器 – 如果您有任何想法,我真的很想知道获取这些信息的最佳方式。

检查服务帐户是否具有login交互权限

我想遍历所有域名服务帐户,并确保用户无法使用该帐户login服务器。 如何检查服务帐户是否具有交互式login权限和/或远程login权限? 它们不是托pipe服务帐户,因为它们在多个服务器上用作服务帐户。 我尝试了gpresult /s myservername /user myusername /h gpreport.html但是我不太了解这个报告。 有一个部分: Security Group Membership when Group Policy was applied MYDOMAIN\Domain Users Everyone BUILTIN\Users BUILTIN\Administrators NT AUTHORITY\REMOTE INTERACTIVE LOGON NT AUTHORITY\INTERACTIVE 这最后2是什么让这个用户login到服务器? 还是有一个组策略,我可以检查并寻找使用命令行?