通过 PowerShell 针对服务器列表运行 SCHTasks 命令

通过 PowerShell 针对服务器列表运行 SCHTasks 命令

因此,我尝试在大量服务器(60 台以上)上创建一个计划任务,该任务将运行 PowerShell 脚本。我已经弄清楚并测试了 schtask 命令,如果我针对单个服务器运行它,它运行得很好。

因此,由于我需要针对 60 多个服务器执行此操作,因此我创建了一个包含所有站点代码的 .txt 文件。然后我创建了一个变量,将其定义为该文本文件。然后创建 foreach-object 循环,首先定义一个变量,将站点代码添加到服务器名称的其余部分,然后针对该变量运行 schtasks 命令。我猜这就是它失败的地方(它只是说“为以下参数提供值”,所以它不是特别有用。

有人知道我哪里错了吗?我不是最厉害的脚本编写者,所以任何帮助我都会非常感激。以下是完整脚本:

    $Site = Get-Content -Path D:\folder1\Sites.txt |

ForEach-Object
    {
        $server = $site + "-file-p50"
        .\schtasks /Create /S $Server /RU "SYSTEM" /RP /SC ONCE /TN "DFS Mapping" /TR "powershell.exe C:\users\<username>\desktop\datapaths.ps1" /ST "4:00" /SD "06/06/2017" /F /RL HIGHEST
    }

答案1

您的$site变量目前是站点数组。看起来您可能想在ForEach-Object脚本块中包含此行

$server = $_ + "-file-p50"

$_是循环迭代中当前项的标记ForEach-Object

相关内容