2
我正在做AD提取,並對字段「distinguishedname」進行排序,我只想保留表示用戶本身的「父OU」值的特定部分。Powershell - 保留字符串中的特定字
我運行這個命令來完成所有用戶的附加提取物:
import-module activedirectory
get-aduser -filter * -properties *| Select-Object -Property SamAccountName,CN,co,ExtensionAttribute10,extensionAttribute11,extensionAttribute12,EmailAddress,whenCreated,Enabled,LastLogonDate,accountexpirationdate,distinguishedname |Sort-Object -Property Name | Export-Csv -Delimiter ";" -path "u:\theOutFile_NOFILTER_July.txt"
列"distinguishedname"
這個樣子的:
distinguishedname
CN=familly\, user,OU=Remote Users,OU=New York,OU=My,DC=Company,DC=Local
CN=nameless\, cat,OU=Remote Users,OU=Ottawa,OU=My,DC=Company,DC=Local
CN=Cameron\, James,OU=Regular Users,OU=Hollywood,OU=My,DC=Company,DC=Local
CN=Bon\, Jean,OU=regular Users,OU=Springfield,OU=My,DC=Company,DC=Local
注7月10日 一段時間,我會擊中那些線:
CN=Dog\, Cesar,OU=Special Accounts,OU=Regular Users,OU=Alma,OU=My,DC=Company,DC=Local
CN=keys\, Alicia,OU=Special Accounts,OU=Regular Users,OU=Paris,OU=My,DC=Company,DC=Local
CN=Clansy\, Door,OU=Map Drives,OU=Remote Users,OU=Rome,OU=My,DC=Company,DC=Local
在這種情況下,我得到的結果是Remote Users
和Regular Users
而不是城市。我嘗試了一些修改,但是徒勞無功。
但我想第一個命令,而不是返回這個結果:
distinguishedname
New York
Ottawa
Hollywood
Springfield
我不能努力尋找如何。
在此先感謝
我已經更新了我的初始文章,我跑過了一些可能需要您的幫助來解決的exe文件。你的解釋很好,但我沒有看到我需要進行更改以提取OU =和「OU = MY」之間的刺激以獲取城市字段 – lotirthos227
我不確定我明白你在問什麼。你需要做的改變是用'@ {Name ='distinguishedname'替換單個單詞** distinguishedname **; Expression = {[regex] :: match($ _。distinguishedname,'OU =。+?OU =(。+?),(OU | DC)=')。 -ADUser命令。只需將我的答案中的Get-ADUser命令替換爲修訂版本即可。 (我還建議將'Name ='distinguishedname''更改爲'Name ='parentOU''或'Name ='City'',因爲該列不再包含可分辨名稱)。 –
順便說一句,如果你問什麼是從可分辨的名稱中提取城市(父OU)的名稱,它是正則表達式。 [[regex] :: match($ _。distinguishedname,'OU =。+?OU =(。+?),(OU | DC)=')組[1] .Value或[regex]: :match($ _。distinguishedname,'(?<= OU =。+?OU =)。+?(?=,(OU | DC)=)')。Value將評估爲第二個OU的名稱由Get-ADUser傳遞的每個對象的distinguishedname屬性的值。 –