PowerShell 7 ile Linux uzerinde Basit Get-User Fonksiyonu

Linux uzerinde bir cok islemi farkli komutlarla elbette yapabilirsiniz ancak PowerShell catisi altinda bazi yonetimsel gorevleri konsolide etmeyi sevdigim icin bu basit fonksiyonu da sizlerle paylasmak istedim. Birden fazla linux komutunu tek PS fonksiyonunda birlestirmek hem kolay hem de Pratik oldu. Get-User isimli fonksiyonu siz de asagidaki gibi kullanabilirsiniz. Ben Ubuntu 18.04 uzerinde denedim, basarili oldu.
[crayon]
function Get-User{
param(
[string]$User
)
$user = $User
$user1 = get-content /etc/passwd | where{$_ -like “$user*”}
write-host “————————————————————————” -foregroundcolor red
write-host “Basic information for $user ” -foregroundcolor green
$user1
write-host “————————————————————————” -foregroundcolor red
$user2 = groups $user
write-host “Groups that $user belongs to” -foregroundcolor green
$user2
write-host “————————————————————————” -foregroundcolor red
$user3 = lslogins -u $user
write-host “Detailed information of the user: $user” -foregroundcolor green
$user3
write-host “————————————————————————” -foregroundcolor red
$user4 = lastlog -u $user
write-host “Last log information of the user: $user” -foregroundcolor green
$user4
}
[/crayon]

Continue Reading PowerShell 7 ile Linux uzerinde Basit Get-User Fonksiyonu

Jupyter Notebook ile Etkilesimli PowerShell Dokumanlari

Son zamanlarda populer olma yolunda ilerleyen Jupyter Notebook, mimarisi sayesinde icinde kod calistirabileceginiz ve ayni zamanda not defteri olarak kullanabileceginiz bir ortam sunuyor.
Yani sanki Word icinde yazi yaziyor ama ayni zamanda kod parcaciklarini da ayni yerde calistirabiliyorsunuz gibi dusunun. Harika degil mi?
Daha da guzeli artik jupyter Notebook, PowerShell destegi de sunuyor (Preview).
Siz de bu mimariyi denemek isterseniz asagidaki adimlari takip edebilirsiniz.
https://mybinder.org/v2/gh/dotnet/interactive/master
Yukaridaki adrese girdiginizde biraz beklerseniz asagidaki ekran karsiniza gelecektir.
Ben PowerShell ile calismak istedigim icin onu seciyorum.

Akabinde Docs klasoru icinden bir tane ornek seciyorum.
Simdi asagidaki dokumana dikkat edelim. Normal bir dokuman dosyasi gibi gorunen bu dokuman ayni zamanda icindeki kodlari da interaktif olarak calistirabilme ozelligine sahip.
Ornegin, ben asagidaki sekildeki gibi kod satirlarindan calistirmak istedigimin uzerine bir kez tikliyor ve akabinde yikaridaki Run butonuna basiyorum.
asagida goruldugu gibi calistirmis oldugum kisim calistirildi ve ilgili kismin ekran ciktisi da yine dokuman uzerinde gosterildi. Bu sayede sizin yazdiginiz dokumanlarin icindeki kodlari baskalarinin da calisitrabilmesi mumkun.

Son ornegim icin bos bir dokuman olusturup hem yazi hem de ornek bi komut ekliyorum. Tabi dokumanlarinizi istediginiz sekilde olusturabilirsiniz. Bu tamamen sizin hayal gucunuzle sinirli.
 Dilerseniz https://jupyter.org/ sitesinden detayli bilgi alabilir ve download ederek deneyebilirsiniz.

Continue Reading Jupyter Notebook ile Etkilesimli PowerShell Dokumanlari

PowerShell Turkiye (PSTR) Web Seminerleri – 1


12.02.2020 tarihli oturumun kaydina asagidaki linkten ulasabilirsiniz.

