Articles of PowerShell

当-WarningAction似乎不起作用时,如何从Exchange Set-Mailbox中取消“黄色文本”?

我正在进行批量导入,设置或更新AD中1,000个用户的属性6。 我正在使用以下Exchange命令行程序来完成此操作: [PS] C:\>set-mailbox -Identity [email protected] -CustomAttribute6 [email protected] -WarningAction:SilentlyContinue -ErrorAction SilentlyContinue 上述命令重复1000次,自动生成。 我的问题是,我想生成一个错误列表,我可以反馈到上游来解决错误,如: 缺less用户 用户不明确 设置属性失败。 我想要消除的是以下文字: 警告:该命令已成功完成,但未修改“company.com/Enterprise/Users/last,first”的设置。 我试过的是设置下面的-WarningAction:SilentlyContinue -ErrorAction SilentlyContinue 似乎Exchange命令行不支持这一点,或者可能是因为Exchange Powershell命令行工具使用“远程处理”存根可能会使error handling复杂化。

检查SCOM 2012上的pipe理服务器

我们必须检查pipe理服务器的大约400台机器,因为我们已经从SCOM 2007移到了2012,我们需要检查旧的SCOM 2007服务器是否仍然被指向。 在个人服务器上,我看到以下内容: 我正在通过打开c:\program files\system center Operations management\agent下的AgentControlPanel.exe在c:\program files\system center Operations management\agent上检查个别服务器。 我希望有一个PowerShell的方法来解决这个问题,但我没有太多的乐趣,谷歌。

修改CIFS共享ACL的

我想修改许多NetApp CIFS份额(超过100个)的权限。 这些是用户共享,每个共享拥有与“更改”共享权限不同的用户,此权限现在需要“完全控制”。 我也需要能够为这些股份添加一个新的组,并给这个组“完全控制”,最后我需要删除一个已经被授予股权的组。

脚本为Office 365中的公用日历

我们有大约10名现场技术人员做中断工作。 我想创build一个统一的日历,显示所有的约会的一天,一周和一个月,而不必手动填充。 我们在Office 365中使用完全托pipe的Exchange,不再有内部邮件服务器。 你如何build议完成这个/什么是最合乎逻辑的实现? 如果我无法创build单个统一日历,是否可以使用PowerShell生成包含此信息的报告?

通过LDAP获取AD组的成员间接成员的列表

我在LDAPsearch方面遇到了一些问题,应该指定用户是否是给定AD组的成员(recursion)。 基本上,我正在做的是使用以下参数发出LDAPsearch: get-aduser -LDAPFilter "(memberof:1.2.840.113556.1.4.1941:={group LDAP path})" -SearchBase "{AD LDAP base}" 这确实会产生预期的结果:而不是直接或间接地获得所有正在search的用户组,我得到该组的所有直接成员,以及随机select的间接成员(成员组成员search到的组)。 我得到的列表似乎是任意的:我不能find两个用户之间的组成员身份的任何差异,应该出现在结果集中,但一个是在那里,另一个不是。 (我需要用LDAPsearch解决这个问题,因为结果将被用在应用程序中,而不是通过PowerShell,但是通过这种方式使用PowerShell,我可以用上述方法重现原来的问题)。

循环Get-ReceiveConnector来获取多个接收连接器

这是在运行Exchange2010的Windows 2008R2服务器上。 我想使用PowerShell和“Get-ReceiveConnector”从大约20个configuration的接收连接器中获取信息。 最终,我们正在迁移到不同的交换服务器,所以我的目标是将它们导出到文本,然后再导入它们。 这篇文章: http : //terenceluk.blogspot.com/2010/11/how-do-i-exportimport-exchange-20072010.html提供了一些从单个接收连接器拉数据的好信息,但我想用foreach或类似的东西循环通过特定服务器上的所有接收连接器 – 我只是不知道该怎么做。 谢谢!

PowerShell脚本,远程执行另一个PowerShell

