가정 사용자를 위한 PowerShell 사용 - 초보자 가이드

그들이 마법사가 되어 마법 같은 일이 일어나도록 몇 마디 말을 하고 싶지 않은 사람이 어디 있겠습니까? 글쎄(Well) , 우리는 마법사가 되는 방법을 보여줄 수는 없지만 약간의 컴퓨터 마술을 하는 방법은 보여줄 수 있습니다.

Windows (PowerShell)7 이 설치된 (Windows 7)Windows 컴퓨터가 있다면 PowerShell이 ​​있습니다. 또한 Windows 7 이 설치된 컴퓨터가 있는 경우 보안을 위해 업데이트하십시오.

그러나 이 기사는 Windows(Windows) 사용자 만을 위한 것이 아닙니다 . 최신 버전의 PowerShell 은 무료이며 Mac 및 Linux 컴퓨터에 설치하여 사용할 수 있습니다.

PowerShell 에 대해 배운 내용은 이제 거의 모든 컴퓨터에서 사용할 수 있기 때문에 중요합니다. 누가 알아? 이 기술을 한 단계 더 발전시키고 정보 기술(Information Technology) 분야의 경력을 쌓을 수 있습니다.

파워쉘이란?

Microsoft 의 첨단 기술 답변 은 이것이 시스템 관리자를 위해 특별히 설계된 "명령줄 셸"이라는 것입니다. — 위협적으로 들리 네요. (” Sounds)하지만 그렇지 않습니다. 당신은 컴퓨터를 돌보고 있습니까? 예, 그렇다면 당신은 집의 시스템 관리자입니다.

클릭과 키 입력으로 무엇을 해야 하는지 컴퓨터에 지시합니까? 예, 따라서 명령줄 셸을 컴퓨터에 수행할 작업을 지시하기 위해 입력하는 또 다른 창이라고 생각하십시오. 당신은 이것을 할 수 있습니다.

PowerShell 은 프로그래밍 언어와 비슷하지만 대부분의 언어만큼은 아닙니다. 그것은 정말 일반 영어(English) 와 매우 흡사 합니다. 이것은 프로그래머가 아닌 사람들이 선택할 수 있도록 Microsoft 가 노력한 것입니다.(Microsoft)

스크립트라고 하는 몇 줄의 명령을 작성하여 Windows 운영 체제가 원하는 작업을 수행하도록 하는 방법입니다. 그런 다음 해당 줄을 파일에 저장하고 클릭 한 번으로 실행하거나 주기적으로 실행하도록 예약할 수 있습니다.

PowerShell로 무엇을 할 수 있습니까?

PowerShell 의 상위 레벨 포인트는 작업을 자동화할 수 있으므로 일상적인 일을 반복적으로 하느라 시간을 낭비할 필요가 없다는 것입니다. 전문 시스템 관리자(Systems Administrator) 의 경우 새 사용자를 만들고 암호를 생성하고 새 감독자에게 세부 정보가 포함된 전자 메일을 보내는 것과 같은 작업일 수 있습니다.

클릭과 타이핑을 통해 수동으로 수행하는 이 프로세스는 5분에서 최대 1시간 이상이 소요될 수 있습니다. 올바른 스크립트를 사용하면 시스템 관리자(Systems Administrator) 가 그 중 어떤 부분도 수행하지 않아도 됩니다.

하지만 집에서 PowerShell 로 무엇을 할 수 있는지 알고 싶습니다 . 반복해서 하는 것을 좋아하지 않는 거의 모든 것. 필요하지 않은 임시 및 로그 파일을 삭제하여 하드 드라이브의 공간을 확보하는 데 사용합니다.

자녀의 컴퓨터에 통행금지를 설정하십시오. 파일의 이름을 바꾸(Rename) 거나 정리합니다. 이것이 PowerShell(PowerShell) 의 아름다움입니다 . 컴퓨터에서 할 수 있는 거의 모든 작업을 (Almost)PowerShell 스크립트를 만들어 클릭 한 번으로 또는 일정에 따라 자동화하고 실행할 수 있습니다.

