Скрипт 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