这是一个很长的故事,但我需要创build一个SQL触发器,远程执行一个脚本,远程执行另一个脚本(是的,我知道)。 我正在使用PowerShell。 我已经开始了: Get-Service –Name “service” –ComputerName “Server2” | Set-service –Status Stopped Get-Service –Name “service” –ComputerName “Server2” | Set-service –Status Running 这工作得很好。 然后,将在触发器上执行的脚本: Invoke-Command –computername “cluster” –command {d:\adminscripts\RestartServer2Service.ps1} (是的,我使用NLB群集,它正在阅读脚本) 但是,我得到这个: 无法find服务名称为“服务”的任何服务。 有什么想法吗? 任何帮助将不胜感激。 谢谢

如何findExchange 2010帐户的邮箱名称,以便我可以使用mapi进行连接

我从Stack Overflowredirect到这里,所以如果发生这种情况,我很抱歉。 我正在尝试在我的交换帐户和我正在使用mapi的程序之间build立连接,并且找不到该帐户的邮箱名称。 邮箱是在outlook 2010中configuration的,这是不幸的,因为邮箱曾经被显示在outlook 2007的前端,但现在只显示了Outlook中的邮箱地址 我曾尝试连接到PowerShell中的会话来使用get-mailbox命令,但是当我尝试连接到Exchange服务时出现以下错误: New-PSSession:[ex2013]连接到远程服务器ex2013失败,出现以下错误消息:WinRM客户端从远程WS-Management服务收到HTTP状态码440。 有关更多信息,请参阅about_Remote_Troubleshooting帮助主题。 我从我正在使用的程序得到的唯一的错误消息是我的一个login参数是无效的。 我已经尝试了许多不同的邮箱名称的变体,但由于我不确定邮箱名是什么,我不能确定它不是给我这个login参数错误的其他参数之一。 任何与我的PowerShell问题的帮助或以不同的方式来find邮箱名称,将不胜感激

PowerCLI Move-VM返回失败,但vm仍然移动

我有一个脚本将虚拟机从一个数据存储移动到另一个数据存储。 我有其他逻辑来保护存储后端和结构免于超额订阅,并等待在特定时间提交新的请求(业务需求)。 我只是在移动数据存储而不是主机。 我有一个围绕Move-VM的try catch块,因为我想处理失败。 前两三次我运行脚本只发生了一些错误,并按我的预期处理。 最后5次移动会返回错误,但VM移动请求成功,如我在vCenter中看到的任务所示。 这项工作也成功完成。 Move-VM不使用RunAsync开关。 什么会导致Move-VM返回错误,但成功提交移动请求。 $VMs = Get-VM -Name $ComputerName $CurrentDataStores = Get-Datastore foreach ($VM in $VMs){ foreach ($store in $CurrentDataStores){ if ($store.name -eq "$Datastore"){ $rawDatastore = $store } if ($store.id -Match $VM.DatastoreIdList){ $VMDatastore = $store.name } } if ($VMDatastore -eq "$Datastore"){ Write-Output "$VM : is already on requested Datastore" […]

从Powershell的多个服务器上的IIS备份

有人可以帮助我远程从PowerShell脚本备份多台服务器上的IIS。 我可以从powershell命令备份IIS。 backup-webconfiguration -name IIS_backup。 另外我有一个批处理脚本需要备份,但只适用于一台服务器。 我必须在本地login并将其作为批处理作业运行。 @echo off cls pushd "%WinDir%\System32\inetsrv" echo.| date | find /i "current">datetime1.tmp echo.| time | find /i "current">datetime2.tmp for /f "tokens=1,2,3,4,5,6" %%i in (datetime1.tmp) do ( echo %%n>datetime1.tmp ) for /f "tokens=1,2,3,4,5,6" %%i in (datetime2.tmp) do ( echo %%m>datetime2.tmp ) for /f "delims=/ tokens=1,2,3" %%i in (datetime1.tmp) do ( […]