내 현재 코드는 다음과 같습니다.
Write-output “ENTER THE FOLLOWING DETAILS - When Creating Multiple New Accounts Go to EMC hit F5(refresh) and make sure previous new account is listed before proceeding to the next one”
$DName = Read-Host “User Diplay Name(New User)"
$RUser = Read-Host "Replicate User(Database Grab)"
$RData = ((Get-Mailbox -Identity $RUser).Database).DistinguishedName
$REmailInput = Read-Host “Requester's Name(Notification Email goes to this Person)"
$REmail = ((Get-Mailbox -Identity "$REmailInput").PrimarySmtpAddress).ToString()
Enable-Mailbox -Identity "$DName" -Database "$RData"
Set-CASMailbox -Identity "$DName" -ActiveSyncEnabled $false -ImapEnabled $false - PopEnabled $false
Send-MailMessage -From "John Doe <John.Doe@xyz.com>" -To $REmail -Subject "$DName's email account" -Body "$DName's email account has been setup.`n`n`nJohn Doe`nXYZ`nSystems Administrator`nOffice: 123.456.7890`nJohn.Doe@xyz.com" -SmtpServer exchange@xyz.com
이 코드는 약 반 시간 동안 완벽하게 작동하지만 다른 절반은이 오류가 발생합니다.
ENTER THE FOLLOWING DETAILS - When Creating Multiple New Accounts Go to EMC hit
F5(refresh) and make sure previous new account is listed before proceeding to
the next one
User Diplay Name(New User): Jane Doe
Replicate User(Database Grab): Julie Doe
Requester's Name(Notification Email goes to this Person): Joanna Doe
Name Alias ServerName ProhibitSendQuo
ta
---- ----- ---------- ---------------
Jane Doe JDDAFA exchange@xyz.com unlimited
Set-CASMailbox : Jane Doe is not a mailbox user.
At C:\emailclientbasic.ps1:11 char:15
+ Set-CASMailbox <<<< -Identity "$DName" -ActiveSyncEnabled $false -ImapEnable
d $false -PopEnabled $false
+ CategoryInfo : NotSpecified: (0:Int32) [Set-CASMailbox], Manage
mentObjectNotFoundException
+ FullyQualifiedErrorId : 292DF1AC,Microsoft.Exchange.Management.Recipient
Tasks.SetCASMailbox
따라서 누군가 사서함을 만든 후 일종의 대기 명령을 던지고 스크립트가 ActiveSync를 비활성화하기 전에 사용자의 사서함이 생성 될 때까지 기다릴 수 있다면 실제로 도움이 될 것입니다. 단순히 -wait 스위치를 사용하면 작동하지 않는다고 생각합니다.
답변
다음 Start-Sleep
명령을 사용하십시오 .
Start-Sleep -s 10
10 초 동안 스크립트를 일시 중지합니다.
답변
얼마 전에 작성한 Exchange 스크립트에서 타이밍을 처리해야했습니다. 특히 새로 만든 메일 그룹에 대한 권한을 수정해야했지만 메일 그룹을 실제로 만들 때까지 기다려야 수정을 시도했습니다.
do {
sleep -seconds 1
$mailboxExists = get-mailboxpermission -Identity "CN=$displayName,$DN" -User "NT AUTHORITY\SELF" -ErrorAction SilentlyContinue |fw IsValid
write-host "." -nonewline
} while (!$mailboxExists)
“사서함이 존재 함”의 프록시로서 사서함 (이 예에서는)에서 “IsValid”속성을 가져 오려고합니다. 일단 get-mailboxpermission
true를 반환하면 다음 단계 인 권한 설정이 실제로 작동합니다. 는 write-host
단지 진행률 표시 줄을 제공하는 것입니다.
답변
백그라운드 작업으로 실행 한 다음 해당 작업이 완료 될 때까지 기다릴 수 있습니다. 이처럼 :
$ enablemb = 시작 작업 {Enable-Mailbox -ID “$ DName”-데이터베이스 “$ RData”}
대기 작업 $ enablemb
수신 작업 $ enablemb
답변
답변
왜 안되나요?
do {
$testpath = Test-Path -path \\dns2\d$\test
}
until ($testpath -eq $true)
start-sleep
초기 테스트 후이 유형의 명령을 추가 프로세서 와 함께 사용 합니다. 그래서 내 것이 다음과 같이 보입니다.
do {
$testpath = Test-Path -path \\dns2\d$\test
start-sleep -s 10}
until ($testpath -eq $true)
에 대해 걱정하지 않아도 테스트 상태가 빠르게 변경되는 경우 start-sleep
.