Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
Solved

# Powershell syntax error

Posted on 2013-02-02
Medium Priority
730 Views
Hi Guys, im trying to populate a mnemonic where the $nemonic is a populate by a given parameter. Im almost there i think but i get the error below the code. Thanks function mnemonicpath { param( [Parameter(Mandatory=$true)]
$mnemonic ) Move-DatabasePath -Identity 'Mailbox Database$mnemonic' -EdbFilePath 'D:\Program Files\Microsoft\Exchange Server\V14\Mailbox\"Mailbox Database $mnemonic\Mailbox Database$mnemonic.edb"' -LogFolderPath 'D:\Program Files\Microsoft\Exchange Server\V14\Mailbox\Mailbox Database $mnemonic' Move-DatabasePath : Cannot bind parameter 'EdbFilePath'. Cannot convert value "D:\Program Files\Microsoft\Exchange Serv er\V14\Mailbox\"Mailbox Database$mnemonic\Mailbox Database $mnemonic.edb"" to type "Microsoft.Exchange.Data.EdbFilePat h". Error: ""D:\Program Files\Microsoft\Exchange Server\V14\Mailbox\"Mailbox Database$mnemonic\Mailbox Database $mnemo nic.edb"" is not an acceptable path. You must use an absolute, local, long file path, that does not contain '~'. Parameter name: path" At C:\it\Install Exchange.ps1:88 char:70 + Move-DatabasePath -Identity 'Mailbox Database$mnemonic' -EdbFilePath <<<<  'D:\Program Files\Microsoft\Exchange Serv
er\V14\Mailbox\"Mailbox Database $mnemonic\Mailbox Database$mnemonic.edb"' -LogFolderPath 'D:\Program Files\Microsoft\
Exchange Server\V14\Mailbox\Mailbox Database $mnemonic' + CategoryInfo : InvalidArgument: (:) [Move-DatabasePath], ParameterBindingException + FullyQualifiedErrorId : CannotConvertArgumentNoMessage,Microsoft.Exchange.Management.SystemConfigurationTasks.Mo veDatabasePath } 0 Question by:cwstad2 2 Comments LVL 5 Accepted Solution coraxal earned 2000 total points ID: 38846342 I think your problem is the use of the single quote when you should be using double quotes because you want the contents of the variable and not the literal name of the variable. In other words, anytime you use single quotes, Powershell will not evaluate the variable(s) and will return the string instead (i.e.$var1 = "Value" will return the literal string $var). Double quotes will evaluate and will return the contents of the variable (i.e.$var1 will return the content of $var1, which is "Value". So having said that, here's one way your function can look: function mnemonicpath { param ( [Parameter(Mandatory=$true)]
[string]
$mnemonic )$mbxDbName = "Mailbox Database $mnemonic"$edbFilePath = "D:\Program Files\Microsoft\Exchange Server\V14\Mailbox\$mbxDbName\$mbxDbName.edb"
$logFolderPath = "D:\Program Files\Microsoft\Exchange Server\V14\Mailbox\$mbxDbName"

Move-DatabasePath -Identity $mbxDbName -EdbFilePath$edbFilePath -LogFolderPath \$logFolderPath
}

0

LVL 15

Author Closing Comment

ID: 38846492
Excellent thanks, im just starting out wirth PS this has helped me greatly
0

## Featured Post

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article describes Top 9 Exchange troubleshooting utilities that every Exchange Administrator should know. Most of the utilities are available free of cost. List of tools that I am going to explain in this article are:   Microsoft Remote Con…
Exchange administrators are always vigilant about Exchange crashes and disasters that are possible any time. It is quite essential to identify the symptoms of a possible Exchange issue and be prepared with a proper recovery plan. There are multiple…
This video demonstrates how to sync Microsoft Exchange Public Folders with smartphones using CodeTwo Exchange Sync and Exchange ActiveSync. To learn more about CodeTwo Exchange Sync and download the free trial, go to: http://www.codetwo.com/excha…
This video shows how to quickly and easily deploy an email signature for all users in Office 365 and prevent it from being added to replies and forwards. (the resulting signature is applied on the server level in Exchange Online) The email signat…
###### Suggested Courses
Course of the Month13 days, 17 hours left to enroll

#### 580 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.