命令抛出错误

时间:2016-01-07 21:51:25

标签: powershell office365

我一直在讨论一个愚蠢的问题,当我尝试在特定命令中使用变量时,我得到一个错误,但是如果我使用实际的变量值而不是它的工作原理。为什么我不能在这里使用变量以及解决方法是什么?请帮忙。变量都具有正确的值。我确认一切正常,直到最后一行执行...

(此代码中的最后一行会引发错误...)

#####################################################################
# Prompt for user input regarding deleted and destination mailboxes #
#####################################################################

# Ask for Deleted Mailbox SMTP Address 
$DeletedMailbox = Read-Host "Enter Primary Address of Deleted Mailbox: "

# Ask for Destination Mailbox SMTP Address
$DestinationMailbox = Read-Host "Enter Primary Address of Destination Recovery Mailbox: "

#############################################################
# Query for the Exchange GUID information of both Mailboxes #
#############################################################
$DeletedGUID = Get-Mailbox -SoftDeletedMailbox -Identity $DeletedMailbox |
               Select ExchangeGUID | FT -HideTableHeaders

$DestinationGUID = Get-Mailbox -Identity $DestinationMailbox |
                   Select ExchangeGUID | FT -HideTableHeaders

############################################################################
# Initiate the Restore Request from Deleted mailbox to destination mailbox #
############################################################################
New-MailboxRestoreRequest -SourceMailbox $DeletedGUID -TargetMailbox $DestinationGUID -AllowLegacyDNMismatch

错误引发....

Cannot process argument transformation on parameter 'SourceMailbox'. Cannot convert
the "System.Collections.ArrayList" value of type "System.Collections.ArrayList"
to type "Microsoft.Exchange.Configuration.Tasks.MailboxIdParameter".
    + CategoryInfo          : InvalidData: (:) [New-MailboxRestoreRequest], ParameterBindin...mationException
    + FullyQualifiedErrorId : ParameterArgumentTransformationError,New- MailboxRestoreRequest
    + PSComputerName        : ps.outlook.com

1 个答案:

答案 0 :(得分:2)

显然 import com.neomades.app.Application; import com.neomades.app.Controller; import java.util.ArrayList; import java.util.List; import org.junit.runner.JUnitCore; import org.junit.runner.Result; import org.junit.runner.notification.Failure; /** * Entry point */ public class UnitTestsApp extends Application { public void onStart(Controller controller) { // first screen controller.pushScreen(UnitTestsScreen.class); controller.runOnBackgroundThread(new Runnable(){ public void run() { List<Class> testCases = new ArrayList(); //Add test cases testCases.add(JSONConverterTests.class); JUnitCore core = new JUnitCore(); core.addListener(new TestRunListener()); for (Class testCase : testCases) { RunTestCase(testCase); } } }); } private static void RunTestCase(Class testCase) { Result result = JUnitCore.runClasses(testCase); } } 是一个列表,而不是单个元素。从列表中选择一个元素:

$DeletedGUID

或在循环中运行New-MailboxRestoreRequest -SourceMailbox $DeletedGUID[0] ...

New-MailboxRestoreRequest

另外,替换

$DeletedGUID | ForEach-Object {
  New-MailboxRestoreRequest -SourceMailbox $_ ...
}

...| Select ExchangeGUID | FT -HideTableHeaders

Select -Expand ExchangeGUID cmdlet用于输出格式,不适用于您想要进一步处理的内容。