"PowerShell ile Bilgisayar Ayarlarını Kolayca Yönetme/Değiştirme"

Programlama ve Script dilleri konusunda bilgi paylaşım alanıdır.
Cevapla
Kullanıcı avatarı
TRWE_2012
Exabyte4
Exabyte4
Mesajlar: 14886
Kayıt: 25 Eyl 2013, 13:38
cinsiyet: Erkek
Teşekkür etti: 2428 kez
Teşekkür edildi: 5124 kez

"PowerShell ile Bilgisayar Ayarlarını Kolayca Yönetme/Değiştirme"

Mesaj gönderen TRWE_2012 »

Merhabalar

Önce Ekran Görüntüsü :
Resim
Şimdi Kod İçeriğini Verelim:

Kod: Tümünü seç

# -------------------------------
# Bilgisayar Ayarları Yönetim Betiği
# -------------------------------

function AnaMenu {
    Clear-Host
    Write-Host "================= ANA MENÜ =================" -ForegroundColor Cyan
    Write-Host "1. Registered Owner ve Registered Organization Değiştir"
    Write-Host "2. Bilgisayarın Host Name'ini Göster ve Değiştir"
    Write-Host "3. Bilgisayarın Çalışma Grubunu Göster ve Değiştir"
    Write-Host "4. Bilgisayar Tanımını Göster ve Değiştir"
    Write-Host "5. Çıkış"
    Write-Host "============================================"
    
    $secim = Read-Host "Lütfen bir seçenek girin (1-5)"
    switch ($secim) {
        "1" { Degistir_RegisteredInfo }
        "2" { Degistir_HostName }
        "3" { Degistir_Workgroup }
        "4" { Degistir_ComputerDescription }
        "5" { Exit }
        default { Write-Host "Geçersiz seçenek! Tekrar deneyin."; Read-Host "Devam etmek için Enter tuşuna basın..."; AnaMenu }
    }
}

function Degistir_RegisteredInfo {
    $regKeyPath = "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion"

    $owner = (Get-ItemProperty -Path $regKeyPath -Name "RegisteredOwner" -ErrorAction SilentlyContinue).RegisteredOwner
    if (-not $owner) { $owner = "" }

    $org = (Get-ItemProperty -Path $regKeyPath -Name "RegisteredOrganization" -ErrorAction SilentlyContinue).RegisteredOrganization
    if (-not $org) { $org = "" }

    Write-Host "`nMevcut Registered Owner: $owner"
    Write-Host "Mevcut Registered Organization: $org`n"

    $degistir = Read-Host "Değiştirmek ister misiniz? (E/H)"
    if ($degistir -eq "E" -or $degistir -eq "e") {
        $yeniOwner = Read-Host "Yeni Registered Owner girin"
        $yeniOrg = Read-Host "Yeni Registered Organization girin"

        If (-not (Get-ItemProperty -Path $regKeyPath -Name "RegisteredOwner" -ErrorAction SilentlyContinue)) {
            New-ItemProperty -Path $regKeyPath -Name "RegisteredOwner" -Value $yeniOwner -PropertyType String -Force
        } else {
            Set-ItemProperty -Path $regKeyPath -Name "RegisteredOwner" -Value $yeniOwner
        }

        If (-not (Get-ItemProperty -Path $regKeyPath -Name "RegisteredOrganization" -ErrorAction SilentlyContinue)) {
            New-ItemProperty -Path $regKeyPath -Name "RegisteredOrganization" -Value $yeniOrg -PropertyType String -Force
        } else {
            Set-ItemProperty -Path $regKeyPath -Name "RegisteredOrganization" -Value $yeniOrg
        }

        Write-Host "`nBilgiler başarıyla güncellendi!" -ForegroundColor Green
    }

    Read-Host "`nDevam etmek için Enter tuşuna basın..."
    AnaMenu
}

function Degistir_HostName {
    $hostName = $env:COMPUTERNAME
    Write-Host "`nMevcut Host Name: $hostName`n"
    $degistir = Read-Host "Host Name'i değiştirmek ister misiniz? (E/H)"
    if ($degistir -eq "E" -or $degistir -eq "e") {
        $yeniHost = Read-Host "Yeni Host Name girin"
        Rename-Computer -NewName $yeniHost -Force -PassThru
        Write-Host "Bilgisayar yeniden başlatıldığında yeni Host Name aktif olacak." -ForegroundColor Green
    }

    Read-Host "`nDevam etmek için Enter tuşuna basın..."
    AnaMenu
}