Ayrica, yeniliklerden haberdar olmak ve oturum kayitlarina hizli erisim saglamak icin PSTR Twitter hesabini takip edebilirsiniz.
@powershellT
Tesekkurler
#PowerShellTurkiye
#PSTR
#PowerShellTR
#Automation
#PowerShell

Continue Reading PowerShell Turkiye (PSTR) Web Seminerleri – 1

PowerShell Turkiye (PSTR) Yayinda!

PowerShell severler icin PowerShell Turkiye (PSTR) grubu faaliyete gecti. Duzenli online oturumlarla PowerShell’i ulkemizde daha da yayginlastirmak icin desteginizi bekliyoruz.
PowerShell Türkiye YouTube Kanali
https://www.youtube.com/channel/UCj7ALiFRj4gi-3vEeQ1exKg/
PowerShell Türkiye Meetup Sayfasi

Powershell Türkiye (PSTR)

Istanbul, TR
135 Scripters

Powershell Türkiye Etkinlik Grubu Bulusma Noktasi.

Check out this Meetup Group →

PowerShell Türkiye Twitter Hesabi

PowerShell Türkiye Slack Kanalina katilmak icin asagidaki davet linkini kullanabilirsiniz.
https://join.slack.com/t/powershelltr/shared_invite/enQtOTgxMzc0MDIzNzM0LTQ1NDE4MmNjNGMyMTgzZTc2ODM0NDM2YTUyYTM5ZjljZjRhNzAxMjdkZWU3OWVmMzdlZmU4NmQ2NWUwOWQ4Nzg
#PowerShell
#PSTR
#PowerShellTurkiye
#Otomasyon
#PowerShell7

Continue Reading PowerShell Turkiye (PSTR) Yayinda!

PowerShell ile Google Incognito Mode icinde arama yaptirmak

Google Incognito mode kullanarak bir arama yapmak istiyorsunuz. Bunu PowerShell ile hicli bir sekilde yapabilir misiniz? Evet!
Boylece PowerShell icinde calisirken tarayicinizi acip Incognito mode icine girmeye gerek kalmadan cok hilzi bir sekilde bu islemi yapabilirsiniz.
Bunun icin cok basit  bir fonksiyon hazirladim sizlere.
[crayon]
Function Start-IncognitoMode {
$browser = “${env:ProgramFiles(x86)}\Google\Chrome\Application\chrome.exe”
$query = read-host “Ne aramak istiyorsunuz?”
$query=$query.replace(” “,”+”)
$arguments = “-incognito –new-window https://www.google.com/search?q=$query”
Start-Process -FilePath $browser -ArgumentList $arguments -WindowStyle Maximized
}
[/crayon]

Continue Reading PowerShell ile Google Incognito Mode icinde arama yaptirmak

PowerShell ile Otomatik Geri Sayima Dayali Gorev Yoneticisi Yapalim

Tamamen can sIkIntIsIndan sebep bir baska script daha. Aslinda bakarsak hic de fena olmadi.
Bu script sayesinde kullanici tarafindan belirlenen sure sonunda istenen aksiyonun alinmasi saglaniyor. Ornegin 15 saniye sonra bilgisayari kapat ya da 20 saniye sonra su uygulamayi basalt diyebilirsiniz. Bu script’in icinde ic ice gecmis 3 adet fonksiyon ve bunlari yoneten bi rana fonksiyon kullandim. Hem fonksiyon kullaniminia hem de switch kullanimina guzel bir ornek olacagini dusunuyorum.
 
