Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Set-ADComputer на .net

Ответить
Настройки темы
PowerShell - [решено] Set-ADComputer на .net

Пользователь


Сообщения: 122
Благодарности: 6

Профиль | Отправить PM | Цитировать


Необходимо выгрузить с не доменного компьютера информацию в ad используя powershell

Эквивалент комманды:

Код: Выделить весь код
Set-ADComputer "computername" -Replace @{extensionAttribute1="myattribute"}
только на языке .net чтобы можно было вызвать в powershell

Отправлено: 11:37, 11-09-2018

 

Ветеран


Сообщения: 1259
Благодарности: 861

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
$pc = "computername$"
$obj = ([adsisearcher]"samaccountname=$pc").FindOne().GetDirectoryEntry()
if($obj) {
	$obj.Put("extensionAttribute1", "myattribute")
	$obj.SetInfo()
}
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:18, 11-09-2018 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


Сообщения: 122
Благодарности: 6

Профиль | Отправить PM | Цитировать


А учетные данные как туда добавить?

строку:

Код: Выделить весь код
$Credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $User, (Get-Content $PasswordFile | ConvertTo-SecureString -Key $key)

Отправлено: 12:29, 11-09-2018 | #3


Ветеран


Сообщения: 1259
Благодарности: 861

Профиль | Отправить PM | Цитировать


Куда и как я уже отвечал - http://forum.oszone.net/post-2829121-12.html
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:33, 11-09-2018 | #4


Пользователь


Сообщения: 122
Благодарности: 6

Профиль | Отправить PM | Цитировать


Даа я вскрыл себе мозг но разобрался)

спасибо большое, когда видишь этот синтаксис уже ничего не хочется

Код: Выделить весь код
$pc="MSK-O001-STRING$"

$Domain = New-Object System.DirectoryServices.DirectoryEntry($DomainDN ,$Credential.UserName,$Credential.GetNetworkCredential().Password)
$Searcher.SearchRoot = $Domain
$Searcher.Filter = "(samaccountname=$pc)"
$obj = $Searcher.FindOne().GetDirectoryEntry()

Последний раз редактировалось c4uran, 11-09-2018 в 13:21.


Отправлено: 13:16, 11-09-2018 | #5


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата c4uran:
когда видишь этот синтаксис уже ничего не хочется »
Ха! Что тут такого страшного? Всё достаточно обычно и типично. Но Вам таки стоит опробовать собственноручное составление запросов ADSI на LDAP с фильтрацией, используя OID'ы: Search Filter Syntax | Microsoft Docs . Ежели Когда осилите — никакой чёрт в виде AD Вам будет не страшен . Ну, разве что кроме страшных и ужасных слов ACL, DACL, SACL .
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:06, 11-09-2018 | #6


Пользователь


Сообщения: 122
Благодарности: 6

Профиль | Отправить PM | Цитировать


Просто логика фильтрации отличается от ps, здесь в начале пихаешь в определенные свойства объекта условия, а потом выполняешь сам объект, вроде логично, но впервой непривычно, когда разбираешься то уже понятно становится, меня еще интересует интеграция с azuread, но это когда ч уже встряну буду позже спрашивать, а еще спасибо господа большое, вы уже давно помогаете мне на этом форуме, очень признателен за ваше время и труд!

Отправлено: 08:27, 12-09-2018 | #7


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата c4uran:
Просто логика фильтрации отличается от ps, »
c4uran, ничуть. Есть два диалекта — SQL (SQL Dialect | Microsoft Docs) и LDAP (LDAP Dialect | Microsoft Docs), и, так или иначе, всё сводится к ним, и PowerShell пользует ровно те же самые средства. Вот, посмотрите выше на код коллеги Kazun. Создаётся экземпляр класса DirectorySearcher Class (System.DirectoryServices) | Microsoft Docs) посредством перегруженного конструктора Directory Searcher(String), где параметром конструктору передаётся строка "samaccountname=ИмяКомпьютера", содержащая фильтр в формате LDAP.

Если я буду писать на WSH и пользовать библиотеку ADSI посредством Automation, або на C++ и обращаться к классам библиотеки, мне будут доступны те же самые два диалекта.

Отправлено: 17:08, 12-09-2018 | #8


Пользователь


Сообщения: 122
Благодарности: 6

Профиль | Отправить PM | Цитировать


В этих доках я реально плаваю, а есть описание для тех кто с нуля дот нет пытается понять?

Отправлено: 14:54, 13-09-2018 | #9



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Set-ADComputer на .net

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
PowerShell - [решено] Get-adcomputer вместо ошибки ,что объект не найдет писал в файл имя этого компа ejik_off Скриптовые языки администрирования Windows 5 23-02-2017 03:06
PowerShell - get-adcomputer по списку значений атрибута. nokogerra Скриптовые языки администрирования Windows 2 15-11-2014 04:40
CMD/BAT - [решено] проблема с set /a и определением свободного места на диске bruder Скриптовые языки администрирования Windows 4 25-11-2011 23:52
Разное - [решено] Будут ли проблемы с приложениями если выставить параметр Set IncreaseUserVa на 3072? The_Crystal Microsoft Windows 7 1 30-12-2009 23:06
CMD/BAT - [решено] замена set str2=%str1:.zip/=.zip/!% глючит на пробелах?! akrav Скриптовые языки администрирования Windows 5 12-02-2008 11:54




 
Переход