내 로컬 네트워크(작업 그룹, 도메인 가입 없음)의 대상 컴퓨터에서 특수 명령을 실행하기를 기대합니다.
머신은 이전에 Enable-PSremoting
Windows 원격 관리를 허용하는 등으로 구성되어 있으므로 대상 머신에서 다음과 같이 명령을 실행할 수 있습니다.
start-process와 같은 일부 특수 명령을 시작하려는 경우 로컬 시스템으로 실행되지 않는다는 점을 제외하면 명령은 잘 작동합니다.
예를 들어 로컬 컴퓨터에서 실행하는 경우:
> Start-Process -Filepath "cmd.exe"
cmd 프로세스가 시작됩니다. 원격으로 하면 이렇게 됩니다
Invoke-Command -Computername "my-target-ip" -ScriptBlock {Start-Process -Filepath "cmd.exe"} -Credential get-credential
cmd 창이 대상 컴퓨터에서 실행되지 않습니다.
이를 통해 일부 autoit GUI 구성이 필요하고 업데이트를 일시 중지하고 GUI를 통해 표준 브라우저 앱을 설정하는 것과 같이 powershell을 통해 만들 수 없는 일부 특수 패키지를 대상 컴퓨터에 설치할 수 있습니다. 그렇지 않으면 일부 일반 구성(방화벽 설정, 파일 쓰기, 네트워크 구성 활성화 등)이 제대로 작동합니다.
매우 감사합니다.
답변1
Invoke-Command
비대화형 명령을 위한 것입니다. IIRC를 사용하면 대화형 프롬프트가 표시되지 않으며 물론 원격 컴퓨터에서 프로그램을 시작하려면 시작하기 전에 해당 프로그램이 있어야 합니다.
원격 컴퓨터에서 대화형 세션을 사용하려면 다음을 사용해야 합니다.Enter-PSSession
대신에:
Enter-PSSession -Computer "remote" -Credential (Get-Credential)
이 세션 내에서 정말로 필요한 경우 cmd 프롬프트를 시작할 수 있습니다.
New-PSSession
대화 형이 아닌 여러 관련 명령을 실행해야 하는 경우 Invoke-Command -Session $session
.