Jalankan powershell jarak jauh sebagai administrator

14

Sebelum saya menyelami pertanyaan itu, saya telah menemukan beberapa pertanyaan lain yang tampaknya mirip dengan pertanyaan saya, tetapi mereka belum dapat menyelesaikan masalah saya. Berikut ini tautan ke mereka:

Jalankan skrip yang menjalankan "Run As Administrator" dari jarak jauh

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

Sekarang ke pertanyaan: Saya perlu menjalankan skrip Pembaruan Windows pada mesin jarak jauh melalui Powershell. Jika saya jauh ke mesin melalui mstsc, jalankan Powershell sebagai administrator dan jalankan skrip Windows Update, itu berfungsi dengan baik. Jika saya jauh ke mesin melalui mstsc, jalankan Powershell TANPA memilih menjalankan sebagai administrator, dan menjalankan skrip, saya akan mendapatkan banyak kesalahan di sepanjang baris ini: "Panggilan pengecualian" Unduh "dengan argumen" 0 ":" Pengecualian dari HRESULT: 0x80240044 ""

Ini hanya terjadi jika saya menjalankannya TANPA hak admin.

Skrip yang saya jalankan adalah ini: http://www.ehow.com/how_8724332_use-powershell-run-windows-updates.html

Sekarang, ketika saya jauh ke mesin menggunakan Enter-PSSession dan mencoba menjalankan skrip saya mendapatkan kesalahan, tetapi mereka sedikit berbeda. Mereka ada di sepanjang baris ini: "Panggilan pengecualian" CreateUpdateDownloader "dengan argumen" 0 ":" Akses ditolak. (Pengecualian dari HRESULT: 0x80070005 (E_ACCESSDENIED)) ""

Saya terbuka untuk saran tentang apa yang bisa menyebabkan masalah ini, tapi saya pikir saya sudah mengetahuinya. Saya percaya bahwa sesi Powershell perlu dijalankan dengan hak istimewa yang tinggi. Saya tahu bagaimana melakukan ini saat mengirim ulang via mstsc, tetapi saya tidak dapat menemukan cara untuk melakukan ini melalui Enter-PSSession. Saya telah mencari Google dan Google, tetapi belum menemukan apa pun. Jika ada yang bisa membantu menjelaskan ini, itu akan sangat dihargai.

Jon
sumber
Saya tidak di konsol untuk menguji, tetapi jika Anda mendapatkan sesi etsn jarak jauh (Enter-PSSession) dapat Anda Ketik "Start-Process PowerShell –Verb RunA" dan tekan Enter. Apakah itu memberi Anda prompt Administrator? Jika demikian, saya akan mengubahnya ke jawaban yang dapat Anda terima. Jika tidak, saya akan menguji ketika saya kembali ke meja saya.
TheCleaner
Kemungkinan jawabannya di sini serverfault.com/a/474031/23300
Nic

Jawaban:

3

Saat Anda menjalankan perintah dari jarak jauh, perintah itu dijalankan dengan hak administratif karena hanya administrator yang diizinkan untuk mengeksekusi perintah dari jarak jauh di PowerShell. Kesalahan, "Panggilan pengecualian" CreateUpdateDownloader "dengan argumen" 0 ":" Akses ditolak. (Pengecualian dari HRESULT: 0x80070005 (E_ACCESSDENIED))) "" bukan kesalahan asli powershell, ini menunjukkan bahwa baris ini gagal: $ UpdatesDownloader = $ UpdateSession.CreateUpdateDownloader (), baris ini mencoba membuat objek yang diperbarui dengan menggunakan $ UpdateSession = Obyek -ComObject baru objek Microsoft.Update.Session.

Tanpa mengetahui di mana pengunduh mencoba menjangkau, saya hanya dapat mengasumsikan induk, itu mungkin menunjukkan bahwa kredensial yang Anda miliki saat terhubung dari jarak jauh ke server bisa menjadi subjek dari proxy. Ini adalah praktik keamanan umum, pengguna yang terhubung dari jarak jauh ke mesin tidak dapat mengunduh item langsung dari internet (tidak peduli seberapa tepercaya sumbernya).

Semoga ini bisa membantu, Chris

Christopher Douglas
sumber
2

Untuk menjalankan perintah powershell jarak jauh, Anda HARUS menjalankannya sebagai administrator di mesin tempat Anda menjalankan perintah, setidaknya di luar kotak konfigurasi. Ini adalah batasan terdokumentasi dari PowerShell remoting, meskipun dimungkinkan untuk mengendurkan default jika Anda ditentukan, tetapi itu akan melibatkan membuat perubahan pada konfigurasi PowerShell.

Untuk eksekusi jarak jauh, apakah Anda menggunakan kredensial menggunakan parameter-kredensial? misalnya

Enter-PSSession -Credential(Get-Credential) -ComputerName <remotehost>
Stephen Connolly
sumber
Dengan Windows 2012 Server dan tanpa pengaturan AD, coba gunakan 'MicrosoftAccount \ Administrator' sebagai kredensial dan gunakan kata sandi Administrator jarak jauh. Menggunakan nama pengguna yang sepenuhnya memenuhi syarat tanpa AD selalu tampak seperti masalah yang tidak perlu bagi saya.
fuero
1

Mengenai Pembaruan Windows pada server jarak jauh, saya dapat membuatnya bekerja dengan mengatur titik akhir JEA pada server jarak jauh untuk dijalankan sebagai akun virtual lokal.

Dari https://docs.microsoft.com/en-us/powershell/jea/session-configurations :

Akun Virtual Lokal

Jika peran yang didukung oleh titik akhir JEA ini semua digunakan untuk mengelola mesin lokal, dan akun administrator lokal cukup untuk menjalankan perintah dengan sukses, Anda harus mengonfigurasi JEA untuk menggunakan akun virtual lokal. Akun virtual adalah akun sementara yang unik untuk pengguna tertentu dan hanya berlangsung selama durasi sesi PowerShell mereka. Pada server anggota atau workstation, akun virtual milik grup Administrator komputer lokal , dan memiliki akses ke sebagian besar sumber daya sistem. Pada Pengontrol Domain Direktori Aktif, akun virtual milik grup Admin Domain domain.

jsmitty
sumber
Ini membantu saya! Terima kasih telah mengingatkan saya bahwa JEA hebat!
B_Dubb42