İki olasılık var; ya evrende yalnızız, ya da evrende yalnız değiliz. İki olasılık da eşit derecede ürkütücü.
Arthur Charles Clarke
Sessizin Sesi ;-)

# ./check_nrpe -V
NRPE Plugin for Nagios
Version: 4.0.2
# ./check_nrpe -H 192.168.0.5 -p 5666
CHECK_NRPE: Invalid packet version received from server.
I (0.5.2.35 2018-01-28) seem to be doing fine...
# ./check_nrpe -H 192.168.0.5 -p 5666 -2
I (0.5.2.35 2018-01-28) seem to be doing fine...
#
# 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}
#
#
wmic path softwarelicensingservice get oa3xoriginalproductkey
slmgr.vbs /ipk xxxxx-xxxxx-xxxxx-xxxxx-xxxxx
slmgr.vbs /ato
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
cscript %windir%\system32\slmgr.vbs /dlv...
FOR /L %i in (1,1,5) do @ping -n 1 192.168.3.%i | findstr "TTL"
(1..5) | % {ping -n 1 192.168.3.$_ | sls "TTL"}Powershell'i Linux/Mac üzerinde kullanıyorsanız "-n" yerine "-c" kullanmayı unutmayınız.
1..5 | ? {Test-Connection "192.168.3.$_" -count 1 -quiet} | % {"192.168.3.$_"}
for ((i=1; i <= 5 ; i++)); do ping -c 1 192.168.3.$i | grep ttl ; doneParantez içlerindeki "5" leri, test sonrası tüm ağ için "254" yazarak kullanınız.
for i in {1..5} ; do ping -c 1 192.168.3.$i | grep ttl ; done