Скрипт Powershell как шаг в SQL-задании, выдающий ошибку

Я пытаюсь создать работу sql, которая синхронизирует пользователей из файла CSV в группу объявлений. Мой сценарий powershell является одним из этапов этой работы. Проблема заключается в том, что мой скрипт должен работать на другом сервере, на котором есть Active Directory, но я продолжаю получать сообщение об ошибке при выполнении этого шага.

Мой сценарий следующий:

invoke-Command -Session Server-Name
Import-Module activedirectory
$ADUsers = Import-csv \\Server-Name\folder\file.csv
foreach ($User in $ADUsers)
{  
    $Username = $User.sAMAccountName
   $group=$user.adgroup 

if (Get-ADUser -F {SamAccountName -eq $Username})
{
 foreach($group in $groups){Add-ADGroupMember -identity $group -Members $Username}

    Write-Output "$username has beeen added to group $group"

  }
}

Ошибка, которую я получаю,

Выполнено как пользователь: Имя пользователя. Шаг выполнения получил ошибку в строке 2 скрипта PowerShell. Соответствующая строка - "Invoke-Command -Session Server-Name". Исправьте сценарий и перенесите работу. Информация об ошибке, возвращаемая PowerShell: "Невозможно связать параметр" Сеанс ". Невозможно преобразовать значение "Server-Name" типа "System.String" в тип "System.Management.Automation.Runspaces.PSSession". ". Код выхода процесса -1. Шаг не удался.

Имя сервера имеет "-" между ними, поэтому необходимо знать, является ли это причиной проблемы, или я использую неправильный способ запустить этот скрипт на другом сервере из задания SQL

Любая помощь будет оценена!

1 ответ

Jaspreet Я не эксперт по PowerShell, но похоже, что вы передаете неправильные параметры. Просто, ссылаясь на документы Microsoft, вы должны передать имя компьютера, а не -Session. Попробуйте запустить эту строку кода при запуске invoke-Command -ComputerName Server- Название. Для получения дополнительной информации см. Документы Microsoft https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/invoke-command?view=powershell-6

Другие вопросы по тегам