{"id":320,"title":"Active Directory'de CSV dosyas\u0131ndan toplu kullan\u0131c\u0131 olu\u015fturmak","content":"<h1>Active Directory'de CSV Dosyas\u0131ndan Toplu Kullan\u0131c\u0131 Olu\u015fturma&nbsp;<\/h1>\r\n<p class=\"ds-markdown-paragraph\">Active Directory ortam\u0131nda &ccedil;ok say\u0131da kullan\u0131c\u0131y\u0131 h\u0131zl\u0131 ve verimli bir \u015fekilde olu\u015fturmak i&ccedil;in PowerShell scriptleri kullanabilirsiniz. Bu yaz\u0131da, CSV dosyas\u0131ndan toplu kullan\u0131c\u0131 olu\u015fturma i\u015flemini ad\u0131m ad\u0131m ele alaca\u011f\u0131z.<\/p>\r\n<h2>&Ouml;n Haz\u0131rl\u0131k<\/h2>\r\n<h3>CSV Dosyas\u0131 Haz\u0131rlama<\/h3>\r\n<p class=\"whitespace-normal break-words\">&nbsp;<\/p>\r\n<p class=\"whitespace-normal break-words\">&Ouml;rnek CSV dosyas\u0131<\/p>\r\n<p class=\"whitespace-normal break-words\"><strong>Kullanmadan &ouml;nce mutlaka de\u011fi\u015ftirmeniz gerekenler:<\/strong><\/p>\r\n<ol class=\"[&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-decimal space-y-2.5 pl-7\">\r\n<li class=\"whitespace-normal break-words\"><strong>Domain<\/strong>: <code class=\"bg-text-200\/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]\">sirket.local<\/code> yerine kendi domain ad\u0131n\u0131z\u0131 yaz\u0131n<\/li>\r\n<li class=\"whitespace-normal break-words\"><strong>OU<\/strong>: <code class=\"bg-text-200\/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]\">OU=Kullanicilar,DC=sirket,DC=local<\/code> yerine kendi OU yap\u0131n\u0131z\u0131 yaz\u0131n<\/li>\r\n<li class=\"whitespace-normal break-words\"><strong>\u015eifreler<\/strong>: G&uuml;venlik i&ccedil;in farkl\u0131, g&uuml;&ccedil;l&uuml; \u015fifreler kullan\u0131n<\/li>\r\n<li class=\"whitespace-normal break-words\"><strong>Grup<\/strong>: Grup adlar\u0131n\u0131n AD'nizde mevcut oldu\u011fundan emin olun<\/li>\r\n<\/ol>\r\n<h3>CSV Dosyas\u0131n\u0131 Kaydetme<\/h3>\r\n<ol start=\"1\">\r\n<li>\r\n<p class=\"ds-markdown-paragraph\"><strong>Notepad veya Excel ile a&ccedil;\u0131n<\/strong><\/p>\r\n<\/li>\r\n<li>\r\n<p class=\"ds-markdown-paragraph\"><strong>Dosya &rarr; Farkl\u0131 Kaydet<\/strong>&nbsp;se&ccedil;ene\u011fine t\u0131klay\u0131n<\/p>\r\n<\/li>\r\n<li>\r\n<p class=\"ds-markdown-paragraph\"><strong>Dosya ad\u0131:<\/strong>&nbsp;<code>kullanicilar.csv<\/code><\/p>\r\n<\/li>\r\n<li>\r\n<p class=\"ds-markdown-paragraph\"><strong>Dosya t&uuml;r&uuml;:<\/strong>&nbsp;CSV (virg&uuml;lle ayr\u0131lm\u0131\u015f) se&ccedil;in<\/p>\r\n<\/li>\r\n<li>\r\n<p class=\"ds-markdown-paragraph\"><strong>Kodlama:<\/strong> UTF-8 olarak kaydedin<\/p>\r\n<\/li>\r\n<\/ol>\r\n<p>&nbsp;<\/p>\r\n<pre class=\"language-csharp\"><code>Ad,Soyad,Domain,OU,Sifre,Departman,Unvan,Aciklama,Grup,Yonetici,Telefon\r\nAhmet,Y\u0131lmaz,sirket.com,\"OU=Muhasebe,OU=A-Office,DC=sirket,DC=local\",Ahmet2024!,Muhasebe,Bak\u0131m Teknisyeni,Bak\u0131m Departman\u0131 Teknisyeni,Muhasebe_Ekibi,Mehmet Y\u0131lmaz,+90 242 330 1001\r\nAy\u015fe,Demir,sirket.com,\"OU=Muhasebe,OU=A-Office,DC=sirket,DC=local\",Ayse2024!,Muhasebe,Mekanik M&uuml;hendis,U&ccedil;ak Bak\u0131m M&uuml;hendisi,Muhasebe_Ekibi,Mehmet Y\u0131lmaz,+90 242 330 1002\r\nMehmet,Kaya,sirket.com,\"OU=Muhasebe,OU=A-Office,DC=sirket,DC=local\",Mehmet2024!,Muhasebe,Aviyonik Teknisyeni,Aviyonik Sistemler Uzman\u0131,Muhasebe_Ekibi,Mehmet Y\u0131lmaz,+90 242 330 1003\r\nFatma,\u015eahin,sirket.com,\"OU=Muhasebe,OU=A-Office,DC=sirket,DC=local\",Fatma2024!,Muhasebe,Kalite Kontrol Uzman\u0131,Bak\u0131m Kalite Kontrol&uuml;,Muhasebe_Ekibi,Mehmet Y\u0131lmaz,+90 242 330 1004\r\nAli,&Ccedil;elik,sirket.com,\"OU=Muhasebe,OU=A-Office,DC=sirket,DC=local\",Ali2024!,Muhasebe,Motor Teknisyeni,Motor Bak\u0131m Uzman\u0131,Muhasebe_Ekibi,Mehmet Y\u0131lmaz,+90 242 330 1005\r\nZeynep,Arslan,sirket.com,\"OU=Muhasebe,OU=A-Office,DC=sirket,DC=local\",Zeynep2024!,Muhasebe,Bak\u0131m M&uuml;d&uuml;r&uuml;,Bak\u0131m Departman M&uuml;d&uuml;r&uuml;,Muhasebe_Yonetim,Mehmet Y\u0131lmaz,+90 242 330 1006\r\nMustafa,Ayd\u0131n,sirket.com,\"OU=Muhasebe,OU=A-Office,DC=sirket,DC=local\",Mustafa2024!,Muhasebe,Yap\u0131sal Tamirci,U&ccedil;ak G&ouml;vde Tamiri,Muhasebe_Ekibi,Mehmet Y\u0131lmaz,+90 242 330 1007\r\nElif,&Ouml;zkan,sirket.com,\"OU=Muhasebe,OU=A-Office,DC=sirket,DC=local\",Elif2024!,Muhasebe,NDT Teknisyeni,Tahribats\u0131z Muayene Uzman\u0131,Muhasebe_Ekibi,Mehmet Y\u0131lmaz,+90 242 330 1008\r\nHakan,Kurt,sirket.com,\"OU=Muhasebe,OU=A-Office,DC=sirket,DC=local\",Hakan2024!,Muhasebe,Elektrik Teknisyeni,Elektrik Sistemleri Uzman\u0131,Muhasebe_Ekibi,Mehmet Y\u0131lmaz,+90 242 330 1009\r\nSelin,Y\u0131ld\u0131z,sirket.com,\"OU=Muhasebe,OU=A-Office,DC=sirket,DC=local\",Selin2024!,Muhasebe,Planlama Uzman\u0131,Bak\u0131m Planlama ve Dok&uuml;mantasyon,Muhasebe_Yonetim,Mehmet Y\u0131lmaz,+90 242 330 1010\r\nCan,&Ouml;zdemir,sirket.com,\"OU=Muhasebe,OU=A-Office,DC=sirket,DC=local\",,Muhasebe,Hidrolik Teknisyeni,Hidrolik Sistemler Uzman\u0131,Muhasebe_Ekibi,Mehmet Y\u0131lmaz,+90 242 330 1011\r\nDeniz,Yal&ccedil;\u0131n,sirket.com,\"OU=Muhasebe,OU=A-Office,DC=sirket,DC=local\",,Muhasebe,Kompozit Tamirci,Kompozit Malzeme Uzman\u0131,Muhasebe_Ekibi,Mehmet Y\u0131lmaz,+90 242 330 1012<\/code><\/pre>\r\n<h2>PowerShell Scripti<\/h2>\r\n<div class=\"md-code-block md-code-block-dark\">\r\n<div class=\"md-code-block-banner-wrap\">\r\n<div class=\"md-code-block-banner md-code-block-banner-lite\">\r\n<div class=\"_121d384\">&nbsp;<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<pre class=\"language-csharp\"><code>Import-Module ActiveDirectory\r\n\r\n# CSV dosya yolu - kendi dosya yolunuzu girin\r\n$csvPath = \"C:\\Users\\kullanicilar.csv\"\r\n\r\n\r\n$users = Import-Csv -Path $csvPath -Encoding UTF8\r\n\r\n# \u0130sim d&uuml;zeltme fonksiyonu (ilk harf b&uuml;y&uuml;k, di\u011ferleri k&uuml;&ccedil;&uuml;k)\r\nfunction Format-ProperCase {\r\n    param([string]$text)\r\n    if ([string]::IsNullOrEmpty($text)) { return $text }\r\n    \r\n    # \u0130lk harfi b&uuml;y&uuml;k, di\u011ferlerini k&uuml;&ccedil;&uuml;k yap\r\n    return $text.Substring(0,1).ToUpper() + $text.Substring(1).ToLower()\r\n}\r\n\r\n\r\nforeach ($user in $users) {\r\n    \r\n    # Ad ve Soyad\u0131 d&uuml;zelt (ilk harf b&uuml;y&uuml;k, di\u011ferleri k&uuml;&ccedil;&uuml;k)\r\n    $firstName = Format-ProperCase -text $user.Ad\r\n    $lastName = $user.Soyad.ToUpper()  # Soyad tamamen b&uuml;y&uuml;k harf\r\n    \r\n    # Ad ve Soyad\u0131 d&uuml;zelt (ilk harf b&uuml;y&uuml;k, di\u011ferleri k&uuml;&ccedil;&uuml;k)\r\n    $firstName = Format-ProperCase -text $user.Ad\r\n    $lastName = Format-ProperCase -text $user.Soyad\r\n    \r\n    # Kullan\u0131c\u0131 ad\u0131n\u0131 otomatik olu\u015ftur (ismin ilk harfi + soyad)\r\n    $username = ($firstName.Substring(0,1) + $lastName).ToLower()\r\n    # T&uuml;rk&ccedil;e karakterleri d&uuml;zelt\r\n    $username = $username -replace '&ccedil;','c' -replace '\u011f','g' -replace '\u0131','i' -replace '&ouml;','o' -replace '\u015f','s' -replace '&uuml;','u'\r\n    \r\n    # E-posta adresini otomatik olu\u015ftur (ismin ilk harfi + soyad)\r\n    $emailAddress = \"$username@sirket.local\"\r\n    \r\n    # Y&ouml;netici bilgisini al (e\u011fer varsa)\r\n    $managerDN = $null\r\n    if ($user.Yonetici) {\r\n        try {\r\n            $manager = Get-ADUser -Filter \"Name -eq '$($user.Yonetici)'\" -ErrorAction SilentlyContinue\r\n            if ($manager) {\r\n                $managerDN = $manager.DistinguishedName\r\n            }\r\n        } catch {\r\n            Write-Host \"Y&ouml;netici bulunamad\u0131: $($user.Yonetici)\" -ForegroundColor Yellow\r\n        }\r\n    }\r\n    \r\n    # \u015eifre belirtilmemi\u015fse varsay\u0131lan \u015fifre kullan\r\n    $password = if ($user.Sifre) { $user.Sifre } else { \"SiFr3123!1\" }\r\n    \r\n    # Kullan\u0131c\u0131 parametreleri\r\n    $params = @{\r\n        Name                  = \"$firstName $lastName\"\r\n        GivenName            = $firstName\r\n        Surname              = $lastName\r\n        SamAccountName       = $username\r\n        UserPrincipalName    = \"$username@$($user.Domain)\"\r\n        EmailAddress         = $emailAddress\r\n        Path                 = $user.OU\r\n        AccountPassword      = (ConvertTo-SecureString $password -AsPlainText -Force)\r\n        Enabled              = $true\r\n        ChangePasswordAtLogon = $true\r\n        Department           = $user.Departman\r\n        Title                = $user.Unvan\r\n        Description          = $user.Aciklama\r\n        MobilePhone          = $user.Telefon\r\n    }\r\n    \r\n    # Y&ouml;netici varsa ekle\r\n    if ($managerDN) {\r\n        $params.Add('Manager', $managerDN)\r\n    }\r\n    \r\n    try {\r\n       \r\n        New-ADUser @params\r\n        Write-Host \"Kullan\u0131c\u0131 olu\u015fturuldu: $username ($emailAddress)\" -ForegroundColor Green\r\n        \r\n        # E\u011fer grup bilgisi varsa gruba ekle\r\n        if ($user.Grup) {\r\n            Add-ADGroupMember -Identity $user.Grup -Members $username\r\n            Write-Host \"  &rarr; Gruba eklendi: $($user.Grup)\" -ForegroundColor Cyan\r\n        }\r\n    }\r\n    catch {\r\n        Write-Host \"Hata: $username - $($_.Exception.Message)\" -ForegroundColor Red\r\n    }\r\n}\r\n\r\nWrite-Host \"`n\u0130\u015flem tamamland\u0131!\" -ForegroundColor Yellow<\/code><\/pre>\r\n<h2>Script &Ouml;zellikleri<\/h2>\r\n<h3>Otomatik Kullan\u0131c\u0131 Ad\u0131 Olu\u015fturma<\/h3>\r\n<ul>\r\n<li>\r\n<p class=\"ds-markdown-paragraph\">\u0130sim + Soyad kombinasyonu<\/p>\r\n<\/li>\r\n<li>\r\n<p class=\"ds-markdown-paragraph\">T&uuml;rk&ccedil;e karakter d&ouml;n&uuml;\u015f&uuml;m&uuml;<\/p>\r\n<\/li>\r\n<li>\r\n<p class=\"ds-markdown-paragraph\">K&uuml;&ccedil;&uuml;k harf format\u0131<\/p>\r\n<\/li>\r\n<\/ul>\r\n<h3>Ak\u0131ll\u0131 \u0130sim Formatlama<\/h3>\r\n<ul>\r\n<li>\r\n<p class=\"ds-markdown-paragraph\">Ad ve soyad i&ccedil;in ilk harf b&uuml;y&uuml;k, di\u011ferleri k&uuml;&ccedil;&uuml;k<\/p>\r\n<\/li>\r\n<li>\r\n<p class=\"ds-markdown-paragraph\">T&uuml;rk&ccedil;e karakter deste\u011fi<\/p>\r\n<\/li>\r\n<\/ul>\r\n<h3>Esnek \u015eifre Y&ouml;netimi<\/h3>\r\n<ul>\r\n<li>\r\n<p class=\"ds-markdown-paragraph\">CSV'de \u015fifre belirtilmemi\u015fse varsay\u0131lan \u015fifre kullan\u0131m\u0131<\/p>\r\n<\/li>\r\n<li>\r\n<p class=\"ds-markdown-paragraph\">\u0130lk giri\u015fte \u015fifre de\u011fi\u015ftirme zorunlulu\u011fu<\/p>\r\n<\/li>\r\n<\/ul>\r\n<h3>Grup ve Y&ouml;netici Atama<\/h3>\r\n<ul>\r\n<li>\r\n<p class=\"ds-markdown-paragraph\">Otomatik grup &uuml;yeli\u011fi<\/p>\r\n<\/li>\r\n<li>\r\n<p class=\"ds-markdown-paragraph\">Y&ouml;netici atama deste\u011fi<\/p>\r\n<\/li>\r\n<\/ul>\r\n<h2>Kullanmadan &Ouml;nce Dikkat Edilmesi Gerekenler<\/h2>\r\n<h3>1. Domain Bilgisi<\/h3>\r\n<div class=\"md-code-block md-code-block-dark\">\r\n<div class=\"md-code-block-banner-wrap\">\r\n<div class=\"md-code-block-banner md-code-block-banner-lite\">\r\n<div class=\"_121d384\">\r\n<div class=\"d2a24f03\">&nbsp;<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<pre><span class=\"token comment\"># Script i&ccedil;indeki domain bilgisini kontrol edin<\/span>\r\n<span class=\"token variable\">$emailAddress<\/span> = <span class=\"token string\">\"<span class=\"token variable\">$username<\/span>@sirket.local\"<\/span><\/pre>\r\n<\/div>\r\n<p class=\"ds-markdown-paragraph\"><code>sirket.local<\/code>&nbsp;yerine kendi domain ad\u0131n\u0131z\u0131 yaz\u0131n.<\/p>\r\n<h3>2. OU Yap\u0131s\u0131<\/h3>\r\n<div class=\"md-code-block md-code-block-dark\">\r\n<div class=\"md-code-block-banner-wrap\">\r\n<div class=\"md-code-block-banner md-code-block-banner-lite\">\r\n<div class=\"_121d384\">\r\n<div class=\"d2a24f03\">&nbsp;<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<pre><span class=\"token comment\"># &Ouml;rnek OU yap\u0131s\u0131<\/span>\r\n<span class=\"token string\">\"OU=Muhasebe,OU=A-Office,DC=sirket,DC=local\"<\/span><\/pre>\r\n<\/div>\r\n<p class=\"ds-markdown-paragraph\">Kendi OU yap\u0131n\u0131za g&ouml;re d&uuml;zenleyin.<\/p>\r\n<h3>3. G&uuml;venlik<\/h3>\r\n<ul>\r\n<li>\r\n<p class=\"ds-markdown-paragraph\"><strong>\u015eifre politikas\u0131na uygun g&uuml;&ccedil;l&uuml; \u015fifreler<\/strong>&nbsp;kullan\u0131n<\/p>\r\n<\/li>\r\n<li>\r\n<p class=\"ds-markdown-paragraph\">Varsay\u0131lan \u015fifreyi de\u011fi\u015ftirin<\/p>\r\n<\/li>\r\n<li>\r\n<p class=\"ds-markdown-paragraph\">Test ortam\u0131nda deneyin<\/p>\r\n<\/li>\r\n<\/ul>\r\n<h3>4. Grup Kontrol&uuml;<\/h3>\r\n<ul>\r\n<li>\r\n<p class=\"ds-markdown-paragraph\">Grup adlar\u0131n\u0131n AD'nizde mevcut oldu\u011fundan emin olun<\/p>\r\n<\/li>\r\n<li>\r\n<p class=\"ds-markdown-paragraph\">Grup yoksa &ouml;nceden olu\u015fturun<\/p>\r\n<\/li>\r\n<\/ul>\r\n<h2>&Ccedil;al\u0131\u015ft\u0131rma Ad\u0131mlar\u0131<\/h2>\r\n<ol start=\"1\">\r\n<li>\r\n<p class=\"ds-markdown-paragraph\"><strong>PowerShell'i y&ouml;netici olarak &ccedil;al\u0131\u015ft\u0131r\u0131n<\/strong><\/p>\r\n<\/li>\r\n<li>\r\n<p class=\"ds-markdown-paragraph\"><strong>Execution Policy ayarlay\u0131n:<\/strong><\/p>\r\n<div class=\"md-code-block md-code-block-dark\">\r\n<div class=\"md-code-block-banner-wrap\">\r\n<div class=\"md-code-block-banner md-code-block-banner-lite\">\r\n<div class=\"_121d384\">\r\n<div class=\"d2a24f03\"><span class=\"d813de27\">powershell<\/span><\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<pre><span class=\"token function\">Set-ExecutionPolicy<\/span> RemoteSigned<\/pre>\r\n<\/div>\r\n<\/li>\r\n<li>\r\n<p class=\"ds-markdown-paragraph\"><strong>Script dosya yolunu g&uuml;ncelleyin<\/strong><\/p>\r\n<\/li>\r\n<li>\r\n<p class=\"ds-markdown-paragraph\"><strong>CSV dosyas\u0131n\u0131 kontrol edin<\/strong><\/p>\r\n<\/li>\r\n<li>\r\n<p class=\"ds-markdown-paragraph\"><strong>Scripti &ccedil;al\u0131\u015ft\u0131r\u0131n<\/strong><\/p>\r\n<\/li>\r\n<\/ol>\r\n<h2>Hata Ay\u0131klama \u0130pu&ccedil;lar\u0131<\/h2>\r\n<ul>\r\n<li>\r\n<p class=\"ds-markdown-paragraph\"><strong>PowerShell mod&uuml;l&uuml;n&uuml; kontrol edin:<\/strong>&nbsp;<code>Get-Module ActiveDirectory<\/code><\/p>\r\n<\/li>\r\n<li>\r\n<p class=\"ds-markdown-paragraph\"><strong>CSV kodlamas\u0131n\u0131 kontrol edin:<\/strong>&nbsp;UTF-8 kullan\u0131n<\/p>\r\n<\/li>\r\n<li>\r\n<p class=\"ds-markdown-paragraph\"><strong>OU yolunu do\u011frulay\u0131n:<\/strong>&nbsp;<code>Get-ADOrganizationalUnit<\/code><\/p>\r\n<\/li>\r\n<li>\r\n<p class=\"ds-markdown-paragraph\"><strong>Gruplar\u0131 kontrol edin:<\/strong>&nbsp;<code>Get-ADGroup<\/code><\/p>\r\n<\/li>\r\n<\/ul>\r\n<h2>Sonu&ccedil;<\/h2>\r\n<p class=\"ds-markdown-paragraph\">Bu script ile:<\/p>\r\n<ul>\r\n<li>\r\n<p class=\"ds-markdown-paragraph\">\u2705 Toplu kullan\u0131c\u0131 olu\u015fturma<\/p>\r\n<\/li>\r\n<li>\r\n<p class=\"ds-markdown-paragraph\">\u2705 Otomatik grup atama<\/p>\r\n<\/li>\r\n<li>\r\n<p class=\"ds-markdown-paragraph\">\u2705 Y&ouml;netici ili\u015fkisi kurma<\/p>\r\n<\/li>\r\n<li>\r\n<p class=\"ds-markdown-paragraph\">\u2705 Profesyonel e-posta adresi olu\u015fturma<\/p>\r\n<\/li>\r\n<li>\r\n<p class=\"ds-markdown-paragraph\">\u2705 T&uuml;rk&ccedil;e karakter deste\u011fi<\/p>\r\n<\/li>\r\n<li>\r\n<p class=\"ds-markdown-paragraph\">\u2705 Hata y&ouml;netimi<\/p>\r\n<\/li>\r\n<\/ul>\r\n<p class=\"ds-markdown-paragraph\">i\u015flemlerini tek seferde ger&ccedil;ekle\u015ftirebilirsiniz.<\/p>\r\n<p class=\"ds-markdown-paragraph\"><strong>&Ouml;nemli:<\/strong> Production ortam\u0131nda kullanmadan &ouml;nce mutlaka test ortam\u0131nda deneyin ve g&uuml;venlik ayarlar\u0131n\u0131 g&ouml;zden ge&ccedil;irin.<\/p>","excerpt":"Active Directory ortam\u0131nda \u00e7ok say\u0131da kullan\u0131c\u0131y\u0131 h\u0131zl\u0131 ve verimli bir \u015fekilde olu\u015fturmak i\u00e7in PowerShell scriptleri kullanabilirsiniz","created_at":"2025-10-14 09:15:43","updated_at":"2026-09-07 21:03:10","category_id":6,"view_count":688,"reading_time":6,"status":"published","editor_choice":0,"is_editor_choice":0,"published_at":"2025-10-14 09:15:43","featured_image":"resimyok.jpg","slug":"active-directoryde-csv-dosyasindan-toplu-kullanici-olusturmak","category_name":"Sistem","category_slug":"sistem"}