PowerShell을 어떻게 사용합니까?

PowerShell 을 사용하는 가장 쉬운 방법 은 PowerShell ISE(통합 스크립팅 환경)(PowerShell Integrated Scripting Environment (ISE)) 에서 작업하는 것 입니다. 시작(Start) 을 클릭 하고 Windows 10 의 검색 창에 powershell ise 를 입력 하여 찾을 수 있습니다 . 아래 그림과 같이 표시되어야 합니다.

처음 사용하는 경우 관리자(Administrator) 로 실행할 것 입니다. 이렇게 하려면 먼저 컴퓨터에 대한 관리자 권한이 있어야 합니다. 시작 메뉴(Start Menu) 에서 PowerShell ISE 를 마우스 오른쪽 버튼으로 클릭 한 다음 관리자 권한으로 실행(Run as Administrator) 을 클릭합니다 .

이 작업을 수행할 것인지 묻는 UAC ( 사용자 액세스 제어(User Access Control) ) 경고 팝업 이 나타날 수 있습니다 . (Yes) 를 클릭 합니다.

이제 PowerShell IDE 를 보고 있습니다 . 창 (1)((1)) 의 상단 창은 스크립팅 창입니다. 여기에서 스크립트를 작성할 것입니다. 창 (2)((2)) 의 하단 창은 콘솔 영역입니다. 스크립트를 테스트할 때 이 창에 출력이 표시됩니다.

스크립트를 수정하고 개선하는 데 도움이 되는 오류 메시지 등이 표시되는 곳이기도 합니다. 창 (3)((3)) 의 오른쪽에 있는 창 은 명령 추가 기능입니다. 사용할 수 있는 모든 PowerShell(PowerShell) 명령 의 사전이라고 생각하십시오 .

PowerShell 은 이미 (PowerShell)Windows 의 일부가 아닌 스크립트를 실행하지 않도록 설정되어 있습니다. 자신의 스크립트를 실행할 수 있도록 변경해야 합니다.

스크립팅 창에서 다음을 복사하여 붙여넣습니다.

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

그것 의 Set-ExecutionPolicy 부분을 cmdlet(commandlet으로 발음)이라고 합니다. cmdlet은 강력한 것입니다. 그것들을 Windows(Windows) 에 줄 수 있는 짧은 명령이라고 생각 하면 (Think)Windows 는 명령을 만족시키기 위해 더 복잡한 작업을 수행할 것입니다.

비유하자면 아이에게 방을 청소하라고 말하는 것입니다. 짧고(Short) 요점입니다. 당신의 아이가 방 청소에 능숙하다면, 그들은 가서 침대를 정리하고, 빨래를 바구니에 넣고, 장난감과 책을 선반에 놓고, 심지어 바닥을 진공 청소기로 청소할 것입니다. 그들은 cmdlet Clean-YourRoom 이 모든 것을 의미한다는 것을 이해합니다.

창 상단에 녹색 화살촉이 표시됩니다. 그것을 클릭(Click) 하여 명령을 실행하십시오.

-ExecutionPolicy 부분은 Set-ExecutionPolicy (-ExecutionPolicy) 설정할 정책을 알려줍니다. 매개변수입니다. "이 지침 내에서 작업하고 구체적으로 수행하기를 바랍니다. RemoteSigned 의 특정 정책을 사용하도록 지시합니다 .

RemoteSigned 정책에 따르면 신뢰할 수 있는 게시자가 서명하지 않은 경우 PowerShell인터넷(Internet) 에서 다운로드한 스크립트를 실행하거나 실행할 수 없습니다 .

