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.
sumber
Jawaban:
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
sumber
http://msdn.microsoft.com/en-us/library/windows/desktop/aa387288(v=vs.85).aspx
Itu tidak memungkinkan Anda untuk menyebutnya jarak jauh.
Itulah alasannya. Anda dapat melakukannya melalui tugas yang Dijadwalkan.
sumber
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
sumber
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 :
sumber