我正在尝试创建一个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作业不同的服务器上运行此脚本
任何帮助将不胜感激!
答案 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