我正在尝试在多台远程 Windows 机器上写入文件并删除文件。如果机器不可用,即。不在线我想在错误日志中捕获它,以便我有一个有问题的机器名称列表发送给帮助台。它可能很难看,但我已经接近了一些有用的东西。任何澄清将不胜感激。
$from="D:\whatever\machinfo"
$to="\\$machine\c\\scripts\"
output_file="D:\whatever\reports\$machine_writeerror.txt"
foreach($machine in(gc d:\whatever\machinfo\testworkstations.txt))
{
$machine
IF (!$to)
{
Copy-Item D:\whatever\machinfo\010RunGetmachinfo.bat \\$machine \c\scripts -verbose
# $errormsg="destination not found"
$machine > output_file
}
ELSE
{
# DO NOTHING
Remove-Item \\$machine\c\scripts\000dontrun.bat
}
}
好的,我已经重写了这个,但我没有做对。我想要一个唯一的错误文件,其中包含每个机器连接失败的单个文件或一个包含所有无法连接到的机器的计算机名的文件。我认为以下内容很接近(但不正确)。
$logfile="D:\Projects\StoreControls\machinfo\reports\"+$machine+"_writeerror.txt"
foreach($machine in(gc d:\projects\StoreControls\machinfo\testworkstations.txt))
{
$machine
If ( (Test-Connection -Computername $machine -Quiet -Count 1) -eq "False"){
$machine > $logfile}
Else{
Remove-Item \\$machine\c\scripts\tasks\000dontStart.bat
Copy-Item D:\Projects\StoreControls\machinfo\010RunPCsNServersGetmachinfo.bat \\$machine\c\scripts\tasks\
}
}
阅读更多关于 Test-Connection 的内容后,将“False”更改为 $False。作品!谢谢!