Сбой при развертывании Powershell на сервере отчетов Powerbi при выходе из системы - PullRequest
2 голосов
/ 14 февраля 2020

У меня есть SQL Агентское задание, вызывающее пакет служб SSIS - сценарий Powershell, который ведет себя по-разному в зависимости от того, вошла ли учетная запись службы, выполняющая задание, на удаленном сервере или на сервере.

Симптом

SQL Задание агента выполняется как учетная запись-посредник, связанная с учетной записью службы.

Последующий случай:

Когда учетная запись службы зарегистрирована сервер (удаленный рабочий стол), задание агента SQL успешно выполняется, и сценарий фактически выполняет эту работу.

Проблемный c case:

Однако, когда учетная запись службы отключена от сервера (удаленный рабочий стол), задание агента SQL успешно (без ошибок), но сценарий фактически не завершает задание (или частично запускается, если хотите). В приведенном ниже сценарии копирование завершено, но выгрузка не выполнено.

Сценарий

Сценарий powershell отлично работает при запуске вручную на самом сервере.

Копирует файлы из сетевой диск и затем загрузите их на локальный сервер отчетов Power BI.

Урезанная версия сценария, который воспроизводит проблему, выглядит следующим образом:

#Copying Files 
$exe = "robocopy.exe" 
$roboflags = "/NFL /NDL /NJH /NJS /nc /ns /np" 
$destdir = "e:\import\spfiles" 
$srcdir = '"\\xxxxxxxx"' 
Remove-Item "e:\import\spfiles\*.*" 
& $exe $srcdir $destdir 

#Uploading File to the reporting server 
$localfile = e:\import\spfiles\test.jpg 
$rsfolder ="/Test Folder" 
$session = New-RsRestSession -ReportPortalUri http://serverhostname/reports 
Write-RsRestCatalogItem -WebSession $session -Path $localfile -RsFolder $rsfolder -Overwrite 

Учетная запись службы

Учетная запись службы основана на AD и имеет права администратора на сервере, где выполняется сценарий (для расследования), и имеет разрешения, необходимые для учетной записи службы на контроллере домена. уровень.

  • Вход в систему как служба (SeServiceLogonRight)
  • Замена токена уровня процесса (SeAssignPrimaryTokenPrivilege)
  • Обход обхода (SeChangeNotifyPrivilege)
  • Разрешение на запуск SQL Writer
  • Разрешение на чтение службы журнала событий
  • Разрешение на чтение службы удаленного вызова процедур

Эта служебная учетная запись (и связанная с ней учетная запись-посредник) прекрасно работает с большинством наших SQL связанных с базой данных заданий агента, но эта конкретная работа связана с Reporting Server. Поэтому я предположил, что это может быть связано с сервером отчетов.

Кто-нибудь может посоветовать, как решить эту проблему или даже предложить некоторые элементы действий для дальнейшего изучения?

Мне нужно запустить этот сценарий как запланированное задание без необходимости удаленного входа на сервер. .

...