Tuesday, April 28, 2020

Fedora 32 Kullanıma Sunuldu.

 Fedora 32 genel kullanıma sunuldu. Bu adresden "Workstation / Masaüstü", "Server / Sunucu" olarak indirebilirsiniz.

Standart dağıtım "Gnome" pencere yöneticisi ile geliyor, "KDE PLASMA Desktop", "Xfce Desktop", "LXDE Desktop", "LXQT Desktop ", "MATE-Compiz", "CINNAMON Desktop", "SOAS Desktop" için bu adresi kullanabilirsiniz.


"Sugar on a Stick" ve diğer "ARM" işlemci desktekli sürümler için de bu adresi kullanabilirsiniz. 

Sürüm 22'den 32'ye kaç senede gelinmiş derseniz de duyuru burada! :-)

Friday, April 24, 2020

 Powershell ile Paylaşım Yetkilerini Listeleme



Windows Server sürüm 2012 öncesi sunucularınızdaki dosya paylaşımlarınızı, yeni sürüm sunuculara taşımak istediğinizde, karşılaşacağınız sorunlardan bir tanesi de paylaşım yetkilerini almak olacaktır.

RoboCopy aracı ile disk ya da klasör olarak NTFS yetkilerini kopyalayabilirsiniz. Burada bilgi bulabilirsiniz:
https://hcaglar.blogspot.com/2010/09/rsync-ve-robocopy.html

Paylaşım yetkilerini almak için ise WMI'dan yararlanılabilinir.

Powershell (PS) sürüm 5.1 ile Windows 10 yüklü makinanızdan, Windows 2008 R2 sunucunuzdaki paylaşım yetkilerini olabilirsiniz.

Bunu bir kaç aşamada yapmak mümkün;
  • 1. aşamada var olan paylaşım isimleri ve adresleri bir csv dosyaya kaydedilir, bu dosyada gereksiz olanları silmeyi unutmayınız;
  • 2. aşamada csv dosya kullanılarak paylaşım yetkileri listelenir ve bir başka csv dosyaya kaydedilir;
  • 3. son aşamada yeni sunucuda her 2 csv dosya kullanılarak paylaşımlar yeniden oluşturular, yetkiler verilir. Bu aşama için gerekli olan komutlar en sonda verilmiştir.

Tüm bu aşamalar, aşağıdaki PS betiğinde toplandı. Sadece listeleme ve csv dosyalara kayıt yapmaktadır.

Admin yetkisi ile açacağınız "PS ISE" penceresine aşağıdaki betiği yapıştırınız. Belirtilen yerlerde gerekli değişiklikleri yapınız.

Sunucudan WMI ile ilgili bilgi alabilmek için karşı tarafta; yetkiniz olmalı, güvenlik duvarında ilgili izinler verilmiş olmalı ve son olarak da DCOM ve RPC servisleri çalışıyor olması gerekir.


#
# Bu adresden yararlanılmıştır.
# https://kimconnect.com/powershell-copy-smb-share-permissions-from-legacy-sources/
#
#
#

cls


# Sunucu_Adi ve csv dosya adreslerini ("c:\temp") değiştirmeyi unutmayiniz!
#
#
$smbServerName="Sunucu_Adi"
#
# paylaşım isimlerinin yazılacağı csv dosya
$csv_dosya="c:\temp\"+$smbServerName+"_paylasimlar.csv"
#
# yetkilerin yazılacağı csv dosya
$csv_dosya_02="c:\temp\"+$smbServerName+"_yetkiler.csv"
#
#if (test-path $csv_dosya) {remove-item $csv_dosya} {}
#if (test-path $csv_dosya_02) {remove-item $csv_dosya_02} {}

####### 1. aşama
#

#
# var olan sunucudan paylasim isimleri ve adresleri alınarak csv dosyaya kaydediliyor...
#



Get-WmiObject -Class Win32_Share -ComputerName $smbServerName | sort Description | select-object Name, Path | Export-Csv $csv_dosya -NoClobber -Encoding UTF8


