Windows 10의 다른 사용자로 Powershell에서 실행할 때 cmd 또는 Powershell 창을 입력 할 수 없음


2

다음 코드를 실행할 때 :

$creds = Get-Credential -UserName other -Message none
# answering the creds dialogue with correct password here
Start-Process C:\Windows\system32\cmd.exe -Credential $creds

cmd윈도우가 열립니다 (완전히 정상적인 외모와 나는 ... 설정을 변경할 수 있습니다)하지만 난 창에 아무것도 입력 할 수 없습니다. 일반 사용자인지 관리자 계정인지에 관계없이 powershell 자체는 일반 사용자 또는 관리자로 실행됩니다. Powershell이 ​​Sysinternal을 통해 시스템으로 실행될 때를 제외하고 psexec다음과 같은 오류가 발생합니다.

Start-Process : This command cannot be run due to the error: Access denied
At line:1 char:1
+ Start-Process C:\Windows\system32\cmd.exe -Credential $creds
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [Start-Process], InvalidOperationException
    + FullyQualifiedErrorId : InvalidOperationException,Microsoft.PowerShell.Commands.StartProcessCommand

나는 이것을 결합 cmd.exe하고 powershell대신 전체 cmd를 경로와 추가 -NoNewWindow매개 변수를하지만 그 아무것도 차이가합니다 (에도 불구하고 새로운 창을 엽니 다하지 않습니다 -NoNewWindow). runnnig "정상"프로그램이 notepad모든 것과 같이 예상대로 작동하면-예를 들어 실행할 때도 마찬가지 runas /user:other cmd입니다. 현재 테스트 할 Windows [버전 10.0.17134.165] 만 있으며 다른 버전에서 동일한 지 확실하지 않지만 Windows 10 전용 (?)이라고 생각합니다.

Powershell의 또 다른 killjoy 결함 또는 뭔가 빠졌습니까?

답변:


0

여기에는 분명히 이상한 일이 있습니다. 시작 PowerShell 창과 새 명령 프롬프트 모두 새 프로세스가 시작된 후 입력을 받아들이지 않는 것 같습니다. 두 창 사이를 약간 전환 한 후 명령 프롬프트가 일시적으로 키보드 입력을 수락하기 시작하지만 명령을 실행 한 후 다시 정지됩니다.

.NET Framework의 Process.Start방법을 직접 사용하여이 문제를 해결할 수 있습니다 .

$creds = Get-Credential -UserName 'theUser' -Message ' '
[System.Diagnostics.Process]::Start('cmd', $creds.UserName, $creds.Password, '')

기존 PowerShell 창과 마찬가지로 결과 명령 프롬프트가 정상적으로 작동합니다. PowerShell에서 새 프로세스에 대한 일부 정보를 출력하지 않으려면 | Out-Null두 번째 줄의 끝 부분에 고정하십시오.


나는 이것이 문제가되는 콘솔 호스트가 아닌 ISE 및 VSCode에서 실행했다는 것을 신경 쓰지 마십시오.
postanote

Yeppers, 나는 이것을 OP에 의미했다. 그러나 빠른 테스트에서 언급했듯이 이것은 콘솔 호스트 에서이 작업을 수행 할 때만 발생합니다. 어떤 종류의 이상한입니다.
postanote

어떤 이유로 든 내 의견을 편집 할 수 없습니다. 어떤 방법 으로든 .. 그러나 어느 쪽이든 오류가 발생하지 않습니다. cmd 프롬프트는 상호 작용을 허용하지 않습니다. 그러나이 부모 자식 호출에 관한 것이면 cmd.exe를 호출 할 때 콘솔 호스트에 포커스가 있습니다. 게시물을 사용하는 경우 응답이없는 cmd에 아무 것도 입력하고 콘솔 호스트를 클릭하면 입력 한 내용이 나타납니다. 그래서, 그것은 지금까지 내 테스트에서 스위치 포커스 된 것입니다.
postanote
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.