Regedit'i UAC'sız birkaç Win10 uzak bilgisayarında çalıştırmanın bir yolu var mı?


0

Regedit'i bir grup uzak bilgisayarda UAC'yi Windows10'da açmadan çalıştırmanın bir yolu var mı? /sKomut satırında benim pencerelerde çalışmıyor 10 Test bilgisayar (benim Win7 systyems üzerinde çalışmak OLACAKTIR belirli düştü, ancak müvekkilim bilgisayarların çoğu Win10 vardır).

Sonuçta amaç

  1. PowerShell executionPolicy'yi sınırsız olana yükseltmek için HKLM'ye bir reg dosyası alın,
  2. Sistem korumasını / geri yüklemesini etkinleştirmek için Powershell'i kullanmak,
  3. PowerShell kullanarak bir geri yükleme noktası oluşturun
  4. executionPolicy'yi Restricted veya RemoteSigned olarak ayarlamak için bir reg dosyasını alın. (Bunların hepsi yama öncesi bir görev olarak yapılır, btw).

Test bilgisayarımda, tüm bunlar /s, Windows 10'da UAC pop-up olmadan çalışmayacak ... parametresi ile bile regedit istisnasıyla iyi çalışıyor . Bunu Win10 test bilgisayarımda gördüm.

PowerShell'i yarasa dosyasıyla yükseltilmiş olarak çalıştırmayı denedim:

powershell.exe -ExecutionPolicy Bypass -File .\MyScript.ps1

ve

PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {Start-Process PowerShell -ArgumentList 'Set-ExecutionPolicy unrestricted -Force' -Verb RunAs}"

ancak bu ikisi de başarısız olur (yani, Erişim reddedilir, powershell executionpolicy yükseltilmez).

Reg dosyasını almak ve Powershell betiğimi çalıştırmak, elde ettiğim başarıya en yakın olanı.

Bunu da sysinternals psexec üzerinden denedim, [yani psexec'in reg.exe'ye çağrı yapması] için aranan diğer çözümleri temel aldım, ancak bunun kendi sorunları vardı (psexec'in EULA için alınan bir reg'e ihtiyacı var, aynı sorun değil. çözüm).

Bundan ödünç alarak şu komutu da çalıştırmayı denedim:

C:\Windows\System32\REG.exe ADD HKLM\\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell /v ExecutionPolicy /t REG_SZ /d Unrestricted /f

... Ama bu "HATA: Geçersiz anahtar adı" ile geri gelmeye devam ediyor. Muhtemelen bu konuda çok uzun süredir çalışıyordum (3 gündür) ve sadece başka bir göze ihtiyacım var. Kimse yardım edebilir mi?


HKLM'ye yazmak için yönetici ayrıcalıklarına İHTİYACINIZ VAR. Aksi takdirde, bir Erişim Reddedildi hatası alırsınız.
LPChip

"PowerShell yürütme politikasını sınırlandırılmadan yükseltmek için HKLM'ye bir kayıt dosyası alın" - Bu, yüksek izin gerektirir. Bu anahtarı yükseltilmiş izinler olmadan değiştiremezsiniz. Politikayı, betiğin yükseltilmesi ve / veya yükseltilmiş bir kullanıcı olarak çalıştırılması şartıyla, komut dosyası içinde değiştirebilirsiniz. Sistem yöneticinizden bu değişiklikleri sizin için yapmasını sağlayın.
Ramhound

Yanıtlar:


1

Birkaç farklı denemeyi denediğiniz için, yazınızın içinde bir cevap gerektirebilecek bazı problemler var. Bu komutlardan herhangi birini uzaktan nasıl yürüttüğünüzü netleştirmediniz. Gösterdiğiniz komutların hiçbiri uzaktaki bir bilgisayarda hiçbir şey yapmıyor. Hepsi yerel bilgisayarda yürütülür. Ancak, PSExec'i denemekten bahsettiniz.