function Degistir_Workgroup {
    $workgroup = (Get-WmiObject Win32_ComputerSystem).Workgroup
    Write-Host "`nMevcut Çalışma Grubu: $workgroup`n"
    $degistir = Read-Host "Çalışma Grubunu değiştirmek ister misiniz? (E/H)"
    if ($degistir -eq "E" -or $degistir -eq "e") {
        $yeniWG = Read-Host "Yeni Çalışma Grubu adını girin"
        Add-Computer -WorkGroupName $yeniWG -Force -PassThru
        Write-Host "Bilgisayar yeniden başlatıldığında yeni çalışma grubu aktif olacak." -ForegroundColor Green
    }

    Read-Host "`nDevam etmek için Enter tuşuna basın..."
    AnaMenu
}

function Degistir_ComputerDescription {
    $regPath = "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters"
    $descValue = "srvcomment"

    try {
        $desc = (Get-ItemProperty -Path $regPath -Name $descValue -ErrorAction SilentlyContinue).$descValue
        if (-not $desc) { $desc = "<Boş>" }
        Write-Host "`nMevcut Bilgisayar Tanımı: $desc`n"

        $degistir = Read-Host "Bilgisayar tanımını değiştirmek ister misiniz? (E/H)"
        if ($degistir -eq "E" -or $degistir -eq "e") {
            $varsayilanDesc = "IceBlade Workstation"
            $yeniDesc = Read-Host "Yeni Bilgisayar Tanımı girin veya Enter ile varsayılanı kullanın [$varsayilanDesc]"
            if (-not $yeniDesc) { $yeniDesc = $varsayilanDesc }

            if (-not (Test-Path "$regPath\$descValue")) {
                New-ItemProperty -Path $regPath -Name $descValue -PropertyType String -Value $yeniDesc -Force
            } else {
                Set-ItemProperty -Path $regPath -Name $descValue -Value $yeniDesc
            }

            Write-Host "Bilgisayar tanımı başarıyla güncellendi: $yeniDesc" -ForegroundColor Green
        }
    } catch {
        Write-Host "Hata: Bilgisayar tanımı değiştirilemedi. Detay: $_" -ForegroundColor Red
    }

    Read-Host "`nDevam etmek için Enter tuşuna basın..."
    AnaMenu
}

# Betik başlangıcı
AnaMenu
Son Olarak "Kod İçerik" Açıklamasını Verelim :

Betik Analizi

Genel Bakış
Bu betik, kullanıcıların bilgisayarın Registered Owner, Host Name, Workgroup, ve Computer Description gibi bilgilerini görüntülemelerine ve değiştirmelerine olanak tanır. Her bir işlev belirli bir bilgisayar ayarını yönetir ve menü sistemi ile kullanıcı ile etkileşimde bulunur.

Menüler ve İşlevler
  • 1. Degistir_RegisteredInfo: Kayıtlı kullanıcı ve organizasyon adını değiştirir.
  • 2. Degistir_HostName: Bilgisayar adını görüntüler ve değiştirir.
  • 3. Degistir_Workgroup: Çalışma grubunu görüntüler ve değiştirir.
  • 4. Degistir_ComputerDescription: Bilgisayar tanımını görüntüler ve değiştirir.
  • 5. Çıkış: Betikten çıkış yapar.
1. Ana Menüyü Yönetme
AnaMenu Fonksiyonu:
- Clear-Host: Ekranı temizler.
- Kullanıcıya seçenekler sunar (1-5).
- Seçime göre uygun fonksiyonu çağırır.

Kullanıcı Giriş Kontrolü:
- Geçersiz bir girişte kullanıcıyı bilgilendirir ve tekrar denemesini ister.

2. Kayıtlı Bilgileri Değiştirme
Degistir_RegisteredInfo Fonksiyonu:
- Kayıtlı kullanıcı ve organizasyon adını alır ve ekrana yazar.
- Kullanıcıdan değişiklik yapıp yapmayacağı sorulur.
- Eğer değişiklik yapılmak istenirse, yeni bilgiler alınır ve Windows kayıt defterine kaydedilir.

Kayıt Defteri İşlemleri:
- Kayıt defterine yeni bir değer eklemek ya da var olan değeri güncellemek için New-ItemProperty ve Set-ItemProperty kullanılır.

3. Host Adını Değiştirme
Degistir_HostName Fonksiyonu:
- Mevcut bilgisayar adını gösterir.
- Kullanıcıdan yeni bir isim girip girmeyeceği sorulur.
- Eğer girilirse, Rename-Computer ile bilgisayar adı değiştirilir ve kullanıcıya yeniden başlatma bilgisi verilir.

