1

我正在创建一个 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 ?

谢谢

4

1 回答 1

0

不要使用Invoke-Item. 外部命令应使用调用运算符 ( &) 运行。您可以对参数列表使用splatting

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

& $app @arguments
于 2013-10-16T09:45:58.047 回答