Powershell脚本,用于查找有效的L2TP / IPSec VPN客户端并执行robocopy传输

时间:2015-06-24 17:36:01

标签: powershell robocopy

基本上与this相关,但不知道IP地址......

进一步解释:

我使用L2TP / IPSec VPN移动客户端和ZyXEL ZyWALL USG50作为服务器。我找不到为VPN移动客户端设置静态IP的方法,因此我无法保证它将是相同的IP。为了成功转移制作RoboCopy,我需要搜索我希望转移到的VPN移动客户端的IP。

显然,很多时间浪费在寻找它,但我别无选择。

在“积极”的说明中,我确定不会有很多VPN移动客户端,所以我很确定它总是会是192.168.250.1,但在MOST它将是192.168.250.10。

我对剧本的想法是:

  1. 检查IP是否正在运行(ping)
  2. 检查该IP上的路径是否确实存在。例如//192.168.250.1/PATH
  3. 为了确保这是我要转移所有内容的真实位置,请检查“IAMTHECORRECTVPNBACKUPSERVER.txt”等文件
  4. 一旦满足这些条件(例如,假设IP为192.168.250.7):

    $ IP =“192.168.250.7 &安培; c:\ windows \ system32 \ Robocopy.exe“D:\ folder”“\ 192.168.250.7 \ folder”/ E / MT:20 / R:50 / W:10 / V / ETA / LOG:c:\ robocopy $ (Get-Date -format'ddMMyyyyHHmmss')$ IP.txt

    1. 退出并完成计划任务
  5. 现在我有了这个:

    $num = 0
    $ipvalida=false 
    
    DO
    {
        $ip="192.168.250."+$num
        if (test-connection $ip=True) 
            {
                if (test-path \\$ip\copiaseguridad\=True) 
                {
                    if (test-path \\$ip\copiaseguridad\correctlocation.txt=True) 
                    {
                        $hash=Get-FileHash -a md5 \\$ip\copiaseguridad\correctlocation.txt | Select -Property Hash
                        if ($hash.toString() = "B987A46ABB6302F114385D940CD64CB2")
                        {
                            $ipvalida=true
                        }
    
                    }
                }
            }
            $num=$num+1
    } While ($num -le 5) AND ($ipvalida=false)
    
    if ($ipvalida=true)
    {
        & c:\windows\system32\Robocopy.exe "D:\folder" "\\$ip\copiaseguridad" /E /MT:20 /R:50 /W:10 /V /ETA /LOG:c:\robocopy$(Get-Date -format 'ddMMyyyHHmmssfff').txt
    }
    

    我怎么能这样做?

0 个答案:

没有答案