####### 2. aşama için komut oluşturuluyor, aşağıda csv dosya kullanılarak çalıştırılacak...

    function SMB_Yetkileri_Listele{
        param(
            [string]$smbServerName,
            [string]$smbShareName
            )

#
# "$" biten paylaşım isimleri kullanmış iseniz, '|where-object{$_.Name -notlike "*$"}' bölümünü aşağıdaki satır sonundan siliniz.
#
        $smbList = Get-WmiObject win32_LogicalShareSecuritySetting -ComputerName $smbServerName|where-object{$_.Name -notlike "*$"}
        if($smbList){
                    $smbObject=$smbList|where-object{$_.Name -eq $smbShareName};
                   
            }else{
                $message="$smbServerName isimli sunucudan, SMB yetkileri almada hata olustu!";
                $GLOBAL:messages+=$message+"`r`n";
                write-host $message -ForegroundColor Yellow;
                $smbObject=$false;
                }

        if($smbObject){
            $message="$smbShareName isimli paylasim yetkileri aliniyor...";
            $GLOBAL:messages+=$message+"`r`n";
            Write-Host `r`n$message;
            $smbPermissions = @()
            $acls = $smbObject.GetSecurityDescriptor().Descriptor.DACL
            foreach($acl in $acls){
                $user = $acl.Trustee.Name
                if(!($user)){$user = $acl.Trustee.SID}
                $domain = $acl.Trustee.Domain
                switch($acl.AccessMask){
                    2032127 {$accessRight = "Full"}
                    1245631 {$accessRight = "Change"}
                    1179817 {$accessRight = "Read"}
                    }         
                $smbPermissions+=[PSCustomObject]@{Paylasim=$smbShareName;Yetki=$accessRight;Hesap="$domain\$user"};
                }
#
# 2. aşama sonucu csv dosyaya kaydedilmesi...
#
            return $smbPermissions |select-object Paylasim,Yetki,Hesap |Export-Csv $csv_dosya_02 -append -NoClobber -Encoding UTF8;
#
            }else{
            write-host ("-" * 40)
            write-host "Paylasim ile ilgili hata var!";                          
            write-host $smbShareName -ForegroundColor Yellow;
            write-host ("-" * 40)
                return $false ;
                 }
    }
   

# başlardaki $smbServerName ve $csv_dosya değiştirmeyi unutmayiniz!
#

####### 2. aşama
#
#

import-csv $csv_dosya -Encoding UTF8| foreach-object {SMB_Yetkileri_Listele -smbServerName $smbServerName -smbShareName $_.name;}


#
#Ekrana listelemek için
#

import-csv $csv_dosya_02


####### 3. aşama
#
#

# Aşağıdaki komutları, yeni sunucuda paylaşımları tekrar oluşturmak, listelemek için kullanabilirsiniz.
#
# ilk csv dosyadaki gereksiz paylaşımları temizlemeyi unutmayiniz, "C$", "ADMIN$" gibi.
#
# 2. csv dosyada eklemek veya çıkartmak istediğiniz hesapları güncellemeyi unutmayınız.
#
# csv dosyaları da, yeni sunucuda komutları çalıştıracağınız adrese kopyalamayı unutmayınız.
#
# ilk komut ile sadece, "Domain Admins" tam yetkili olacak, diğer yetkiler 2. dosyadan aşağıda eklenecek.
#
#
# import-csv $csv_dosya | foreach-object { New-SmbShare -Name $_.Name -Path $_.Path -FullAccess "$env:userdomain\Domain Admins"}
#
# Diğer yetkiler;
#import-csv $csv_dosya_02 |foreach-object {Grant-SmbShareAccess -Name $_.Paylasim -AccessRight $_.Yetki -AccountName $_.Hesap}
#
# yetkileri listeleme
#import-csv $csv_dosya| foreach-object {Get-SmbShareAccess -Name $_.Name | format-table Name, AccountName, AccessRight -autosize}
#
#

Umarım işinize yarar.

Tuesday, April 14, 2020

PC 'nizde BIOS da bulunan Windows anahtarını komut satırında bulma ve yeniden kullanma

Son dönem kurumsal donanımlarda, Windows Anahtarınızı üzerinde yazan bir etiket bulunmamakta ve Windows İşletim Sistemini yeniden kurmanız gerektiğinde, bu anahtara ihtiyacınız olabilecek durumlar olabilmektedir.

 Admin yetkili açacağınız cmd konsolunda şu komutları kullanabilirsiniz:
wmic path softwarelicensingservice get oa3xoriginalproductkey

slmgr.vbs /ipk xxxxx-xxxxx-xxxxx-xxxxx-xxxxx

slmgr.vbs /ato

Bu komutları bir betik içinde kullanmak isterseniz de:

for /F "skip=1 tokens=*" %%b in ('wmic path softwarelicensingservice get oa3xoriginalproductkey') do if not defined Anahtar set Anahtar=%%b
cscript %windir%\system32\slmgr.vbs /ipk %Anahtar%
cscript %windir%\system32\slmgr.vbs /ato
cscript %windir%\system32\slmgr.vbs /dlv >> %temp%\Etkinlestirme_Durumu.txt

Son satırdaki komut çıktısında;
cscript %windir%\system32\slmgr.vbs /dlv
...
License Status: Licensed
...
görüyorsanız işleminiz başarılı olmuş demektir.

Notification ya da unlicensed başarısız.