[crayon]
function GeriSayim-Baslat {
cls
function sure {
cls
write-host “GeriSayim Araci”
[int]$global:sure = read-host “Kac saniye sonra aksiyon almak istiyorsunuz?”
}
sure
function menusec {
cls
write-host “1 – Notepad calistir” -ForegroundColor Green
write-host “2 – Hesap Makinesi calistir” -ForegroundColor Blue
write-host “3 – Bilgisayari Yeniden Baslat” -ForegroundColor DarkYellow
write-host “4 – Bilgisayari Kapat” -ForegroundColor Red
[int]$global:secim = read-host “hangi aksiyonu almak istiyorsunuz?”
switch ($global:secim) {
1 {
cls;$global:mesaj = “Notepad calistirilacak”
}
2 {
cls;$global:mesaj= “Hesap Makinesi calistirilacak”
}
3 {;gerisay
cls;$global:mesaj = “Bilgisayar calistirilacak yeniden baslatilacak”
}
4 {
cls;$global:mesaj = “Bilgisayar calistirilacak kapatilacak”
}
default {
cls;menusec
}
}
}
menusec
function gerisay {
cls
do{
$global:sure–
sleep 1
cls; write-host “$global:sure saniye sonra $global:mesaj” -foregroundcolor Green
}while($global:sure-gt 0)
write-host “Zaman doldu” -ForegroundColor Red
switch ($global:secim) {
1 {
“Notepad calistiriliyor”;Invoke-Expression notepad.exe
}
2 {
“Hesap Makinesi calistiriliyor”;Invoke-Expression calc.exe
}
3 {
“Bilgisayar yeniden baslatiliyor”;Invoke-Expression calc.exe
}
4 {
“Bilgisayar kapatiliyor”;Invoke-Expression calc.exe
}
default {
“aa”
}
}
}
gerisay
}
GeriSayim-Baslat
[/crayon]

Continue Reading PowerShell ile Otomatik Geri Sayima Dayali Gorev Yoneticisi Yapalim

PowerShell Ile Gelismis Fonksiyonlara Bir Ornek (Begin, Process, End)

Fonksiyonlar super faydali dostlarimiz. Onlar sayesinde defalarca calistirmamiz gereken komutlari ve scriptleri nezaman istersek o zaman bir butun olarak ve otomatik sekilde calistirabiliriz. Bir baska deyisle PowerShell’e onceden bir fonksiyon tanimlayip daha sonra ne zaman istersek cagirabiliriz. Bu sayede bir dizi komut ya da script’I her defasinda yasmak ya da calistirmak zorunda kalmayiz. PowerShell’e daha onceden tanittigimiz fonksiyonun ismini cagirmamiz yeterli. Gerisi PowerShell’de.
Fonksiyon konusunu farkli zamanlara farkli orneklere ele aliyorum fakat yine de burada minik de olsa bir aciklama yapmak istedim.
Simdi gelelim bu asagidaki basit fonksiyona. Bu fonksiyon digerlerine gore biraz farkli. Zira Parametre bolumunde “(ValueFromPipeline)” seklinde bir ifade var. Bu ifade, pipeline icinden gelen bir input oldugunda bunun $sayi adli degiskeni doldurmak icin kullanilacagini gosteriyor. Fonksiyon icindeki 3 bolum ise fonksiyonun hangi bolumunun ne sekilde calisitirilacagini gosteriyor.
Begin: Baslangicta hazirlik maksatli olarak 1 kere calisitirilir. Burada bir “trick” var, bakalim bulabilecek misiniz!
Process: Fonksiyon birden cok kere calisitirildiginda her seferinde alinacak aksiyonlari barindirir.
End: Tum islemler bittiginde son olarak 1 kere calisitirilir.
Bunu, ayni fonksiyonu iki farkli sekilde kullanarak test edelim simdi.
[crayon]
function test1{
[CmdletBinding()]
Param
(
[Parameter(ValueFromPipeline)]
[int[]]$sayi
)
BEGIN{
Write-Host “basla – sayi: $sayi” -ForegroundColor Red
}PROCESS{
Write-Host “islem – sayi: $sayi” -ForegroundColor Green
}END{
Write-Host “bitir – sayi: $sayi” -ForegroundColor Red
}
}
[/crayon]
Ilk olarak parametreyi kendimiz el ile verelim ve bakalim sonuc nasil oluyor. Bu, normal bir fonksiyonu calistirdigimiz yontem aslinda.