우회 방식으로, 원격 신뢰할 수 있는 게시자가 서명할 필요가 없기 때문에 로컬로 생성된 스크립트를 실행해도 괜찮다고 PowerShell 에 알립니다. (PowerShell)이제 PowerShell 스크립트는 컴퓨터에 작성하는 모든 스크립트를 실행할 수 있습니다.

임시 파일을 삭제하는 스크립트를 살펴보겠습니다. CCleaner 만큼 강력하거나 철저 하지는 않지만 CCleaner 에는 자체 문제 세트가 있습니다.

PowerShell(Use PowerShell) 을 사용하여 하드 드라이브(Your Hard Drive)공간 만들기(Create Space)

이 스크립트를 한 줄씩 분해하여 작동 방식을 확인할 수 있습니다. 마지막에 스크립트가 완전히 표시되므로 원하는 경우 복사하여 붙여넣을 수 있습니다.

$TempFileLocation = "C:\Users\username\Appdata\Local\Temp\*"

앞에 달러 기호가 있는 것은 변수 이름입니다. 귀중품을 넣어두는 지갑이라고 생각하시면 됩니다. 지갑(Wallet) 은 달러 기호를 떠올리게 하고 귀중품은 변하기 쉬운 소리를 내기 때문에 우리도 기억할 것입니다. $TempFileLocation 이라는 이름의 지갑 또는 변수를 생성 중 입니다. 등호는 PowerShell 에 해당 변수에 무엇을 넣을지 알려줍니다.

이 경우 Windows의 임시 파일 위치( C:\Users\username\AppData\Local\Temp\* )를 입력 합니다. 우리는 두 가지 이유로 이것을 하고 있습니다. 파일을 삭제하는 데 항상 안전한 위치이며 파일을 삭제하기 위해 이동해야 하는 위치를 PowerShell 에 알려주는 데 이 위치를 사용할 것 입니다.

해당 위치에 사용자 이름이 표시되면 사용자 이름으로 바꾸십시오. 컴퓨터에 로그인하는 데 사용하는 사용자 이름입니다. 끝에 있는 별표(*)는 와일드 카드입니다. Temp 폴더의 모든 항목 은 임시이며 삭제하려고 하기 때문에 Temp 폴더 에 있는 모든 항목을 나타냅니다 .

위치 주변의 큰따옴표도 중요합니다. 이는 PowerShell 에 문자열이 있음을 알려줍니다. 문자열을 문자와 문자의 문자열로 생각하십시오 . (Think)일반 숫자라면 따옴표를 사용하지 않습니다.

$TempFile = Get-ChildItem $TempFileLocation -Recurse

또 다른 변수를 만들고 있습니다. 이번에는 $TempFile 변수에 입력할 항목을 찾기 위해 명령을 사용할 것입니다.

Get-ChildItem 

Get-ChildItem 과 같은 cmdlet에 대해 알 수 있는 또 다른 사항 은 완전히 읽을 수 있다는 것입니다. 첫 번째 단어가 어떻게 동사인지 봅니까? Cmdlet(Cmdlets) 은 모두 작업 단어로 시작하므로 수행 중인 작업을 즉시 알 수 있습니다. ChildItem 은 두 개의 명사입니다.

cmdlet의 두 번째 부분은 항상 PowerShell(PowerShell) 에서 작업을 적용할 항목 을 알려줍니다 . ChildItem은 상위 위치의 모든 하위를 의미합니다. 이것은 폴더에 있는 모든 파일을 가져오라는 말과 같습니다. 파일은 하위 항목이고 폴더는 상위 항목입니다.

하위 항목을 가져오는 cmdlet은 무엇입니까? $TempFileLocation 변수의 모든 것 . PowerShell 은 이전에 $ (PowerShell)TempFileLocation 에 넣은 위치로 이동하여 거기에 있는 모든 자식 항목을 가져옵니다. $TempFile 변수에 저장합니다 .

