gpt4 book ai didi

windows - 如何在具有管理员权限的 Windows 任务计划程序中设置 Powershell 脚本?

转载 作者:行者123 更新时间:2023-12-03 11:10:13 26 4
gpt4 key购买 nike

我正在运行以下创建 Tableau 备份并使用 Windows 任务计划程序将其上传到 Google 云存储的 PowerShell 脚本。

#Tableau Server backup
&$tsm maintenance backup -f $Backups_file -d -u $User -p $Password


CD "C:\Program Files (x86)\Google\Cloud SDK\google-cloud-sdk\bin"
$backups_folder = "D:\Tableau Server\data\tabsvc\files\backups\" #default backup path for Tableau installation #&$tsm configuration get -k basefilepath.backuprestore
$filename = get-childitem -path $backups_folder -Filter "*.tsbak" | where-object { -not $_.PSIsContainer } | sort-object -Property $_.CreationTime | select-object -last 1
$fullpath = Join-Path $backups_folder $filename
gsutil cp $fullpath gs://my_bucket/backups #upload the latest backup to GCP

我使用命令:

powershell -Command  "start-process -verb runAs "powershell " -argumentlist "E:\Tableau\test.ps1""

提示以下消息:

Prompt

运行脚本、创建备份并将其成功上传到 GCS。

现在我需要使用 Windows 任务计划程序自动执行此脚本,我按如下方式执行:

Program/script: powershell
Add arguments (optional): -Command "start-process -verb runAs "powershell " -argumentlist "E:\Tableau\test.ps1""

Command setup

我将任务设置为由用户 SYSTEM 以最高权限运行:

User and privileges

在这种情况下,什么也不会发生。

我尝试了创建备份但未上传到 GCS 的其他命令。当我使用命令 powershell -executionpolicy bypass -file 'E:\Tableau\Tableau Backup\test.ps1 在 CMD 上手动运行它时,我收到以下错误:

PS D:\Tableau Server\data\tabsvc\files\backups> powershell -executionpolicy bypass -file 'E:\Tableau\Tableau Backup\test
.ps1'
CommandException: Error opening file "file://D:\Tableau Server\data\tabsvc\files\backups\TableauBackup-2020-06-06.tsbak"
: [Errno 13] Permission denied: u'D:\\Tableau Server\\data\\tabsvc\\files\\backups\\TableauBackup-2020-06-06.tsbak'.

很明显,在使用 gsutil 命令时存在权限错误。当我以管理员身份手动启动 cmd 时,命令运行顺利。

当从非管理员提升的 CMD 触发时,最后一条命令可以顺利运行,但在 Windows 任务计划程序中设置时将无法运行:

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass -Command  "start-process -verb runAs "powershell " -argumentlist "E:\Tableau\test.ps1""

我也试过this它不会在任务计划程序上运行,将在遇到 CMD 时手动运行,但也会像我列出的上一个命令一样因权限被拒绝而失败:

powershell.exe -NoProfile -NoLogo -NonInteractive -ExecutionPolicy Bypass -File "E:\Tableau\test.ps1"

如何正确设置 myWindows 任务计划程序以成功运行此脚本?

最佳答案

这最终对我有用。

Program/script: powershell
Add arguments (optional): -ExecutionPolicy Bypass -command "E:\Tableau\test.ps1 2>&1 > E:\Tableau\test_output.txt"

或者在单个命令中从管理员提升的 CMD 运行:

powershell -ExecutionPolicy Bypass -command "E:\Tableau\test.ps1 2>&1 > E:\Tableau\test_output.txt"

真正的问题是我在 Google Cloud VM 上运行它,我需要更改 VM 的范围才能访问所有 API。

在我这样做之后,我能够成功运行脚本。

关于windows - 如何在具有管理员权限的 Windows 任务计划程序中设置 Powershell 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62245797/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com