저는 Windows Server 2003 r2 상자를 물려받았습니다. 컴퓨터에서 실행하는 데 필요한 Powershell 스크립트가 있지만 시스템에 심각한 문제가 있는 것 같습니다. 예를 들어 Powershell 콘솔을 열고 입력하면 ipconfig
다음과 같은 응답을 받습니다.
The term 'ipconfig' is not recognized as a cmdlet, function, operable program, or script file. Verify the term and try again.
내 Powershell 스크립트가 pscp.exe(putty 프로젝트에서)를 호출하려고 하는데 위와 같은 오류가 발생합니다.
첫 번째 의심은 경로 문제라는 것이었고, 환경 변수 창을 열었을 때 변수는 PATH
존재하지도 않았습니다. 그래서 나는 그것을 생성하고 포함된 디렉토리가 pscp
거기에 나열되어 있는지 확인했습니다. 아직 주사위가 없습니다.
PATH
변수(%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;) 에 몇 가지 기본 항목을 추가하면 cmd.exe에서 동일한 명령(ipconfig 또는 pscp)을 실행하면 예상대로 작동합니다 .
$env:path
Powershell에서는 변수 값을 반환 PATH
하지만 Powershell은 여전히 해당 디렉터리에 있는 프로그램을 실행하지 않습니다. get-host | select version
1.0.0.0을 반환합니다.
힌트가 있나요?
답변1
환경이 조금 엉망이 된 것 같습니다. 다음은 몇 가지 추가 문제 해결 단계입니다. 그 중 하나가 더 유용한 정보를 제공할 수 있기를 바랍니다.
전체 경로: c:\windows\system32\ipconfig.exe를 사용하여 명령을 실행해 보십시오.
Invoke-expression cmdlet을 사용해 보세요.
invoke-expression -command "ipconfig"
또는:
invoke-expression -command "c:\windows\system32\ipconfig.exe"
.Net 프로세스 공급자를 사용해 보십시오(호출 결과를 볼 수는 없지만 유용할 수 있는 일부 정보는 제공됩니다).
[System.Diagnostics.Process]::Start("c:\windows\system32\ipconfig.exe")
답변2
달리고 powershell -NoProfile
일이 작동하는지 확인하십시오. 그렇다면. 그렇다면 문제는 으로 편집할 수 있는 프로필 스크립트입니다 notepad $profile
.
CMD 창을 열고 ipconfig
거기서 실행해 보세요. CMD에서는 작동하지만 PowerShell에서는 작동하지 않는 경우 각각의 환경을 비교하십시오. 가장 쉬운 방법은 아마도 CMD에서 실행 하고 PowerShell 창에서 set
실행하여 결과를 비교하는 것입니다.cmd.exe /C set
답변3
다른 환경 변수의 관점에서 표현된 PATH를 보는 것은 약간 이상합니다. 그것이 상황을 이상하게 만들 수 있는지 궁금합니다.
예를 들어, PATH 변수에 표시될 것으로 예상되는 내용은 다음과 같습니다(C:가 기본 설치 드라이브라고 가정).
PATH=C:\Windows\System32;C:\Windows;C:\Windows\System32\Wbem;