itsource

MS가 파워셸을 만들어 해결한 문제는?

mycopycode 2023. 7. 26. 22:04
반응형

MS가 파워셸을 만들어 해결한 문제는?

PowerShell이 저를 혼란스럽게 해서 물어본 것입니다.

PowerShell을 사용하여 몇 가지 배포 스크립트를 작성하려고 했지만 결과에 별로 흥미를 느끼지 못했습니다.저에게는 PowerShell을 사랑하고 모든 면에서 PowerShell을 옹호하는 동료가 있습니다.그 동료는 PowerShell이 강한 셸로 작성된 적이 없으며 대신 다음을 위해 작성되었다고 주장합니다.

훔쳐보고 찌를 수 있습니다.명령줄의 NET 어셈블리(PowerShell이 존재하는 이유는 무엇입니까?)

에서 호스팅됩니다.자동화를 위한 NET 응용 프로그램, KDE의 DCOP 및 Gnome이 CORBA를 사용하는 방식과 유사합니다.

"로 취급됩니다.(b와 관련된) 실제 셸이 아닌 NET 스크립트".

Windows에서 자동화 스크립트를 실행할 수 있는 적절한 방법을 찾을 수 없다고 항상 느꼈습니다. cmd는 많은 경우에 너무 단순하고 WSH는 너무 둔합니다(조합을 성공적으로 사용할 수 있지만, 저는 팬이 아닙니다.PowerShell에 대해 처음 들었을 때 Windows가 드디어 많은 작업을 자동화하는 데 도움이 될 만한 수준의 셸을 갖게 되었다고 느꼈지만, 최근의 경험과 동료들은 그렇지 않다고 말합니다.

분명히 말씀드리면, 저는 그것이 기반을 두고 있다는 사실에 이의를 제기하지 않습니다.NET 즉, 텍스트가 아닌 객체를 전달한다는 것입니다(제 유닉스 배경에도 불구하고 :]). PowerShell이 쓸모없다고 주장하는 것은 아니지만, 제가 보기에 PowerShell이 매우 잘 해결되기를 바랐던 문제를 해결하지는 못합니다.밖으로 나오자마자.NET/Powershell 월드, 모든 것이 당신에게 더 이상 좋고 아늑하지 않습니다.

그래서 그 모든 것들이 사라졌는데, MS가 PowerShell을 만들어서 어떤 문제를 해결했을까요, 아니면 제가 의심하는 것처럼 정치적인 나쁜 아이일까요?저는 구글 검색을 해봤지만 저에게 충분한 답변을 주지 못했습니다. 인용 횟수가 많을수록 더 좋습니다.

PowerShell은 실제로 여러 가지 기능으로 구축되었습니다.성숙하고 확장 가능한 자동화 플랫폼 및 최신 관리 셸.

전자는 주로 최근 Exchange 및 기타 서버 제품의 관리 GUI에 사용됩니다.GUI는 PowerShell을 둘러싼 래퍼일 뿐이며, 이는 뒤에서 무거운 짐을 들어줍니다(UNIX GUI 프로그램이 명령줄 프로그램의 래퍼로 등장하는 것과 비슷합니다).

Jeffrey Snover(PowerShell 발명가)는 PowerShell이 어떤 목표와 문제를 해결해야 하는지에 대해 자세히 설명합니다.

PowerShell을 셸로 사용하는 것은 cmd(보기 쉬운)와 Windows Script Host(Windows Script Host)를 대체하기 위한 것이 분명하다고 생각합니다.과거의 NET [ActiveScripting을 지원하는 단일 플랫폼, 여러 언어]를 지원합니다.NET 마이크로소프트는 기본적으로 그것을 잠재웠고 부활은 아마도 그들에게 선택사항이 아닐 것입니다.)

Windows 관리의 대부분의 측면을 한 번만 학습하면 되는 일반적인 개념과 방법으로 통합합니다.에 매우 . 에서 나올때 할 수 NET/PowerShell만 수 NET/ »String[]cmd에 합니다. 를 수행할 수 .그러나 대부분의 경우 cmd에 대한 외부 프로그램을 호출합니다. cmdlet을 사용하면 이를 수행할 수 있습니다.

개발자로서, 저는 더 이상 많은 콘솔 애플리케이션 42 프로젝트를 폴더에 저장할 수 없습니다.

제가 거의 모든 IT 작업(DBA, 라우터 조작, 스위치에서 통화 세부 레코드 꺼내기, 고객을 위한 모니터 및 그래프 대역폭 등)을 수행하는 작은 회사의 개발자로서 PowerShell은 Windows에서 절실히 필요로 하는 공백을 메우고 이를 기반으로 합니다.NET은 PowerShell 파이프라인이 수백만 번의 반복을 처리하기에 너무 느리거나 보다 영구적이고 강력한 유형의 구현이 필요할 때 원활한 업그레이드 경로를 제공합니다.

어쨌든 문제는 긴급한 요구사항이 없다면 PowerShell로 전환하는 이유가 무엇입니까?기본적으로 마이크로소프트의 모든 것을 위한 새로운 관리 인터페이스이기 때문에 지금 배우는 것이 좋습니다.하지만 그것이 여러분에게 영향을 미치지 않는다면, 여러분이 아무것도 얻지 못한다고 생각하더라도 신경 쓰지 마세요.

EDIT (아래 주석에 대한 답변)

를 사용하려는 것처럼 들립니다.호출자가 읽을 수 있도록 exe를 실행하고 stdout을 리디렉션하는 NET 프로세스 클래스입니다.나는 그것이 골칫거리라는 것에 동의합니다.하지만 다행히도 PowerShell은 이 모든 것을 아주 간단하게 해줍니다.결과를 캡처하여 디스플레이에 기록하는 것도 매우 간단합니다. 명령어가 자주 사용되지 않기 때문에 잘 알려지지는 않았지만 말입니다.다음은 예입니다.

# I always find it easier to use aliases for external commands
Set-Alias csc C:\Windows\Microsoft.NET\Framework64\v3.5\csc.exe

# Create some source file
Set-Content test.cs @"
class Program {
    static void Main() {
        System.Console.WriteLine("Hello World");
    }
}
"@

# Call CSC.EXE
# the output of csc.exe is written to results.txt and piped
# to the host (or select-string if you prefer)
csc test.cs | Tee-Object -file results.txt

# Check for errors
if ($LASTEXITCODE) { 
    # this is where community extensions would come in
    # handy. powershell 2.0 also has a command to send
    # mail but in 1.0 you can grab one from poshcode.org
}

IMHO의 주요 장점은 명령 콘솔에서 합리적인 잘라내기 및 붙여넣기입니다.

그렇지 않으면 Windows에서 스크립팅에 ActiveState의 ActivePerl을 사용합니다.이 기능은 다른 Windows 셸 스크립트보다 훨씬 강력하며 OLE 인터페이스는 사용하기 쉬운 방식으로 전체 Windows API를 표시합니다.

언급URL : https://stackoverflow.com/questions/967679/what-problem-did-ms-solve-by-creating-powershell

반응형