Ayrıca UAC'nin uzaktan komut çalıştırma işlemine müdahale ettiği herhangi bir durumun farkında değilim. Bu nedenle, yalnızca yerel bilgisayarınızda komutları çalıştırdığınızı ve UAC istemleri gerçekleştirdiğinizi varsayabilirim. Ancak, gerçekte komutları uzaktan çalıştırmak için hazırlık yapıyorsunuz.

Bu yüzden, sizi doğru yolda tutacak bazı temel uzaktan yürütme desteği vermeye çalışacağım. Tüm uzaktan komut yürütme, bazı güvenlik duvarı bağlantı noktalarının açılmasını gerektirir. Öyleyse, ilerledikçe bunu aklınızda bulundurun.

Powershell zaten bir uzaktan komut / komut dosyası yürütme mekanizmasına sahip.

  • -ComputerNameAnahtarı, uzak bir sistemde çalıştırmak için belirli komutlar için kullanabilirsiniz .
  • Sen ile interaktif uzaktan oturumu başlatmak, olabilir Enter-PSSession <ComputerName>ve Exit-PSSession.
  • Invoke-Command -ComputerName <ComputerName>Herhangi bir komut dosyasını veya komutu uzaktan çalıştırmak için komutu kullanabilirsiniz .

Bu yöntemlerden hiçbiri, etkileşimli bir Powershell oturumu başlatmadığınız ve bir komut dosyası çalıştırmayı denemediğiniz sürece Yürütme Politikası kısıtlamalarına tabi değildir.

Bu komutlar, uzak oturum açmış olan kullanıcı hesabınızı kullanarak uzak bilgisayarda çalışacaktır. Uzaktaki makinede bir yönetici değilseniz, ek PSCredentialolarak -Credentialdüğmeyi kullanarak yönetici olan bir nesne sağlamanız gerekir .

https://docs.microsoft.com/en-us/powershell/scripting/core-powershell/running-remote-commands?view=powershell-6

Alternatif olarak, uzak komutları veya çalıştırılabilir dosyaları çalıştırmak için PSExec'i de kullanabilirsiniz. HERHANGİ bir izin sorununu önlemek için bunları SYSTEM bağlamında çalıştırmak tercih edilir, ancak yalnızca uzaktaki makinedeki bir yönetici bağlamında çalıştırırsanız genellikle başarılı olurlar.

  • EULA komut istemini -accepteulaanahtarla atlayın
  • SYSTEM bağlamında -sanahtarla çalıştır
  • Bazen, -ibazı 3. taraf EXEcutables'ı doğru bir şekilde çalıştırmak için (etkileşimli) anahtarını kullanmak gerekir.

PSExec üzerinden yürütülen komutlar UAC kısıtlamalarına tabi değildir. Bununla birlikte, Powershell'i PSExec üzerinden uzaktan çalıştırmayı denerseniz, bu da bir komut dosyasını çalıştırmaya çalışırsa, siz de -ExecutionPolicy Bypassanahtarı kullanmazsanız, yürütme ilkesi yürürlüğe girecektir . Ancak, bir komut dosyasını çalıştıran Powershell'i uzaktan çalıştırmak için PSExec kullanmak, yapmanız gerekenleri gerçekleştirmek için gerçekten çok uzun bir yoldur.

Yine, PSExec şu anda oturum açtığınız kullanıcı bağlamını kullanarak uzak bilgisayarla bağlantı kurar. Uzak bilgisayarda yönetici değilseniz, o zaman -uve -panahtarlarını kullanan bir kullanıcı adı / parola belirtmeniz gerekir .

https://docs.microsoft.com/en-us/sysinternals/downloads/psexec

Sonuncusu, her zaman komutun nerede yürüdüğünü (yerel olarak veya uzaktan) hatırlamanız ve erişmeye çalıştığınız herhangi bir kaynağın komutun yürütüldüğü bakış açısıyla yapıldığını fark etmeniz gerekir. Örneğin, komutu C:\MyBatch.batuzak bir bilgisayarda çalıştırırsam C:\MyBatch.bat, uzak bilgisayarda bulunması gerekir.


mükemmel cevap ... ÇOK aydınlatıcı. Teşekkür ederim Appleoddity
Michael Boyd
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.