2016-06-15 4 views
1

Я ищу для добавления двух рабочих станций в список пользователей. Список пользователей: accounts.txt, а рабочие станции - server01, server02.Добавление компьютеров в LogonWorkstation для списка пользователей

Я запускаю этот скрипт с моей машины win 7, у меня нет прав администратора домена, но у меня есть разрешения на добавление рабочих станций вручную каждому пользователю в AD.

PS версия 4

ForEach ($user in $(Get-Content C:\Users\myusername\Documents\accounts.txt)) 
    { 
     $user.LogonWorkstations += ",server01, server02" 
     Set-ADUser -instance $user 
    } 

Полная ошибка:

The property 'LogonWorkstations' cannot be found on this object. Verify that the property exists and can be set. 
At line:3 char:6 
+  $user.LogonWorkstations += ",server01, server02" 
+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    + CategoryInfo   : InvalidOperation: (:) [], RuntimeException 
    + FullyQualifiedErrorId : PropertyAssignmentException 

Set-ADUser : The instance parameter object must be of type: 'Microsoft.ActiveDirectory.Management.ADUser'. 
At line:4 char:6 
+  Set-ADUser -instance $user 
+  ~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    + CategoryInfo   : InvalidArgument: (:) [Set-ADUser], ArgumentException 
    + FullyQualifiedErrorId : The instance parameter object must be of type: 'Microsoft.ActiveDirectory.Management.ADUser'.,Microsoft.ActiveDirectory.Manage 
    ment.Commands.SetADUser 

ответ

1

Вы пытаетесь получить доступ к LogonWorkstations на имя пользователя строки что вы читали из файла это не может работать. Вместо этого вы должны получить ADUser с помощью командлета Get-AdUser, где вы можете получить доступ к этому свойству.

попробовать что-то вроде этого (не проверено):

$users = Get-Content "C:\Users\myusername\Documents\accounts.txt" 
ForEach ($user in $users) 
{ 
    $adUseruser = Get-ADUser $user -Properties * 
    $adUseruser.LogonWorkstations = @($adUseruser.LogonWorkstations, 'server01', 'server02') -join ',' 
    Set-ADUser -instance $adUseruser 
} 
+0

Привет Мартин, Спасибо за ответ, Im работает в этой ошибки 'Set-ADUser: Объект Параметр экземпляра должен быть типа:«Microsoft .ActiveDirectory.Management.ADUser. В строке: 6 символов: 5 + Set-ADUser -instance $ user + ~~~~~~~~~~~~~~~~ + Категория: InvalidArgument : (:) [Set-ADUser], ArgumentException + FullyQualifiedErrorId: объект параметров экземпляра должен иметь тип: «Microsoft.ActiveDirectory.Management.ADUser»., Microsoft.ActiveDirectory.Manage ment.Commands.SetADUser' –

+0

да, У меня была опечатка. Попробуйте еще раз –

+0

Не знаете, почему, но AD-User ищет имя компьютера? 'Set-ADUser: Формат имени компьютера недействителен В строке: 6 символа: 5 + Set-ADUser -instance $ adUseruser + ~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~ + CategoryInfo: NotSpecified: (:) [Set-ADUser], ADException + FullyQualifiedErrorId: формат указанного имени компьютера недействителен, Microsoft.ActiveDirectory .Management.Commands.SetADUser' –

Смежные вопросы