我正在创建一个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?
由于
答案 0 :(得分:0)
请勿使用Invoke-Item
。应使用调用运算符(&
)运行外部命令。您可以使用splatting作为参数列表。
$app="D:\Enterprise Vault\ArchivePoints.exe"
$arguments = "find", "\\fopserver045v\ouone_users_r$"
& $app @arguments