itsource

PowerShell에서 CMD 명령 실행

mycopycode 2023. 5. 7. 11:26
반응형

PowerShell에서 CMD 명령 실행

PowerShell 명령을 실행하는 데 많은 문제가 있습니다.이 기능은 CMD 프롬프트 창에서 실행되는 명령을 실행하는 것뿐입니다.

다음은 명령입니다.

"C:\Program Files (x86)\Microsoft Configuration Manager\AdminConsole\bin\i386\CmRcViewer.exe" PCNAME

저는 다음을 시도했지만 성공하지 못했습니다. (저는 효과가 있는 것을 얻기 위해 이 작업을 여러 번 시도했습니다.구문이 모두 잘못되었을 수 있습니다):

$TEXT = $textbox.Text #$textbox is where the user enters the PC name.
$CMDCOMMAND = "C:\Program Files (x86)\Microsoft Configuration Manager\AdminConsole\bin\i386\CmRcViewer.exe"
Start-Process '"$CMDCOMMAND" $TEXT'
#iex -Command ('"C:\Program Files (x86)\Microsoft Configuration Manager\AdminConsole\bin\i386\CmRcViewer.exe"' $TEXT)

이 명령을 실행하면 사용자가 텍스트 상자에 지정한 컴퓨터에 SCCM 원격 연결 창이 열립니다.

사용해 보십시오.

& "C:\Program Files (x86)\Microsoft Configuration Manager\AdminConsole\bin\i386\CmRcViewer.exe" PCNAME

PowerShell에서 문자열 "..."은 문자열일 뿐이며 PowerShell은 이를 화면에 반향하여 평가합니다.PowerShell에서 이름이 문자열에 있는 명령을 실행하도록 하려면 호출 연산자를 사용합니다.&.

PowerShell에서 배치 파일을 외부에서 실행하거나 변환(특히 예약된 모든 작업 스크립트에 인증서를 서명하려는 경우)단순히 PowerShell 스크립트(예: delete folders.ps1)를 만듭니다.

스크립트에 다음을 입력합니다.

cmd.exe /c "rd /s /q C:\#TEMP\test1"

cmd.exe /c "rd /s /q C:\#TEMP\test2"

cmd.exe /c "rd /s /q C:\#TEMP\test3"

*각 명령은 cmd.exe를 호출하는 새 줄에 다시 놓아야 합니다.

이제 PowerShell에서 명령 프롬프트 /로 명령을 출력하여 이 스크립트를 서명하고 실행할 수 있습니다.cmd직접적으로.

배치 파일을 실행하는 것보다 훨씬 안전한 방법입니다!

한 가지 해결책은 PowerShell에서 CMD로 명령을 파이프로 연결하는 입니다. 다음 명령을 실행하면 다음 명령이 파이프로 연결됩니다.notepad.exeCMD로 명령을 전송하면 메모장 응용 프로그램이 열립니다.

PS C:\> "notepad.exe" | cmd

명령이 CMD에서 실행되면 PowerShell 프롬프트로 돌아가 PowerShell 스크립트를 계속 실행할 수 있습니다.


편집

CMD의 시작 메시지가 표시됨

mklement0에서 지적했듯이 이 메서드는 CMD의 시작 메시지를 표시합니다.위의 방법을 사용하여 출력을 다른 터미널로 복사할 경우 시작 메시지가 함께 복사됩니다.

이 정보가 필요한 사용자:

나는 당신이 당신의 안에 있는 명령을 거의 실행할 수 있다는 것을 알았습니다.PATHPS 스크립트에서 사용할 수 있습니다.

때때로 이 명령을 사용하여 사전 실행해야 할 수 있습니다.cmd.exe /c

PS 스크립트에서 Git 호출

다시 포장해야 했습니다.gitChocolaty(모르는 사람들을 위해, 그것은 Windows용 패키지 관리자)로 포장된 클라이언트로 PS 스크립트를 대량으로 사용합니다.

는 그것을 한 때 .git에 있습니다.PATH과 같은 명령

$ca_bundle = git config --get http.sslCAInfo

합니다.git crt줄을 지어 들어가다$ca_bundle변수.

앱 찾기

현재 SO 게시물과 이 SO 게시물의 조합인 또 다른 예는 다음과 같습니다.where

$java_exe = cmd.exe /c where java

합니다.java.exe줄을 지어 들어가다$java_exe변수.

이 외부 프로그램을 시작하려면 Invoke-Command cmdlet을 사용해야 합니다.일반적으로 그것은 노력 없이 작동합니다.

두 개 Invoke-Expression cmdlet을 .-scriptblock선택.

언급URL : https://stackoverflow.com/questions/24940243/running-cmd-command-in-powershell

반응형