Goruldugu gibi fonksiyona parameter olarak verdigim 1 sayisi fonksiyonun tum bolumlerinde yerini aldi.
Simdi ayni fonksiyonu pipeline icinden gelen sayilarla besliyorum. Bu ornekte fonksiyon icindeki “sayi” parametresinin degeri once 1 sonra, sonra 3… sonra 5 olacak ve fonksiyon 5 kere bu degerlerle ayri ayri calisitirilacak. Bakalim sonuc nasil

Evet, begin ve end bolumleri, fonksiyonun 5 kere calisitirlmasina ragmen yalnzica 1 kere calistirildilar. Process bolumu ise beklendigi gibi fonksiyonun her calistirilisinda farkli bir deger alarak yoluna devam etti.
Bu yontemi pipeline icinde olusacak degeri fonksiyonlara parameter olarak atamak istediginizde kullanabilirsiniz. Begin, process ve end bolumlerini uygun sekilde kullanarak elbette!

Continue Reading PowerShell Ile Gelismis Fonksiyonlara Bir Ornek (Begin, Process, End)

PowerShell ile Windows Server 2019 Active Directory Uzerinde Zaman Dayali Grup Uyeligi Olusturmak

Guvenlik her gecen gun daha cok onem kazaniyor. Bunun bir sonucu olarak her sistem kendi koruma mekanizmasini gelistiriyor. Active Directory zaten uzun yillardir guvenlik anlaminda cok buyuk bir sorumluluk ustelniyor ancak yeni ve kullanisli ozellikler de gelmeye devam ediyor. Iste bunlardan bir tanesi daha. Privileged Access Management ozelligi Forest seviyesinde aktif edildikten sonra asagidaki script kullanilarak bir kisiyi bir gruba belirli bir sure icin uye yapabilirsiniz.
[crayon]
Get-ADOptionalFeature -Filter * | select name
if((Get-ADOptionalFeature -Identity “Privileged Access Management Feature”).enabledscopes){
$kacsaat = 1
$zamanaraligi = New-TimeSpan -Hours $kacsaat
$group = “CN=YeniGrup,OU=PSTR,DC=POWERSHELLTURKIYE,DC=COM”
$user = “CN=PSTRUser9,OU=PSTR,DC=POWERSHELLTURKIYE,DC=COM”
Add-ADGroupMember -Identity $group -Members $user -MemberTimeToLive $zamanaraligi
}else{
Write-Host “Privileged Access Management Feature aktif degil” -ForegroundColor Red
}
[/crayon]
Durumun ne olduguna ve grup uyeliginin ne zaman silinecegi bilgisine asagidaki komutla ulasabiliriz.
[crayon]
Get-ADGroup ‘YeniGrup’ -Property member -ShowMemberTimeToLive
[/crayon]

Zaman doldu ve grup uyeligi otomatik olarak silindi.

Continue Reading PowerShell ile Windows Server 2019 Active Directory Uzerinde Zaman Dayali Grup Uyeligi Olusturmak

PowerShell ile Windows Server 2019 Active Directory Uzerinde Priviledged Access Management Ozelligini Aktif Etmek

Bu ozellik bize zamana dayali grup uyeligi ozelligini kullanmamizi saglayacak. Bu sebeple once Priviledged Access Management ozelliginin aktif olup olmadigina bir goz atalim.
[crayon]
(Get-ADOptionalFeature -Identity “Privileged Access Management Feature”).enabledscopes)
[/crayon]
Yukaridaki komut bir deger dondurmuyorsa bu ozellik kapali demektir. O halde acalim.
[crayon]
Enable-ADOptionalFeature -Identity “Privileged Access Management Feature” -Scope ForestOrConfigurationSet -Target ‘powershellturkiye.com’
[/crayon]

Bu ozellik icin Forest Functional Level degerinin Windows Server 2016 olmasi gerekiyor.

Continue Reading PowerShell ile Windows Server 2019 Active Directory Uzerinde Priviledged Access Management Ozelligini Aktif Etmek