因此,我尝试在大量服务器(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
。