>  기사  >  백엔드 개발  >  관리자 권한으로 Powershell 프로세스를 시작하고 stdin(os.exec)을 리디렉션하는 방법

관리자 권한으로 Powershell 프로세스를 시작하고 stdin(os.exec)을 리디렉션하는 방법

王林
王林앞으로
2024-02-10 19:03:19426검색

如何使用管理员权限启动 powershell 进程并重定向 stdin (os.exec)

PHP 편집자 Zimo는 오늘 관리자 권한으로 powershell 프로세스를 시작하고 stdin을 리디렉션하는 방법을 공유합니다. 경우에 따라 관리자 권한으로 powershell 스크립트를 실행해야 하지만 직접 실행하면 권한 문제가 발생할 수 있습니다. 이때 os.exec 함수를 사용하여 이를 달성할 수 있습니다. os.exec 함수는 프로세스를 시작하고 입력을 스크립트로 리디렉션합니다. 이렇게 하면 스크립트에서 관리자 권한으로 명령을 실행하고 입력을 받을 수 있습니다. 이 기사에서는 이 방법을 사용하여 권한 문제를 해결하는 방법을 자세히 소개하며 모든 사람에게 도움이 되기를 바랍니다.

질문 내용

관리자 권한으로 powershell 프로세스를 시작하고 stdin을 작성자에게 리디렉션하고 싶습니다. 관리자로 실행하는 방법을 제외하고는 모든 것이 작동합니다.

으아악

process.verb처럼 "runas"로 설정할 수 있는 것이 없는 것 같아서, powershell 명령 start-process ... -verb를 사용하여 powershell을 만들어 보았습니다. runas 프로세스 및 프로세스의 pid 획득에 성공했지만 나중에 stdin 및 stdout 작업에 pid를 사용할 수 없는 것 같습니다. process.verb 这样的东西可以设置为“runas”,所以我尝试使用 powershell 命令 start-process ... -verb runas 创建一个 powershell 进程并获取了该进程的 pid成功了,但似乎无法稍后使用 pid 来操作 stdin 和 stdout。

解决方法

感谢@jeroen-mostert,我有点明白了。我以管理员身份启动了 go 可执行文件,并使用了 StartProcess powershell.exe -verb RunAs

Solution🎜🎜@jeroen-mostert 덕분에 어느 정도 알아냈어요. 관리자로 go 실행 파일을 시작하고 StartProcess powershell.exe -verb RunAs를 사용했는데 처음에는 원하는 대로 작동하지 않았지만 적어도 powershell에서는 더 이상 작동하지 않습니다. UAC. 🎜

위 내용은 관리자 권한으로 Powershell 프로세스를 시작하고 stdin(os.exec)을 리디렉션하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제