그렇다면 -Recurse 부분은 어떻게 될까요? 이는 Get-ChildItem(Get-ChildItem) 이 해당 위치의 모든 항목을 통과하도록 지시하는 것입니다. 상위 폴더 내에서 즉시 파일을 가져오지 마십시오. 해당 폴더에 폴더가 있으면 모든 하위 항목도 가져오고 하위 항목도 가져옵니다. 우리는 그들 모두를 얻을 것입니다.

$TempFileCount = ($TempFile).count

$TempFileCount 라는 세 번째 변수를 만들고 해당 변수에 숫자를 입력합니다. 번호가 어디야? 글쎄, ( $TempFile).count 는 우리에게 그 숫자를 얻을 것입니다. $ TempFile 에 방금 저장한 모든 파일의 수를 세는 부분이 .count 부분 이라는 것을 알고 있을 것 입니다.

우리는 왜 이것을 했는가? 대부분의 경우 스크립트의 나머지 부분으로 얼마나 많은 쓸모없는 파일을 정리하여 그것이 얼마나 효과적인지 알 수 있는 것이 좋기 때문입니다.

if($TempFileCount -eq 0)

이제 조건문을 설정합니다. '만약'이라고 묻는 것을 볼 수 있습니다. 만약에? 괄호 안의 내용이 참인지 거짓인지. 대괄호는 중요합니다. 그렇지 않으면 If는 무엇을 비교할지 모릅니다. $TempFileCount 에 저장한 숫자가 0인지 묻습니다 .

-eq 는 equals 의 줄임말입니다. 일종의 비교 연산자입니다. 아이들에게 "방이 깨끗하고 훌륭하다면 우리는 뭔가를 할 것입니다"라고 말하는 것과 같습니다. 이 명령문은 $ TempFileCount 에 저장된 숫자 가 0과 같으면 다음 것.

{Write-Host "There are no files in the folder $TempFileLocation" -ForegroundColor Green}

$TempFileCount 가 0 이면 일어날 일입니다 . 중괄호가 중요합니다. $ TempFileCount 가 0 인 경우에만 PowerShell 에 지시 합니다.

호스트 또는 화면에 "C:\Users\username\Appdata\Local\Temp\* 폴더에 파일이 없습니다."라고 씁니다. 끝에 있는 매개변수 - ForegroundColor 는 텍스트를 녹색으로 만들도록 PowerShell 에 지시 합니다. 이렇게 하면 일반적으로 빨간색인 오류 메시지와 쉽게 구별할 수 있습니다.

Else

당신은 다른 의미를 알고 있습니다. 이것은 "방이 더 깨끗하거나 그렇지 않으면" 자녀가 방을 청소했는지 확인하는 부분입니다. $TempFileCount 가 0이 아닌 경우 발생 합니다.

{$TempFile | Remove-Item -WhatIf -Confirm:$false -Recurse -Force -WarningAction SilentlyContinue -ErrorAction SilentlyContinue}

$TempFile 에 저장된 현재 위치로 이동합니다 . 그 뒤의 수직선을 파이프라고 합니다. $ TempFile 의 내용을 세탁기로 파이프로 보내는 것처럼 PowerShell 에 cmdlet으로 유입시키 도록 지시하므로 실제 파이프와 같은 기능을 합니다. 그런 다음 cmdlet Remove-Item 이 지시한 대로 수행합니다. 해당 위치에 있는 모든 것을 제거합니다.

-WhatIf 매개변수는 이 단계에서 매우 중요합니다. 명령을 실행하도록 PowerShell(PowerShell) 에 지시 하지만 아무 것도 제거하지 말고 시도하기만 합니다. 우리가 정말로 이것을 했다면 어떤 일이 일어날지 보여주세요 .(Just)

이를 통해 컴퓨터에서 아무 것도 변경하지 않고 명령을 테스트할 수 있습니다. 스크립트가 원하는 작업만 수행하고 다른 작업은 수행하지 않는다는 확신이 들 때까지 -WhatIf를 그대로 두십시오. 그런 다음 그것을 삭제하면 스크립트가 작업을 수행합니다.

