2014-04-09 4 views
0

Shedule에 의해 리디렉션 메일을 삭제하는 스크립트를 작성하고 있습니다. 여기서 http://www.experts-exchange.com/Programming/Languages/Scripting/Powershell/Q_28316932.html은 가져 오기 Exchange 기능을 설명합니다.Exchange Powershell - 스크립트 내부에서 일정으로 Exchange 2010 명령을 실행하는 방법?

스크립트 : 작업

$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 

작업도 (가져 오기 교환 기능)

Windows PowerShell을 관리자 권한으로 실행을

모두 함께 작동하지 않습니다. 내가 어디서 잘못 본거야?

+0

$의 t = 새-JobTrigger - 일단 -At "2014년 10월 4일 9시 반" $ cred하게 = 가져 오기 - 자격 증명 rosproject의 \ 관리자 $ oo의 = 새-ScheduledJobOption -RunElevated을 -RunElevated – alex101000

답변

0

나는 가능성이 있고 또 다른 가능한 문제를 봅니다.

첫째 : 그럼 나중에

$t = New-JobTrigger –Once –At "08/04/2014 13:58" 

: 그것은 나타납니다

$t = "d:\scripts\" + $alias + ".txt" #$alias = "usernamealias" 

당신은 당신의 방아쇠를 파괴했습니다.

다른 가능한 문제는 scriptblock 매개 변수에 대한 인수가 잘못되었거나 (스크립트 블록의 모양을 알지 못해서는 알 수 없음), -argumentlist 매개 변수가 명령의 마지막 매개 변수가 아닌 것입니다.

Register-ScheduledJob에 대한 도움말은 명시 적으로 말하지 않지만 scripblock 인수를 사용하고 인수 목록을 지정하는 다른 cmdlet에는 인수 목록이 마지막 매개 변수 여야하며 그 뒤에 오는 모든 인수는 스크립트 블록. 따라서 파서는 스크립트 블록에 인수를 혼동하지 않으므로 cmdlet의 매개 변수와 인수가 될 수 있습니다. 나는 Regiester-ScheduledJob에서도 마찬가지라고 생각한다. -Trigger 매개 변수는 -Scriptblock 매개 변수 앞에 와야한다.

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의 = 새-ScheduledJobOption는