我正在编写一个脚本,通过shedule删除重定向邮件。 这里http://www.experts-exchange.com/Programming/Languages/Scripting/Powershell/Q_28316932.html描述了导入Exchange的功能。
脚本:
$t = New-JobTrigger –Once –At "08/04/2014 13:58"
$del_redir={
param ([string]$alias)
powershell.exe $ExchangeSession = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://myexchsrv.mycompany.local/PowerShell ; Import-PSSession $ExchangeSession ; Set-Mailbox -Identity $alias -ForwardingAddress $null -DeliverToMailboxAndForward $false
}
Register-ScheduledJob -Name Start -ScriptBlock $del_redir -ArgumentList ("usernamealias") -Trigger $t
Separetly线路工作。
Set-Mailbox -Identity "usernamealias" -ForwardingAddress $null
工作得很好。 变化
Set-Mailbox -Identity $alias -ForwardingAddress $null
在
$t = "d:\scripts\" + $alias + ".txt" #$alias = "usernamealias"
New-Item $t -type file
也工作(测试输入别名)
$ExchangeSession = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://myexchsrv.mycompany.local/PowerShell
Import-PSSession $ExchangeSession
也可以工作(导入Exchange功能)
Windows PowerShell以管理员身份运行
所有这些都不起作用。我错在哪里?
答案 0 :(得分:0)
我看到一个可能的问题和另一个可能的问题。
首先:
$t = New-JobTrigger –Once –At "08/04/2014 13:58"
然后:
$t = "d:\scripts\" + $alias + ".txt" #$alias = "usernamealias"
看来你刚刚摧毁了你的触发器。
另一个可能的问题是你的scriptblock参数的参数似乎是错误的(不知道脚本块是什么样子就无法分辨),而且-argumentlist参数不是命令中的最后一个参数。
Register-ScheduledJob上的帮助并没有明确说明,但是其他带有scripblock参数并允许您指定参数列表的cmdlet要求参数列表是最后一个参数,后面的所有内容都是参数到scriptblock。这样,解析器就不会将参数与scriptblock混淆,可能是cmdlet的参数和参数。我怀疑Regiester-ScheduledJob也是如此,-Trigger参数需要在-Scriptblock参数之前。
答案 1 :(得分:0)
工作脚本:
$t = New-JobTrigger –Once –At "10/04/2014 9:30"
$cred = Get-Credential mydomain\administrator
$oo = New-ScheduledJobOption -RunElevated
$del_redir={
param ([string]$alias)
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -command ". 'C:\Program Files\Microsoft\Exchange Server\V14\bin\RemoteExchange.ps1'; Connect-ExchangeServer -auto; Set-Mailbox -Identity $alias -ForwardingAddress `$null -DeliverToMailboxAndForward 0"
}
Register-ScheduledJob -Name Start -ScriptBlock $del_redir -ArgumentList ("usernamealias") -Trigger $t -Credential $cred -ScheduledJobOption $oo
rem `$ null; $ oo = New-ScheduledJobOption -RunElevated