-Confirm:$false 매개변수 는 스크립트가 파일을 정말로 삭제할 것인지 묻지 않도록 합니다. -Recurse 가 하는 일을 알고 있습니다. -포스( -Force) 는 무슨 일이 있어도 삭제를 의미합니다. -WarningAction 이 (-WarningAction )SilentlyContinue 로 설정됩니다 .

이렇게 하면 스크립트에서 삭제 중인 항목에 대한 경고가 표시되지 않습니다. -ErrorAction 은 (-ErrorAction)SilentlyContinue 로 설정되어 프로세스에 어떤 종류의 오류가 있는 경우 계속 진행됩니다.

이제 마지막 줄에 있습니다.

Write-Host "Cleared $TempFileCount files in the folder $TempFileLocation" -ForegroundColor Green}

Write-Host 가 처음 한 것처럼 다음 문장을 출력하므로 무슨 일이 일어났는지 알 수 있습니다 . 방금 처리한 폴더에서 삭제된 파일 수를 알려주고 찾기 쉽도록 녹색으로 표시합니다.

스크립트를 전체적으로 살펴보겠습니다.

$TempFileLocation = "C:\Users\guymcd\Appdata\Local\Temp\*"
$TempFile = Get-ChildItem $TempFileLocation -Recurse
$TempFileCount = ($TempFile).count

if($TempFileCount -eq "0") {
Write-Host "There are no files in the folder $TempFileLocation" - ForegroundColor Green
}
Else {
$TempFile | Remove-Item -Confirm:$false -Recurse -Force -WarningAction SilentlyContinue -ErrorAction SilentlyContinue
Write-Host "Cleared $TempFileCount files in the folder $TempFileLocation" -ForegroundColor Green
}

이것을 복사하여 PowerShell ISE 에 붙여넣고 (PowerShell ISE)delete-TemporaryFiles.ps1 과 같이 저장할 수 있습니다 . 이제 이해했으므로 cmdlet의 명명 규칙을 고수할 수도 있습니다.

어떤 이유로 코드가 작동하지 않으면 우리가 만든 PowerShell 스크립트를 다운로드하여 실행할 수도 있습니다. 스크립트 파일을 보려면 먼저 압축을 풉니다 .(Just)

이 스크립트를 실행하려면 스크립트를 마우스 오른쪽 버튼으로 클릭하고 PowerShell로 실행을(Run with PowerShell) 선택하기만 하면 됩니다. 스크립트가 작업을 수행 하는 동안 PowerShell 콘솔이 1~2초 동안 표시되고 오류가 없으면 사라집니다.

PowerShell에 대한 자세한 내용은 어디에서 확인할 수 있습니까?

많은 것 같습니다! 첫 번째 PowerShell 스크립트의 경우 꽤 많습니다. 여기까지 왔다면 스스로에게 박수를 보낸다. 오늘 많은 것을 배웠지만 이제 더 많이 배우고 싶습니다. 대단해!

PowerShell 에 대해 자세히 알아볼 수 있는 리소스가 인터넷(Internet) 에 많이 있습니다. 시작하기에 좋은 곳은 " 명령줄 또는 PowerShell을 통해 시작 프로그램 목록 생성"이라는(Generate a List of Startup Programs via Command Line or PowerShell) 기사 입니다. 그런 다음 다른 리소스를 확인하세요.



About the author

저는 이 분야에서 거의 10년의 경험을 가진 소프트웨어 엔지니어이자 블로거입니다. 저는 Mac 및 Windows 플랫폼을 위한 도구 리뷰 및 튜토리얼 제작을 전문으로 할 뿐만 아니라 소프트웨어 개발 주제에 대한 전문가 논평을 제공합니다. 저는 또한 전 세계의 기술 컨퍼런스에서 프레젠테이션을 한 전문 연사이자 강사입니다.



Related posts