#powershell #automation #tableau-api
#powershell #автоматизация #tableau-api
Вопрос:
Я пытаюсь автоматизировать резервное копирование Tableau в Windows. Я использую Tableau 2019.1. Поскольку новая команда TSM требует пароль каждый раз, когда мы делаем резервное копирование, я сохранил пароль в другом файле и зашифровал его, и вызываю этот файл, когда хочу выполнить команду. Вместо использования файла .bat я использую PowerShell, потому что я вызываю файл учетных данных ‘.sec’ через PowerShell (я не уверен, как это сделать в .bat).
Ниже приведен пример кода, который я сделал («MyP @ ssword1» не является моим настоящим паролем, а сценарий резервного копирования tableau — это то, что я нашел где-то в сообществе Tableau):
Для шифрования пароля (я ввел его C:UsersAdministrator.tableaucred.sec ):
"MyP@ssword1" | ConvertTo-SecureString -AsPlainText -Force | ConvertFrom-
SecureString | Out-File "c:UsersBackupAdmin.tableaucred.sec"
Мой файл ps1:
$FilePath = "C:UsersAdministrator.tableaucred.sec"
$Username = "my username"
$encryptedCred = Get-Content $FilePath | ConvertTo-SecureString
$cred = New-Object System.management.Automation.PsCredential($Username,
$encryptedCred)
$Pass = $cred.GetNetworkCredential().Password
$a=Get-Date -UFormat "%y/%m/%d"
tsm maintenance backup -f ts_backup -d -u "$Username" -p "$Pass"
$Pass = ""
tsm maintenance ziplogs -l -t -o -f "logs-$a .zip" -u "$Username" -p "$Pass"
$Pass = ""
В планировщике задач Windows,
О действиях: запустите программу
программа / скрипт: C:WindowsSystem32WindowsPowerShellv1.0powershell.exe
аргументы: «.tableau_backup.ps1»
начните с: «»D:Tableau Сервер данные «»
Сообщение об ошибке: «оператор или администратор отклонил запрос (0x800710e0)» из планировщика задач Windows, но если я «запускаю с помощью PowerShell», этот скрипт работает в обычном режиме.
Я не уверен, какую часть я сделал неправильно, кто-нибудь может посоветовать мне по этому поводу?
Заранее спасибо за вашу помощь.
Комментарии:
1. Вы уверены, что используете одну и ту же учетную запись для шифрования пароля и запуска запланированной задачи? Если вы используете другую учетную запись, она не сможет расшифровать пароль.
2. Подробнее об этом: строки безопасности шифруются и расшифровываются в контексте конкретного пользователя. Таким образом, если вы зашифруете его как user1, вы не сможете расшифровать его как user2. Только пользователь1 сможет это сделать.
3. привет, Робди и Сет, спасибо за ваш комментарий. Для этого я использую AWS и использую точный снимок сервера с тем же именем компьютера и именем пользователя (это новый компьютер, другого пользователя еще не создано, есть только системный пользователь). Теперь моя проблема решена, проблема заключается в условиях при запуске (необязательно) и аргументах. Я предполагаю использовать — FILE «путь к .ps1» и оставить начальное значение (необязательно) пустым, также в настройках я предполагал использовать «остановить существующий экземпляр». Спасибо за вашу помощь!