从Powershell文件运行命令

我越来越低于错误。 而通过从Powershell文件复制运行命令,这个文件我打开了记事本,比我运行这个命令通过复制和粘贴在PowerShell提示。 在这里输入图像说明

请让我知道,如果我通过在PowerShell提示窗口中复制此文件出错。 下面是Powershell文件的截图。 在这里输入图像说明

问候,帕拉姆

$Users = Import-Csv -Path "C:\Userlist-sn.csv" foreach ($User in $Users) { $Displayname = $User.Firstname + " " + $User.Lastname $UserFirstname = $User.Firstname $UserLastname = $User.Lastname $OU = "$User.OU" $SAM = $User.SAM $UPN = $User.Firstname + "." + $User.Lastname + "@" + $User.Maildomain $Description = $User.Description $Password = $User.Password New-ADUser -Name "$Displayname" -DisplayName "$Displayname" -SamAccountName $SAM -UserPrincipalName $UPN -GivenName "$UserFirstname" -Surname "$UserLastname" -Description "$Description" -AccountPassword (ConvertTo-SecureString $Password -AsPlainText -Force) -Enabled $true -Path "$OU" -ChangePasswordAtLogon $true –PasswordNeverExpires $false -server "corp.abc.com" } 

你需要一些debugging输出。 我还可以build议你用其他语言中的“-f”格式replacestring构build代码:a'la sprintf()。 它使事情更容易阅读/debugging/修改,例如:

 $Displayname = $User.Firstname + " " + $User.Lastname 

…变为:

 $DisplayName = ( "{0} {1}" -f $User.Firstname, $User.Lastname ); 

它看起来像你的错误是与“名称”属性。 我相信这映射到AD的“CN”属性,但我可能是错的。 添加如下所示的debugging将有所帮助:

 Write-Host -Object ( "Attempting to create user with name ""{0}"" and display name ""{0}""" -f $DisplayName ); 

最后,您可能会在实际的New-ADUser调用中丢失引号。 原因是你传递的是variables,而不是让PowerShell来解释你的代码。

如果你可以发布一些debugging输出,这将是非常有用的…