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에서 이름이 문자열로 된 명령을 실행하도록하려면 call operator를 사용합니다 &
.
답변
PowerShell에서 외부 적으로 배치 파일을 실행하거나 변환하려면 (특히 예약 된 모든 작업 스크립트에 인증서에 서명하려는 경우) 간단히 PowerShell 스크립트 (예 : deletefolders.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.exe
CMD로 파이프 되어 메모장 응용 프로그램이 열립니다.
PS C:\> "notepad.exe" | cmd
명령이 CMD에서 실행되면 PowerShell 프롬프트로 돌아가고 PowerShell 스크립트를 계속 실행할 수 있습니다.
편집
CMD의 시작 메시지가 표시됩니다.
로 mklement0 점에서,이 방법은 쇼 CMD의 시작 메시지. 위의 방법을 사용하여 출력을 다른 터미널에 복사하면 시작 메시지도 함께 복사됩니다.
답변
이 정보가 필요한 사람들을 위해 :
나는 당신 PATH
이 PS 스크립트 에서 당신의 명령을 거의 실행할 수 있다는 것을 알았고 그것은 작동해야합니다.
때때로이 명령을 사전 실행해야 할 수 있습니다. cmd.exe /c
예
PS 스크립트에서 git 호출
PS 스크립트를 대량으로 사용 하는 git
클라이언트 를 다시 포장해야했습니다 Chocolatey
(모르는 사람들에게는 일종의 Windows 용 앱 스토어입니다).
한 번 , 다음과 같은 명령 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을 사용해야합니다. 일반적으로 노력없이 작동합니다.
둘 이상의 명령이 필요한 경우 -scriptblock
옵션 과 함께 Invoke-Expression cmdlet을 사용해야합니다 .
답변
