PowerShell脚本可以';按计划任务运行时看不到映射的驱动器

PowerShell脚本可以';按计划任务运行时看不到映射的驱动器,powershell,scheduled-tasks,credentials,mapped-drive,Powershell,Scheduled Tasks,Credentials,Mapped Drive,我有一个备份数据库的脚本。它可以从PowerShell命令行手动运行,但如果我将其设置为计划任务,它会立即“完成”,返回代码为0。这是在Windows Server 2016上 param( [string]$schema ) $date = (Get-Date).ToString("yyyy-MM-dd-HHmmss") $dest = "z:\$schema\${schema}-$date.sql" try { mysqldump --defaults-extra-fil

我有一个备份数据库的脚本。它可以从PowerShell命令行手动运行,但如果我将其设置为计划任务,它会立即“完成”,返回代码为0。这是在Windows Server 2016上

param(
    [string]$schema
)

$date = (Get-Date).ToString("yyyy-MM-dd-HHmmss")
$dest = "z:\$schema\${schema}-$date.sql"

try {
    mysqldump --defaults-extra-file=$PSScriptRoot\mysql-backup-opts.cnf --databases $schema > $dest
    7z a -mx9 -sdel -bso0 "$dest.7z" $dest
    exit 1
}
catch {
    exit 0
}
因为它会立即退出,所以我认为它无法启动
mysqldump
命令。转储需要几分钟,因此如果7zip失败,它不会立即发生(…?)

注意:
z:
驱动器使用不同的凭据映射,因为目标计算机位于不同的域上。我以本地管理员的身份登录,计划任务也以本地管理员的身份运行


更新:根据评论,我用
start-transcript
运行了它。这肯定是映射驱动器的问题。“找不到驱动器。名为“z”的驱动器不存在。”

在脚本顶部添加开始转录本(并在结尾添加停止转录本),将输出记录到某个文件中,然后您应该能够从输出中看到脚本无法完成的原因H-网络驱动器获胜;如果无法映射到运行任务的帐户下,您将不得不处理保存到另一个域位置的问题,这是脚本的一部分。您可以绕过映射的驱动器,直接使用UNC路径来隔离问题(并且,除非UNC路径定期更改,否则只需以UNC路径为目标)。在我的情况下,似乎最好的解决方案是按照@P-L使用完整的UNC路径。感谢各位,我需要配置
EnableLinkedConnections
注册表项来解决此问题-