因此,我的任务是编写一个PS脚本,该脚本输出数据库文件的位置。该文件的位置是:
C:\Program Files\Microsoft\Exchange Server\V15\Mailbox\Mailbox database Name\Mailbox database Name.edb
我认为可以使用以下方式获取我的Exchange数据库的名称
Get-MailboxDatabase | fl Name
具有输出:
Mailbox Database 0161713049
这是数据库的名称,但实际名称前后有很多不可见的字符。
所以我的问题是,如何摆脱这些看不见的字符?我想连接一个字符串,使其看起来像这样:
C:\Program Files\Microsoft\Exchange Server\V15\Mailbox\Mailbox Database 0161713049\Mailbox Database 0161713049.edb
我也需要此代码在具有完全不同的数据库名称的服务器上工作,因此从.Remove()开头简单地删除不需要的字符可能会有所帮助,但是由于我不确定,名称的长度数据库中,我无法删除结尾的字符。
而且我也无法摆脱这样一种感觉,即有一种更简单的方法来获取.edb文件的位置,因此,如果是这种情况,请点亮我!
Powershell将几乎所有输出都视为具有哈希表格式的属性的对象,例如@{Name=MYEXCHDB}
。如果只想将属性值作为字符串,则必须像@AdminOfThings建议的那样扩展它:
Get-MailboxDatabase | Select-Object -ExpandProperty Name
将名称连接成字符串:
$myString = "C:\path\to\$(Get-MailboxDatabase | Select-Object -ExpandProperty Name)"
而且正如@ mathias-r-jessen所建议的那样,数据库的路径是您可以直接获得的另一个属性:
Get-MailboxDatabase | Select-Object -ExpandProperty EdbFilePath