Powershell脚本作为sql作业中的一步给出错误

时间:2018-04-26 06:36:30

标签: sql powershell sql-server-2012 sql-job executesqlserveragentjob

我正在尝试创建一个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"

  }
}

我得到的错误是

  

以用户身份执行:用户名。作业步骤在PowerShell脚本的第2行收到错误。相应的行是'Invoke-Command -Session Server-Name。更正脚本并重新安排作业。 PowerShell返回的错误信息是:'无法绑定参数'Session'。无法将“System.String”类型的“Server-Name”值转换为“System.Management.Automation.Runspaces.PSSession”类型。 ”。处理退出代码-1。步骤失败了。

服务器名称之间有“ - ”,因此需要知道是否导致问题 或者我使用错误的方法在与sql作业不同的服务器上运行此脚本

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

Jaspreet我不是关于powershell的专家,但似乎你传递了错误的参数。只是提到Microsoft docs似乎需要传递计算机名而不是-Session 在启动时尝试使用这行代码 invoke-Command -ComputerName服务器名称。 有关更多信息,请参阅Microsoft文档 https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/invoke-command?view=powershell-6#examples