관리자로 원격 Powershell 실행


14

질문에 뛰어 들기 전에 내 것과 비슷한 몇 가지 다른 질문을 찾았지만 내 문제를 해결할 수 없었습니다. 그들에 대한 링크는 다음과 같습니다.

"관리자 권한으로 실행"을 호출하는 스크립트를 원격으로 실행

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

이제 질문에 : Powershell을 통해 원격 컴퓨터에서 Windows Update 스크립트를 실행해야합니다. mstsc를 통해 컴퓨터에 원격으로 접속 한 경우 Powershell을 관리자로 실행하고 Windows Update 스크립트를 실행하면 제대로 작동합니다. mstsc를 통해 컴퓨터에 원격으로 접속 한 경우 관리자로 실행을 선택하지 않고 Powershell을 실행하고 스크립트를 실행하면 "0"인수와 함께 "Download 호출 예외": " HRESULT 예외 : 0x80240044 ""

관리자 권한없이 실행하는 경우에만 발생합니다.

내가 실행중인 스크립트는 다음과 같습니다 : http://www.ehow.com/how_8724332_use-powershell-run-windows-updates.html

이제 Enter-PSSession을 사용하여 컴퓨터에 원격으로 들어가 스크립트를 실행하려고하면 오류가 발생하지만 약간 다릅니다. "0"인수로 "CreateUpdateDownloader"호출 중 예외 : "액세스가 거부되었습니다. (HRESULT 예외 : 0x80070005 (E_ACCESSDENIED)) ""

나는이 문제를 일으킬 수있는 것에 대한 제안에 개방적이지만, 내가 알아 냈다고 생각합니다. Powershell 세션은 높은 권한으로 실행해야한다고 생각합니다. mstsc를 통해 원격 으로이 작업을 수행하는 방법을 알고 있지만 Enter-PSSession을 통해이 작업을 수행 할 수있는 방법을 찾지 못했습니다. Googled와 Googled가 있지만 아무것도 찾지 못했습니다. 누군가 이것에 대해 약간의 도움을 줄 수 있다면 크게 감사하겠습니다.


테스트 할 콘솔이 아니지만 원격 etsn 세션 (Enter-PSSession)이 표시되면 "Start-Process PowerShell –Verb RunAs"를 입력하고 Enter를 누릅니다. 관리자 프롬프트가 표시됩니까? 그렇다면이 답변을 수락 할 수있는 답변으로 변경하겠습니다. 그렇지 않은 경우, 나는 책상에 돌아 왔을 때 테스트 할 것이다.
TheCleaner

여기에 가능한 대답 serverfault.com/a/474031/23300
Nic

답변:


3

원격으로 명령을 실행하면 관리자 만 powershell에서 명령을 원격으로 실행할 수 있으므로 관리자 권한으로 실행됩니다. "0"인수로 "CreateUpdateDownloader"호출 중 예외 : "액세스가 거부되었습니다. (HRESULT 예외 : 0x80070005 (E_ACCESSDENIED)) ""는 기본 powershell 오류가 아니며이 행이 실패 함을 나타냅니다. $ UpdatesDownloader = $ UpdateSession.CreateUpdateDownloader (),이 행은 $ UpdateSession을 사용하여 updatedownloader 오브젝트를 작성하려고합니다. = New-Object -ComObject Microsoft.Update.Session 개체입니다.

다운로더가 연락을 시도하는 위치를 모르는 경우 모성으로 만 가정 할 수 있습니다. 서버에 원격으로 연결되어있는 동안 보유한 자격 증명이 프록시의 대상이 될 수 있음을 나타낼 수 있습니다. 이것은 일반적인 보안 관행이며, 컴퓨터에 원격으로 연결된 사용자는 인터넷을 통해 항목을 다운로드 할 수 없습니다 (소스를 얼마나 신뢰할 수 있는지에 관계없이).

이게 도움이 되길 바래, 크리스



2

원격 powershell 명령을 실행하려면 최소한 기본 구성에서 명령을 실행하는 시스템에서 관리자로 실행해야합니다. 문서화 된 PowerShell 원격의 제한 사항이지만 결정된 경우 기본값을 완화 할 수 있지만 PowerShell 구성을 변경해야합니다.

원격 실행을 위해 -credentials 매개 변수를 사용하여 신임 정보를 전달합니까? 예 :

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

Windows 2012 Server에서 AD가 설정되지 않은 경우 'MicrosoftAccount \ Administrator'를 자격 증명으로 사용하고 원격 관리자 암호를 사용하십시오. AD없이 정규화 된 사용자 이름을 사용하는 것은 항상 불필요한 번거 로움이되었습니다.
fuero

1

원격 서버의 Windows Update와 관련하여 원격 서버에서 로컬 가상 계정으로 실행되도록 JEA 끝점을 설정하여 작동시킬 수있었습니다.

에서 https://docs.microsoft.com/en-us/powershell/scripting/learn/remoting/jea/session-configurations :

로컬 가상 계정

이 JEA 끝점에서 지원하는 역할이 모두 로컬 컴퓨터를 관리하는 데 사용되고 로컬 관리자 계정으로 명령을 성공적으로 실행하기에 충분하면 로컬 가상 계정을 사용하도록 JEA를 구성해야합니다. 가상 계정은 특정 사용자에게 고유 한 임시 계정으로 PowerShell 세션 기간 동안 만 지속됩니다. 구성원 서버 또는 워크 스테이션에서 가상 계정은 로컬 컴퓨터의 Administrators 그룹에 속하며 대부분의 시스템 리소스에 액세스 할 수 있습니다. Active Directory 도메인 컨트롤러에서 가상 계정은 도메인의 Domain Admins 그룹에 속합니다.

퀵 픽스 ¹ :

(1.) ComputerB (원격 서버)에서 새로운 무제한 세션 구성을 만듭니다.

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 (로컬 클라이언트)에서 ComputerB의 무제한 세션 구성에 연결합니다.

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

¹ /programming//a/60046097/1322112 에서 복사


이것은 나를 도왔다! JEA가 훌륭하다는 것을 상기시켜 주셔서 감사합니다!
B_Dubb42
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.