Uzak powershell'i yönetici olarak çalıştır


14

Soruya girmeden önce, benimkine benzeyen başka sorular da buldum, ancak sorunumu çözemediler. İşte onlara bağlantılar:

"Yönetici Olarak Çalıştır" ı çağıran bir komut dosyasını uzaktan çalıştırın

/programming/10724591/how-to-remote-execute-an-elevated-remote-script-in-powershell

Şimdi soru üzerine: Powershell aracılığıyla uzak bir makinede bir Windows Update komut dosyası çalıştırmam gerekiyor. Makineye mstsc aracılığıyla uzaktan kumanda edersem, Powershell'i yönetici olarak çalıştırır ve Windows Update komut dosyasını çalıştırırsam iyi çalışır. Makineye mstsc aracılığıyla uzaktan kumanda edersem, yönetici olarak çalıştırmayı seçmeden Powershell'i çalıştırır ve komut dosyasını çalıştırırsam, bu satır boyunca bir grup hata alırım: "İstisna" 0 "argümanıyla" İndir "çağrısı:" HRESULT istisnası: 0x80240044 ""

Bu yalnızca yönetici ayrıcalıkları OLMADAN çalışırsam olur.

Çalıştırdığım komut dosyası şudur: http://www.ehow.com/how_8724332_use-powershell-run-windows-updates.html

Şimdi, Enter-PSSession kullanarak makineye uzaktan girdiğimde ve komut dosyasını çalıştırmaya çalıştığımda hata alıyorum, ama biraz farklılar. Bu satır boyunca: "İstisna" 0 "argümanıyla" CreateUpdateDownloader "çağrısı:" Erişim reddedildi. (HRESULT istisnası: 0x80070005 (E_ACCESSDENIED)) ""

Bu soruna neyin sebep olabileceğine dair önerilere açığım, ancak sanırım çözdüm. Powershell oturumunun yükseltilmiş ayrıcalıklarla yürütülmesi gerektiğine inanıyorum. Bunu mstsc ile uzaktan giderken nasıl yapacağımı biliyorum, ancak bunu Enter-PSSession ile yapmanın bir yolunu bulamadım. Google'ı ve Google'ı aradım, ancak hiçbir şey bulamadım. Eğer birisi bu konuya ışık tutmaya yardımcı olabilirse, bu çok takdir edilecektir.


Test etmek için bir konsolda değilim, ancak uzak bir etsn oturumu (Enter-PSSession) alırsanız, "Start-Process PowerShell –Verb RunAs" yazıp Enter tuşuna basabilirsiniz. Bu size Yönetici istemi verir mi? Eğer öyleyse, bunu kabul edebileceğiniz bir cevapla değiştireceğim. Değilse, masama döndüğümde test edeceğim.
TheCleaner

Olası cevap burada serverfault.com/a/474031/23300
Nic

Yanıtlar:


3

Komutları uzaktan yürüttüğünüzde, yalnızca yöneticilerin powershell'de komutları uzaktan yürütmesine izin verildiği için yönetici ayrıcalıklarıyla çalıştırılırlar. "0" bağımsız değişkenleriyle "CreateUpdateDownloader" çağrıldığında özel durum hatası: "Erişim reddedildi. (HRESULT istisnası: 0x80070005 (E_ACCESSDENIED)) "" yerel bir powershell hatası değil, bu satırın başarısız olduğunu gösteriyor: $ UpdatesDownloader = $ UpdateSession.CreateUpdateDownloader (), bu satır $ UpdateSession kullanarak güncellenmiş indirme nesnesini oluşturmaya çalışıyor = Yeni Nesne -ComObject Microsoft.Update.Session nesnesi.

İndiricinin nereye ulaşmaya çalıştığını bilmeden, yalnızca ana gemiyi varsayabilirim, bir sunucuya uzaktan bağlanırken sahip olduğunuz kimlik bilgilerinin bir proxy konusu olabileceğini gösterebilir. Bu yaygın bir güvenlik uygulamasıdır, makinelere uzaktan bağlı olan kullanıcılar öğeleri doğrudan internetten indiremez (kaynağa ne kadar güvenilir olursa olsun).

Umarım bu yardımcı olur, Chris



2

Uzak powershell komutlarını çalıştırmak için, komutları başlattığınız makinede, en azından kutudan çıktığı gibi yapılandırmada yönetici olarak çalıştırmanız GEREKİR. Bu, PowerShell uzaktan kumandasının belgelenmiş bir sınırlamasıdır, ancak belirlendiyseniz varsayılanları gevşetmek mümkündür, ancak bu PowerShell yapılandırmasında değişiklik yapılmasını içerir.

Uzaktan yürütme için -credentials parametresini kullanarak kimlik bilgilerini mi iletiyorsunuz? Örneğin

Enter-PSSession -Credential(Get-Credential) -ComputerName <remotehost>

Windows 2012 Server ve AD kurulumu olmadan, kimlik bilgileri olarak 'MicrosoftAccount \ Administrator'ı kullanmayı deneyin ve uzak Yönetici şifresini kullanın. AD olmadan tam nitelikli kullanıcı adını kullanmak her zaman gereksiz bir güçlük gibi görünüyordu.
fuero

1

Uzak sunuculardaki Windows Güncelleştirmeleri ile ilgili olarak, yerel bir sanal hesap olarak çalışmak üzere uzak sunucuda bir JEA uç noktası ayarlayarak çalıştırabildim.

Gönderen https://docs.microsoft.com/en-us/powershell/scripting/learn/remoting/jea/session-configurations :

Yerel Sanal Hesap

Bu JEA uç noktasının desteklediği rollerin tümü yerel makineyi yönetmek için kullanılıyorsa ve komutları başarılı bir şekilde çalıştırmak için bir yerel yönetici hesabı yeterliyse, JEA'yı yerel bir sanal hesap kullanacak şekilde yapılandırmalısınız. Sanal hesaplar, belirli bir kullanıcıya özgü olan ve yalnızca PowerShell oturumu boyunca devam eden geçici hesaplardır. Bir üye sunucuda veya iş istasyonunda sanal hesaplar yerel bilgisayarın Administrators grubuna aittir ve çoğu sistem kaynağına erişebilir. Active Directory Etki Alanı Denetleyicisi'nde sanal hesaplar, etki alanının Domain Admins grubuna aittir.

Quickfix¹:

(1.) ComputerB'de (uzak sunucu) yeni bir kısıtlanmamış (ve kalıcı!) Oturum yapılandırması oluşturun:

New-PSSessionConfigurationFile -RunAsVirtualAccount -Path .\VirtualAccount.pssc
# Note this will restart the WinRM service:
Register-PSSessionConfiguration -Name 'VirtualAccount' [-ShowSecurityDescriptorUI] -Path .\VirtualAccount.pssc -Force
# Check the Permission property:
Get-PSSessionConfiguration -Name 'VirtualAccount'
# Those users will have full unrestricted access to the system!

(2.) ComputerA'dan (yerel istemci) ComputerB'deki sınırsız oturum yapılandırmamıza bağlanın:

New-PSSession -ComputerName 'ComputerB' -ConfigurationName 'VirtualAccount' | Enter-PSSession
[ComputerB]: new-object -com "Microsoft.Update.Downloader" # Yay!

¹ /programming//a/60046097/1322112 adresinden kopyalandı


Bu bana yardımcı oldu! Bana JEA'nın harika olduğunu hatırlattığın için teşekkürler!
B_Dubb42
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.