在powershell中运行引用UNC路径的cmd

时间:2013-10-16 09:20:21

标签: powershell cmd unc

我正在创建一个PowerShell脚本,以检查OU用户是否已针对已配置文件共享存档的用户进行检查,但我遇到了绊脚石。我可以查询AD以获取每个OU及其主目录的用户列表,将所有详细信息转储到日志的文本文件中并基于后续查询。获得这些详细信息后,我尝试运行dos命令(Enterprise Vault)Archivepoints.exe将变量传递给它。命令通常是:

Archivepoints.exe find \\fopserver045v\ouone_users$

当我尝试运行以下代码时,我收到错误。

$app="D:\Enterprise Vault\ArchivePoints.exe"
$EVArg = "find"
$VolLine = "\\fopserver045v\ouone_users_r$"
Invoke-Item "$app $EVArg $VolLine"

Invoke-Item : Cannot find path 'D:\Enterprise Vault\ArchivePoints.exe find \fopserver045v\ouone_users_r$' because it does not exist.

起初我以为它错过了导致问题的UNC路径的第一个反斜杠,但我不再确定。

脚本和命令在EV服务器上运行,而UNC浴缸实际上并没有进入服务器,它只是EV中的参考路径,因此它不是凭证问题。

如果可能,我还需要能够将输出记录到文件中。

代码应该是什么样的,我应该使用invoke-command还是Invoke-Expression?

由于

1 个答案:

答案 0 :(得分:0)

请勿使用Invoke-Item。应使用调用运算符(&)运行外部命令。您可以使用splatting作为参数列表。

$app="D:\Enterprise Vault\ArchivePoints.exe"
$arguments = "find", "\\fopserver045v\ouone_users_r$"

& $app @arguments