【问题标题】:Yet another Powershell script issue only if scheduled另一个 Powershell 脚本问题(仅在计划时)
【发布时间】:2017-11-30 14:55:23
【问题描述】:

我阅读了有关 Powershell 和计划任务的所有信息。 尝试了所有可能的解决方案。

不幸的是,一旦从 Windows 任务调度程序调用,我就无法使 PS 脚本显然正确运行。显然我没有足够的知识单独处理这个问题。

如果从运行 VirtualBox 的服务器 (Win 2012) 手动启动,该脚本可以正常工作。没有 A.D 只是在这里运行 Virtual Box,最终用作公共共享(一个唯一用户:Administrateur)

  • PS 脚本停止在同一台服务器上运行的 Virtual Box VM,将整个文件夹复制到 USB 外部驱动器 E:(大约 90 分钟),然后重新启动 VM,然后再次将复制到外部 HD 的副本复制到另一个网络上的机器服务器 2012 (Z:)。

一些线索: 我只是无法理解某些测试不会返回相同的结果。 例如:

$IsDestPath2 = test-Path $destination_srv2_root 
write-host "IsDestPath2: $IsDestPath2"
Write-Output "$full_dateh - IsDestPath2: $IsDestPath2" | out-File "C:\Program Files\Oracle\VirtualBox\TEST_log.txt"

是让我看到一些价值演变的痕迹。 手动运行脚本时,测试路径始终为 true(正常) $destination_srv2_root is = "z:\VMbackup", Z: 是之前对第二台服务器的净使用结果。 但是从调度程序运行时变成 false ..!?

并且正确写入了相同文件夹 txt 日志文件的输出文件,但外部 HD(e:...)的相同输出文件根本不起作用(未创建文件)。 就像 PS 脚本存在并启动的 VirtualBox 文件夹之外什么都没有。但是没有控制台,没有错误,什么都没有..

尝试使用各种风格的论据 最后一次尝试:

 %SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe  -executionpolicy unrestricted -noexit & .\testPS.ps1

感谢您的帮助。

编辑: 这是代码的一部分..

date_heure
     Write-Host $txt_heure
     Write-Host $txt_date
     Write-host $full_dateh


#$source = "C:\TestSourceBack"
 $source = "C:\VirtualBox VMs"
 #destination vise le disque externe amovible
 $destination_root = "E:\VMbackup"
 $destination = "E:\VMbackup\$thedate"
 #destination2 vise le serveur de secours
 $destination_srv2_map = "\\192.168.1.94\public"
 # Z: pointe directement sur public !!
 $destination_srv2_root = "z:\VMbackup"
 $destination_srv2 = "$destination_srv2_root\$thedate"
# -------------------------------------------------------------------
Write-Output "======================    DEBUT SAUVEGARDE    ==========================" | out-File "$destination_root\backupVM_log.txt" -Append  
Write-Output "$full_dateh" | out-File "$destination_root\backupVM_log.txt" -Append
Write-Output "========================================================================" | out-File "$destination_root\backupVM_log.txt" -Append 

【问题讨论】:

    标签: windows powershell scheduled-tasks


    【解决方案1】:

    映射的驱动器不太可能工作。映射驱动器是每个用户的,甚至比这更细化;它们不会在管理用户的特权令牌和非特权令牌之间共享。

    您应该在脚本中使用 UNC 路径。为了方便替换,请在您的脚本中创建一个 Z 的 PSDrive 以映射到 UNC 路径。

    New-PSDrive -Name Z -PSProvider FileSystem -Root \\root\share
    

    当然,运行计划任务的用户必须有权访问该 UNC 路径。

    【讨论】:

    • 好的。谢谢,这可能是问题之一。但是外部驱动器 E 呢:那是一个真正的物理设备。 ?
    • @user1011212 对此没有任何想法。显示更多代码。至少写到E: 的行,但记住更多上下文更好;您认为与问题无关的行可能不相关。
    • 这里是完整的代码。在下一个回复中我的第一个......我们不是在这里添加一个文件吗?
    • @user1011212 将代码编辑到您的问题中,不要将其发布在 cmets 中
    【解决方案2】:

    这是代码的一部分..

    date_heure
         Write-Host $txt_heure
         Write-Host $txt_date
         Write-host $full_dateh
    
    
    #$source = "C:\TestSourceBack"
     $source = "C:\VirtualBox VMs"
     #destination vise le disque externe amovible
     $destination_root = "E:\VMbackup"
     $destination = "E:\VMbackup\$thedate"
     #destination2 vise le serveur de secours
     $destination_srv2_map = "\\192.168.1.94\public"
     # Z: pointe directement sur public !!
     $destination_srv2_root = "z:\VMbackup"
     $destination_srv2 = "$destination_srv2_root\$thedate"
    # -------------------------------------------------------------------
    Write-Output "======================    DEBUT SAUVEGARDE    ==========================" | out-File "$destination_root\backupVM_log.txt" -Append  
    Write-Output "$full_dateh" | out-File "$destination_root\backupVM_log.txt" -Append
    Write-Output "========================================================================" | out-File "$destination_root\backupVM_log.txt" -Append 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-23
      • 2015-07-07
      • 1970-01-01
      • 2014-07-26
      • 2020-08-09
      • 1970-01-01
      • 2019-12-03
      • 1970-01-01
      相关资源
      最近更新 更多