首页 > 解决方案 > 从 csv 导入数据并创建 Active Directory 用户列表

问题描述

嘿,所以我正在尝试从 python 中的 powershell 制作相同的脚本,但我无法正确处理,也许你可以帮助我,所以脚本是这样的:

  1. 打开一个包含用户信息的 csv 文件
  2. 为 csv 文件中的每一行创建用户

csv 看起来像这样:

在此处输入图像描述

powershell 脚本工作正常,如下所示:

# import module
Import-Module ActiveDirectory
# create new password
$securedpassword = ConvertTo-SecureString "abc-123" -AsPlainText -Force
#import csv

$filepath = Read-Host -Prompt "please enter csv path"

#import the file into a variable

$users = Import-Csv $filepath

# loop all rows to gather information
foreach ($user in $users) {

# gather user information
$fname = $user.'first name'
$lname = $user.'last name'
$oupath = $user.'ou'
#creat new ad user from csv file
New-ADUser -name "$fname $lname" -GivenName $fname -Surname $lname -UserPrincipalName "$fname.$lname" -Path $oupath -AccountPassword $securedpassword -ChangePasswordAtLogon $true -Enabled $true
# echo output
echo "account created for $fname $lname in $oupath"
}

在 python 中是这样的:

#import csv and active directory module

import csv
from pyad import *

def createuserfromcsv():
    #takes full file path for test: c:\newusers.csv
    file = input('please type your file path + file: ')
    
    data = open(file,encoding="utf-8")
    
    csv_data = csv.reader(data)
    
    data_lines = list(csv_data)

    pyad.set_defaults(ldap_server="DC-01-Training.Udemy.training",username="Administrator",password="abc-123")



    for line in data_lines[1:]:
        user = line[0]
    for line in data_lines[1:]:
        oupath = line[2]
ou = pyad.adcontainer.ADContainer.from_dn(oupath)
new_user = pyad.aduser.ADUser.create(user,ou,password="abc-123")


print(user)
print(oupath)

我怎样才能解决这个问题 ?

标签: pythonpowershellcsvactive-directory

解决方案


好的,我做到了,无论有无功能都可以使用:

import csv
from pyad import *
def createuserfromcsv():
    #takes full file path
    file = input('please type your file path + file: ')
    data = open(file,encoding="utf-8")
    csv_data = csv.reader(data)
    data_lines = list(csv_data)
    #load admin information
    pyad.set_defaults(ldap_server="DC-01-Training.Udemy.training",username="Administrator",password="abc-123")

    for line in data_lines[1:]:
        user = line[0]
        oupath = line[2]
        ou = pyad.adcontainer.ADContainer.from_dn(oupath)
        pyad.aduser.ADUser.create(user,ou,password="abc-123")

推荐阅读