-1

早晨,

我正在尝试使用带有用户列表的 CSV 文件,并自动执行将 AD 用户 extensionAttribute15 设置回“notset”值的过程。

我使用类似的代码来填充属性,CSV 文件只包含两件事,用户 LAN ID 和属性值。

填充该字段不是问题,将值更改回“未设置”已成为问题。

这是我正在使用的代码。

Import-module ActiveDirectory  
Import-CSV "code.csv" | % { 
$User = $_.cn 
$user.Put(“extensionAttribute15”, @())
$user.SetInfo()  
}

这是错误。

方法调用失败,因为 [System.String] 不包含名为“Put”的方法。At attribute.ps1:4 char:10 + $user.Put <<<< (“extensionAttribute15”, @()) + CategoryInfo : InvalidOperation: (Put:String) [], RuntimeException + FullyQualifiedErrorId : MethodNotFound

方法调用失败,因为 [System.String] 不包含名为“SetInfo”的方法。At attribute.ps1:5 char:14 + $user.SetInfo <<<< ()
+ CategoryInfo : InvalidOperation: (SetInfo:String) [], RuntimeException + FullyQualifiedErrorId : MethodNotFound

任何想法可能是什么问题?

谢谢,

4

1 回答 1

3

当您读取 CSV 文件时,生成的对象只是简单的属性包。它们不支持任何特殊方法,它们只保存平面数据。这些对象中没有任何内容不存在于 CSV 文件本身的文本中。

如果您想获得具有 Active Directory 上下文和功能的丰富对象,则需要从 ActiveDirectory 模块中的 cmdlet 中获得一个。

像这样的东西可能是你需要的

Import-module ActiveDirectory  
Import-CSV "code.csv" | % { 
    $user = Get-ADUser $_.cn  # get a rich object from the AD module, by passing a string 
    $user.Put(“extensionAttribute15”, @())
    $user.SetInfo()  
}
于 2013-08-13T17:37:46.043 回答