Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Set-ADComputer на .net (http://forum.oszone.net/showthread.php?t=336636)

c4uran 11-09-2018 11:37 2830877

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

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

Код:

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

Kazun 11-09-2018 12:18 2830882

Код:

$pc = "computername$"
$obj = ([adsisearcher]"samaccountname=$pc").FindOne().GetDirectoryEntry()
if($obj) {
        $obj.Put("extensionAttribute1", "myattribute")
        $obj.SetInfo()
}


c4uran 11-09-2018 12:29 2830885

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

строку:

Код:

$Credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $User, (Get-Content $PasswordFile | ConvertTo-SecureString -Key $key)

Kazun 11-09-2018 12:33 2830886

Куда и как я уже отвечал - http://forum.oszone.net/post-2829121-12.html

c4uran 11-09-2018 13:16 2830894

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

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

Код:

$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()


Iska 11-09-2018 21:06 2830940

Цитата:

Цитата c4uran
когда видишь этот синтаксис уже ничего не хочется »

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

c4uran 12-09-2018 08:27 2830985

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

Iska 12-09-2018 17:08 2831038

Цитата:

Цитата 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++ и обращаться к классам библиотеки, мне будут доступны те же самые два диалекта.

c4uran 13-09-2018 14:54 2831188

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


Время: 23:11.

Время: 23:11.
© OSzone.net 2001-