4. Çalışma Grubunu Değiştirme
Degistir_Workgroup Fonksiyonu:
- Mevcut çalışma grubunu gösterir.
- Kullanıcıdan yeni bir grup adı talep eder.
- Add-Computer komutuyla yeni grup adı atanır ve bilgisayarın yeniden başlatılması gerektiği belirtilir.

5. Bilgisayar Tanımını Değiştirme
Degistir_ComputerDescription Fonksiyonu:
- Mevcut bilgisayar tanımını alır.
- Kullanıcıdan yeni bir tanım girilip girilmeyeceğini sorar.
- Varsayılan olarak bir tanım belirlenmiş olup, kullanıcı herhangi bir şey girmezse bu tanım kullanılır.
- Set-ItemProperty veya New-ItemProperty ile kayıt defterindeki bilgisayar tanımı güncellenir.

Hata Yönetimi:
- Try-Catch yapısı ile hata kontrolü yapılır. Hata durumunda kullanıcıya bilgi verilir.

Sonuç
Bu PowerShell betiği, yönetici olarak bilgisayar ayarlarını değiştirmek için kullanıcı dostu bir menü yapısı sunar. Her bir işlev, doğrudan etkileşimli ve kullanıcı bilgisi gerektirir, böylece kullanıcı kendi bilgisayar ayarları üzerinde kontrol sahibi olur.

Güle güle kullanın...(İhtiyaçtan meydana getirildi.)
Kullanıcı avatarı
Kayserilifatih
Petabyte4
Petabyte4
Mesajlar: 8959
Kayıt: 30 Ağu 2024, 20:48
cinsiyet: Erkek
Teşekkür etti: 861 kez
Teşekkür edildi: 6609 kez

Re: "PowerShell ile Bilgisayar Ayarlarını Kolayca Yönetme/Değiştirme"

Mesaj gönderen Kayserilifatih »

Merak ettiğim bir soru var bu kadar çok yapay zeka ile script yapıyorsun bu scriptlerin hepsini nasıl saklıyor, nasıl buluyorsun bilgisayarında
Kullanıcı avatarı
TRWE_2012
Exabyte4
Exabyte4
Mesajlar: 14886
Kayıt: 25 Eyl 2013, 13:38
cinsiyet: Erkek
Teşekkür etti: 2428 kez
Teşekkür edildi: 5124 kez

Re: "PowerShell ile Bilgisayar Ayarlarını Kolayca Yönetme/Değiştirme"

Mesaj gönderen TRWE_2012 »

Kayserilifatih yazdı: 21 Eki 2025, 12:50 Merak ettiğim bir soru var bu kadar çok yapay zeka ile script yapıyorsun bu scriptlerin hepsini nasıl saklıyor, nasıl buluyorsun bilgisayarında
Resim
Resim
Resim
Resim
Konu Açıklamaları : (Çevrimdışı büyük not defterime kayıt ediyorum)
Resim
Kullanıcı avatarı
Kayserilifatih
Petabyte4
Petabyte4
Mesajlar: 8959
Kayıt: 30 Ağu 2024, 20:48
cinsiyet: Erkek
Teşekkür etti: 861 kez
Teşekkür edildi: 6609 kez

Re: "PowerShell ile Bilgisayar Ayarlarını Kolayca Yönetme/Değiştirme"

Mesaj gönderen Kayserilifatih »

Ben genellikle scriptleri işlevlerine göre farklı farklı klasörlerde topluyorum bu şekilde daha pratik oluyor çünkü şahsen ben scriptleri hep böyle dağıtırsam belli bir alanda bulmam belirgin şekilde zorlaşıyor
Kullanıcı avatarı
TRWE_2012
Exabyte4
Exabyte4
Mesajlar: 14886
Kayıt: 25 Eyl 2013, 13:38
cinsiyet: Erkek
Teşekkür etti: 2428 kez
Teşekkür edildi: 5124 kez

Re: "PowerShell ile Bilgisayar Ayarlarını Kolayca Yönetme/Değiştirme"

Mesaj gönderen TRWE_2012 »

Kayserilifatih yazdı: 21 Eki 2025, 13:15 Ben genellikle scriptleri işlevlerine göre farklı farklı klasörlerde topluyorum bu şekilde daha pratik oluyor çünkü şahsen ben scriptleri hep böyle dağıtırsam belli bir alanda bulmam belirgin şekilde zorlaşıyor
Benim için sorun değil, çünkü isimlerinden hemen anlıyorum.
Cevapla

“Programlama ve Script dilleri” sayfasına dön