PowerShell'i Sistem Olarak Çalıştırın
PowerShell'i Sistem Olarak Çalıştırmak, kullanıcı hesaplarının yapamayacağı eylemleri gerçekleştirmek için daha yüksek izinler ve dosyalara ve klasörlere erişim gibi çeşitli nedenlerden dolayı önemlidir.
PowerShell'i NT Yetkilisi/Sistem hesabı olarak çalıştırmak, komut dosyasının oturum açmış kullanıcıdan bağımsız olarak aynı şekilde çalışmasını sağladığı için tutarlılık sağlar.
Psexcec.exe hafif yardımcı programını kullanarak PowerShell'i Sistem hesabı olarak başlatır. PowerShell'i Sistem olarak çalıştırmanın başka bir yolu da Görev Zamanlayıcı'yı kullanmaktır.
Bu makalede, PowerShell'i Psexec.exe kullanarak Sistem Hesabı olarak nasıl çalıştıracağımızı ve PowerShell'i Sistem hesabı olarak başlatmak ve betiği sistem hesabı altında çalıştırmak için Görev zamanlamasını kullanarak nasıl çalıştıracağımızı tartışacağız.
PowerShell'i Sistem Olarak Çalıştırmak için Psexec'i Kullanma
Sistem hesabı olarak çalışan PowerShell betiği en yüksek güvenlik iznine sahiptir ve betiğin aynı şekilde çalışmasını sağlar.
Psexec yardımcı programı PowerShell'i Sistem olarak başlatmak için kullanılır, psexec v2.40 sürümünü indirmek ve zip dosyasını çıkarmak için aşağıdaki bağlantıya tıklayın.
https://learn.microsoft.com/en-us/sysinternals/downloads/psexec
Psexec yardımcı programını kullanmak için, komut istemini yönetici olarak açın ve aşağıdaki komutu çalıştırmak için psexec.exe yolunu belirtin.
Psexec.exe -i -s C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exeYukarıdaki komutta, psexec.exe komutu PowerShell'i çalıştırmak için -i parametresini kullanır, böylece masaüstüyle etkileşime girer ve -s belirtir. PowerShell'i Sistem hesabında çalıştırmak için.
Yukarıdaki komutun çıktısı, sistem hesabında çalışan PowerShell terminalini açar; bunun nt Authority\system hesabında çalıştığını görüntülemek için whoami komutunu kullanın.
PowerShell'i Sistem Olarak Çalıştırmak için Görev Zamanlayıcıyı Kullanma
Görev zamanlamasını kullanarak PowerShell'i bir Sistem hesabı olarak başlatabilir ve programı veya betiği çalıştırabilir.
mevcut kullanıcının whoami.exe veya [Security.Principal.WindowsIdentity] sınıfının GetCurrent() yöntemini kullanmasını sağlayan bir PowerShell betiği oluşturalım ve betiği < olarak saklayalım.get-user.ps1
$userinfo = [PSCustomObject]@{
'whoami' = whoami.exe
'CurrentUser' = [Security.Principal.WindowsIdentity]::GetCurrent().Name
}
$userinfo | Out-File -FilePath D:\userinfo.txtYukarıdaki PowerShell betiğinde, PSCustomObject'i kullanarak whoami ve CurrentUser bilgilerini içeren yapılandırılmış veriler oluşturur ve bunları $userinfo değişkeninde saklar.
Çıktıyı belirtilen konumdaki metin dosyasına yazmak için $userinfo değişkeni Out-File cmdlet'ine iletilir.
Şimdi PowerShell'i Görev zamanlamasını kullanarak Sistem hesabı olarak çalıştırmak için aşağıdaki adımları izleyin:
- Görev Zamanlayıcı'yı açın ( Çalıştır >> Taskschd.msc)
- Görev Zamanlayıcı'yı sağ tıklayın ve "Temel Görev Oluştur"u tıklayın
- Görev için bir ad girin ve "İleri"yi tıklayın
- Komut dosyasını çalıştırmak için bir tetikleyici ("Bir Kez") ayarlayın ve "İleri"yi tıklayın
- Başlangıç zamanını seçin ve "İleri"yi tıklayın
- “Bir Program Başlat”ı seçin ve “İleri”yi tıklayın
- Betiği çalıştırmak için "powershell.exe" olarak bir program seçin ve bağımsız değişkenleri argümanlarla birlikte bir PowerShell betiği planlamak için komut dosyası yolu olarak ekleyin.
-NoProfile -ExecutionPolicy Bypass -File D:\PS\get-user.ps1- 'Son'u tıkladığımda bu görevin Özellikler iletişim kutusunu aç'ı tıklayın
- Kullanıcıyı Sistem olarak değiştirin (Kullanıcıyı veya Grubu Değiştir'i tıklayın ve 'Sistem' hesabını arayın) ve Windows 10 için yapılandırmayı seçin
- Tamam'a tıkladığınızda tüm iletişim kutusu kapatılacak ve temel bir görev zamanlayıcı oluşturulacaktır.
Görev zamanlayıcı, PowerShell betiğini planlanan zamanda Sistem hesabı olarak çalıştıracaktır. Komut dosyası kullanıcı bilgilerini bir metin dosyasına yazar. Metin dosyasını açın ve içeriğini kontrol edin.
Çözüm
Umarım psexec ve Görev Zamanlayıcı'yı kullanarak PowerShell'i Sistem hesabı olarak nasıl çalıştıracağınıza ilişkin yukarıdaki makale size yardımcı olur.
Zamanlanan görev, PowerShell betiğini sağlanan bağımsız değişkenlerle çalıştırır.
PowerShell Active Directory komutları ve PowerShell temelleri hakkında daha fazla konuyu ShellGeek ana sayfasında bulabilirsiniz.








