10/12/2020

Powershell self destructing script

bir script yazdım ve kullanıcıların içini okuyabilmesini istemiyordum. İçinde mail adresim vs vardı. Yani script çalışacak ve daha sonra kendini yok edecekti. Ayrıca script sadece bir defa çalışmalıydı yoksa her seferinde mail alacaktım.

Bu arada scriptin içi görülmesin ve sadece tek tıkla çalışsın diye ps2exe yi kullanarak scripti exe haline getirdim.
(https://gallery.technet.microsoft.com/scriptcenter/PS2EXE-GUI-Convert-e7cb69d5)

Scriptin içeriği önemli değil ama şu bölüm kısaca kalsın istedim.

$pathtofiletodelete = [System.IO.Directory]::GetCurrentDirectory()
$filetodelete = $pathtofiletodelete+"\get-cownetdata.exe"
start-process powershell -argument "remove-item -LiteralPath $filetodelete"

burada [System.IO.Directory] önemli çünkü exe olduğu için

$Invocation.MyCommand.Path (yada $Invocation.MyCommand.Source) çalışmadı. eve ps1 dosyası olsaydı çalışırdı ama exe olunca yemedi. Bunun içinde C# kütüphanesinden bu yapıyı kullandım ama onda da sadece Folder adresi geldi dolayısı ile onuda file name ekleyerek tamamlamak zorunda kaldım.
Daha sonra çalışan bir exe kendi dosyasını silemiyor bu nedenle yeni bir process başlattım ve onunla mevcut dosyayı sildim
start-process powershell -argument "remove-item -LiteralPath $filetodelete"

Leave a Reply