【发布时间】:2017-10-12 23:00:24
【问题描述】:
我正在尝试将多个用户帐户从 csv 文件导入到 powershell 脚本中。脚本正在运行,但我在 AD 中创建的 OU 下没有看到任何添加的用户。运行脚本时确实收到一条错误消息:“无法识别搜索过滤器”。这里有什么错误?
更新:脚本在评论提示后更新。
Import-Module activeDirectory
$csvpath = $PSScriptRoot + "\produksjonsbrukereImport.csv"
if (Test-Path $csvpath) {
$csvpath = "C:\script\produksjonsbrukereImport.csv"
$csv = Import-Csv -Delimiter "," -Path $csvpath -Encoding UTF7
$OUBasePath = ",OU=Produksjon,OU=OpMeis,DC=OpMeis,DC=local"
$logpath = "$PSScriptRoot\import-brukere-loggfil.txt"
}
foreach ($line in $csv) {
#Lagrer variabler
$fornavn = $line.fornavn
$etternavn = $line.etternavn
#$navn = ($fornavn + " " + $etternavn)
$beskrivelse = $line.beskrivelse
$passord = $line.Passord
$avdeling = $line.avdeling
#$brukernavn = ($fornavn.Substring(0,3) + $etternavn.Substring(0,3)).tolower()
$brukernavn = $brukernavn -replace "æ", "a"
$brukernavn = $brukernavn -replace "å", "a"
$brukernavn = $brukernavn -replace "ø", "o"
$principal = $brukernavn + "@OpMeis.local"
$profPath = ($profBasePath + $brukernavn)
$profPathTrue = $profPath + ".V2"
#Genererer OU-path basert på avdelingsnavn
$OU = ("OU=" + $avdeling + $OUBasePath)
}
if (!(get-aduser -Filter {sAMAccountName -eq $brukernavn})) {
$logg = "Forsøker å legge til bruker for $navn - brukernavn: $brukernavn, passord: $passord, avdeling: $avdeling"
#Skriver til skjerm og lagrer i loggfil
Write-Host $logg
try {
New-ADUser -Name $navn -GivenName $fornavn `
-Surname $etternavn –DisplayName $navn `
-sAMAccountName $brukernavn `
-Description $beskrivelse -Path $OU `
-AccountPassword (ConvertTo-SecureString $passord -AsPlainText -Force) -Enabled $true `
-ChangePasswordAtLogon $true `
-UserPrincipalName $principal `
# -ProfilePath $profPath `
-Passthru | Out-file -FilePath $logpath -Append
Start-Sleep -Milliseconds 500
ADD-ADGroupMember (“G_” + $line.avdeling) –members $brukernavn
Start-Sleep -Milliseconds 100
$logg | Out-File -FilePath $logpath -Append
Write-Host "Bruker: $brukernavn lagt til i AD"
$logg | Out-File -FilePath $logpath -Append
Write-Host "Bruker: $brukernavn lagt til i AD"
} #END TRY
#Ved feil, skriv til loggfil
catch {
$ErrorMessage = $_.Exception.Message | Out-File -FilePath $logpath -Append
$FailedItem = $_.Exception.ItemName | Out-File -FilePath $logpath -Append
}
}
【问题讨论】:
-
您实际上并未在此脚本中创建任何 ADUser。
-
我在这里没有看到
New-AdUser或任何东西?如果你把名字打印回来,听起来你运行脚本是错误的。 -
要创建用户,请查看此站点:technet.microsoft.com/en-us/library/ee617253.aspx。对于您明显的变音符号转换问题,我会采取更常见的方法:stackoverflow.com/a/46660695/1701026
-
亲爱的 OP,为什么要和我们分享空行?这就是你解释Minimal, Complete, and Verifiable example的方式吗(对不起我的粗鲁)
-
脚本现已更新。运行脚本时出现错误:“无法识别 seach 过滤器”
标签: powershell