Прежде всего, вам не хватает запятой в строке:
[string []] $ InterfaceArray = "folder1", "folder2" "folder3"
Кроме того, насколько я могу судить, вы, пока l oop, похоже, ничего не добиваетесь, поскольку единственное время, которое когда-либо будет верно, - это если время 12:00:00 AM точно в указанную дату , Независимо от того, какую дату вы вводите в формате (ММ / ДД / ГГГГ), они не будут равны, если только я не сказал выше.
Поскольку вы выполняете поиск на нескольких серверах, Invoke-Command - ваш друг, так как foreach l oop будет действовать последовательно, в то время как это будет работать параллельно. Он будет отправлять команду поиска на каждый сервер одновременно.
Я не совсем уверен, что именно вы пытаетесь сделать, поэтому я не заполнил реальный код поиска (см. Ниже), но часть I оставьте пустым, чтобы указать, какое имя файла / схему имени файла вы ищете. Если вы предоставите больше ясности, я могу помочь вам в случае необходимости.
(Примечание: $ filepath , хотя и говорит само за себя, это пути к файлам, которые вы будете sh искать. Вы можете сгенерировать их таким же образом, как в Lee_Dailey . Я бы порекомендовал удалить разделительные линии и сохранить сгенерированные пути к объекту String System.Array )
Invoke-Command -ComputerName $ProdServerArray -ScriptBlock {Get-Childitem –Path $filepath -Recurse -ErrorAction SilentlyContinue |where {<your code here>}}