그들이 마법사가 되어 마법 같은 일이 일어나도록 몇 마디 말을 하고 싶지 않은 사람이 어디 있겠습니까? 글쎄, 우리는 마법사가 되는 방법을 보여줄 수는 없지만 약간의 컴퓨터 마술을 하는 방법은 보여줄 수 있습니다.
Windows 7이 설치된 Windows 컴퓨터가 있다면 PowerShell이 있습니다. 또한 Windows 7이 설치된 컴퓨터의 경우 보안을 위해 업데이트하시기 바랍니다.
그러나 이 기사는 Windows 사용자만을 위한 것이 아닙니다. 최신 버전의 PowerShell은 무료이며 Mac 및 Linux 컴퓨터에 설치하여 사용할 수 있습니다.
PowerShell에 대해 배운 내용은 이제 거의 모든 컴퓨터에서 사용할 수 있기 때문에 중요합니다. 누가 알아? 이 기술을 한 단계 더 발전시켜 정보 기술 분야의 경력을 쌓을 수 있습니다.
PowerShell이란 무엇입니까?
Microsoft의 첨단 기술 답변은 "...시스템 관리자를 위해 특별히 설계된 명령줄 셸"입니다. 위협적으로 들리네요. 하지만 그렇지 않습니다. 당신은 컴퓨터를 돌보고 있습니까? 예, 그렇다면 당신은 집의 시스템 관리자입니다.
클릭과 키 입력으로 무엇을 해야 하는지 컴퓨터에 지시합니까? 예, 따라서 명령줄 셸을 컴퓨터에 수행할 작업을 지시하기 위해 입력하는 또 다른 창이라고 생각하십시오. 할 수 있습니다.
PowerShell은 프로그래밍 언어와 비슷하지만 대부분의 언어만큼은 아닙니다. 그것은 정말로 일반 영어와 매우 흡사합니다. 이것은 프로그래머가 아닌 사람들이 선택할 수 있도록 Microsoft가 노력한 것입니다.
스크립트라고 하는 몇 줄의 명령을 작성하여 Windows 운영 체제가 원하는 작업을 수행하도록 하는 방법입니다. 그런 다음 해당 줄을 파일에 저장하고 클릭 한 번으로 실행하거나 주기적으로 실행하도록 예약할 수 있습니다.
PowerShell로 무엇을 할 수 있나요?
PowerShell의 상위 레벨 포인트는 작업을 자동화할 수 있으므로 일상적인 일을 반복적으로 하느라 시간을 낭비할 필요가 없다는 것입니다. 전문 시스템 관리자의 경우 새 사용자를 만들고 암호를 생성하고 새 감독자에게 세부 정보가 포함된 전자 메일을 보내는 것과 같은 작업일 수 있습니다.
클릭과 타이핑을 통해 수동으로 수행하는 이 프로세스는 5분에서 최대 1시간 이상이 소요될 수 있습니다. 올바른 스크립트를 사용하면 시스템 관리자가 그 중 어떤 부분도 수행하지 않아도 됩니다.
하지만 집에서 PowerShell로 무엇을 할 수 있는지 알고 싶습니다. 당신이 반복해서 하는 것을 좋아하지 않는 거의 모든 것. 필요하지 않은 임시 및 로그 파일을 삭제하여 하드 드라이브의 공간을 확보하는 데 사용합니다.
자녀의 컴퓨터에 통행금지를 설정하십시오. 파일의 이름을 바꾸거나 정리합니다. 이것이 PowerShell의 장점입니다. 컴퓨터에서 할 수 있는 거의 모든 작업을 PowerShell 스크립트를 만들어 클릭 한 번으로 또는 일정에 따라 자동화하고 실행할 수 있습니다.
PowerShell을 어떻게 사용합니까?
PowerShell을 사용하는 가장 쉬운 방법은 PowerShell ISE(통합 스크립팅 환경)에서 작업하는 것입니다. . 시작을 클릭하고 powershell ise 를 입력하여 찾을 수 있습니다. Windows 10의 검색 창에 입력합니다. 아래와 같이 표시되어야 합니다.
처음 사용하는 경우 관리자로 실행하겠습니다. 이렇게 하려면 먼저 컴퓨터에 대한 관리자 권한이 있어야 합니다. 시작 메뉴에서 , PowerShell ISE를 마우스 오른쪽 버튼으로 클릭합니다. 을 클릭한 다음 관리자 권한으로 실행을 클릭합니다. .
UserAccess Control을 받을 수 있습니다. (UAC) 이 작업을 수행할 것인지 묻는 경고 팝업이 표시됩니다. 예를 클릭합니다. .
이제 PowerShell IDE를 보고 있습니다. 창의 상단 창 (1) 스크립팅 창입니다. 여기에서 스크립트를 작성할 것입니다. 창의 하단 창 (2) 콘솔 영역입니다. 스크립트를 테스트하면 이 창에 출력이 표시됩니다.
이것은 또한 스크립트를 수정하고 개선하는 데 도움이 되는 오류 메시지 등을 볼 수 있는 곳입니다. 창 오른쪽에 있는 창 (3) 명령 애드온입니다. 사용할 수 있는 모든 PowerShell 명령의 사전이라고 생각하십시오.
PowerShell은 이미 Windows의 일부가 아닌 스크립트를 실행하지 않도록 설정되어 있습니다. 자신의 스크립트를 실행할 수 있도록 변경해야 합니다.
스크립팅 창에서 다음을 복사하여 붙여넣습니다.
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
실행 정책 설정 그 일부를 cmdlet(커멘드렛으로 발음)이라고 합니다. cmdlet은 강력한 것입니다. 그것들을 Windows에 줄 수 있는 짧은 명령이라고 생각하면 Windows는 명령을 만족시키기 위해 더 복잡한 작업을 수행할 것입니다.
비유하자면 아이에게 방을 청소하라고 말하는 것입니다. 짧고 요점으로. 당신의 아이가 방 청소에 능숙하다면, 그들은 가서 침대를 정리하고, 빨래를 바구니에 넣고, 장난감과 책을 선반에 놓고, 심지어 바닥을 진공 청소기로 청소할 것입니다. 그들은 cmdlet Clean-YourRoom이 모든 것을 의미한다는 것을 이해합니다.
창 상단에 녹색 화살촉이 표시됩니다. 이를 클릭하여 명령을 실행합니다.
-실행 정책 부분은 Set-ExecutionPolicy를 말하고 있습니다. 어떤 정책을 설정할지. 매개변수입니다. "이 지침 내에서 작업하고 구체적으로 수행하기를 바랍니다. RemoteSigned의 특정 정책을 사용하도록 지시합니다.
원격 서명된 정책에 따르면 PowerShell은 신뢰할 수 있는 게시자가 서명하지 않는 한 인터넷에서 다운로드한 스크립트를 실행하거나 실행할 수 없습니다.
우회 방식으로, 원격으로 신뢰할 수 있는 게시자가 서명할 필요가 없기 때문에 로컬에서 생성된 스크립트를 실행해도 괜찮다고 PowerShell에 알려줍니다. 이제 PowerShell 스크립트는 컴퓨터에서 작성하는 모든 스크립트를 실행할 수 있습니다.
임시 파일을 삭제하는 스크립트를 살펴보겠습니다. CCleaner만큼 강력하거나 철저하지는 않지만 CCleaner에는 고유한 문제가 있습니다.
PowerShell을 사용하여 하드 드라이브 공간 만들기
이 스크립트를 한 줄씩 분해하여 작동 방식을 확인할 수 있습니다. 마지막에 스크립트가 완전히 표시되므로 원하는 경우 복사하여 붙여넣을 수 있습니다.
$TempFileLocation = "C:\Users\username\Appdata\Local\Temp\*"
앞에 달러 기호가 있는 것은 변수 이름입니다. 귀중품을 넣어두는 지갑이라고 생각하시면 됩니다. 지갑은 달러 기호를 떠올리게 하고 귀중품은 변하기 쉬운 것처럼 들리므로 우리도 기억할 것입니다. $TempFileLocation이라는 이름의 지갑 또는 변수를 생성 중입니다. . 등호는 PowerShell에 해당 변수에 무엇을 넣을지 알려줍니다.
이 경우 Windows의 임시 파일 위치(C:\Users\username\AppData\Local\Temp\*)를 입력합니다. . 우리는 두 가지 이유로 이것을 하고 있습니다. 파일을 삭제하는 데 항상 안전한 위치이며 파일을 삭제하기 위해 이동해야 하는 위치를 PowerShell에 알리는 데 사용할 것입니다.
해당 위치에 사용자 이름이 표시되면 사용자 이름으로 바꾸십시오. 컴퓨터에 로그인할 때 사용하는 사용자 이름입니다. 끝에 있는 별표(*)는 와일드 카드입니다. Temp 폴더의 모든 항목은 임시이며 삭제하려고 하기 때문에 Temp 폴더에 있는 모든 항목을 나타냅니다.
위치 주변의 큰따옴표도 중요합니다. 그것은 거기에 문자열이 있다는 것을 PowerShell에 알려줍니다. 문자열을 문자와 문자의 문자열로 생각하십시오. 일반 숫자라면 따옴표를 사용하지 않습니다.
$TempFile = Get-ChildItem $TempFileLocation -Recurse
우리는 또 다른 변수를 만들고 있습니다. 이번에는 명령을 사용하여 $TempFile 변수.
Get-ChildItem
Get-ChildItem과 같은 cmdlet에 대해 알 수 있는 또 다른 사항 완전히 읽을 수 있다는 것입니다. 첫 번째 단어가 어떻게 동사인지 봅니까? Cmdlet은 모두 작업 단어로 시작하므로 수행 중인 작업을 즉시 알 수 있습니다. ChildItem은 두 개의 명사입니다.
cmdlet의 두 번째 부분은 항상 PowerShell에서 작업을 적용할 항목을 알려줍니다. ChildItem은 상위 위치의 모든 하위를 의미합니다. 이것은 폴더에 있는 모든 파일을 가져오라고 말하는 것과 같습니다. 파일은 하위 항목이고 폴더는 상위 항목입니다.
하위 항목을 가져오는 cmdlet은 무엇입니까? $TempFileLocation 변수의 모든 항목 . PowerShell은 이전에 $TempFileLocation에 넣은 위치로 이동하여 거기에 있는 모든 하위 항목을 가져옵니다. 그런 다음 변수 $TempFile에 넣습니다. .
그렇다면 -재귀 는 무엇입니까? 부분? Get-ChildItem 그 위치의 모든 것을 통과합니다. 상위 폴더 내에서 즉시 파일을 가져오지 마십시오. 해당 폴더에 폴더가 있는 경우 모든 하위 항목도 가져오고 하위 항목 등도 가져옵니다. 모두 가져갈 것입니다.
$TempFileCount = ($TempFile).count
예, $TempFileCount라는 세 번째 변수를 만들고 있습니다. , 그리고 우리는 그 변수에 숫자를 넣을 것입니다. 번호가 어디야? 음, ($TempFile).count 그 번호를 알려줄 것입니다. .count 부분이 우리가 방금 $TempFile에 저장한 모든 파일의 수를 세는 것을 이해했을 것입니다.
우리는 왜 이것을 했는가? 대부분 우리가 스크립트의 나머지 부분으로 얼마나 많은 쓸모없는 파일을 정리하고 있는지 알고 있어서 그것이 얼마나 효과적인지 알 수 있어서 좋았습니다.
if($TempFileCount -eq 0)
이제 조건문을 설정합니다. '라고 묻는 것을 알 수 있습니다. 만약에? 괄호 안의 내용이 참인지 거짓인지. 대괄호는 중요합니다. 그렇지 않으면 If는 무엇을 비교할지 모릅니다. 여기에서는 $TempFileCount에 저장한 숫자가 0과 같습니다.
-eq 같음의 줄임말입니다. 일종의 비교 연산자입니다. "방이 깨끗하고 훌륭하다면 우리가 뭔가를 할 것입니다..."라고 자녀에게 말하는 것과 같습니다. 이 명령문은 $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에 지시하지만 아무 것도 제거하지 말고 시도하십시오. 우리가 정말로 이것을 했다면 어떤 일이 일어날지 보여주세요.
이를 통해 컴퓨터에서 아무 것도 변경하지 않고 명령을 테스트할 수 있습니다. 스크립트가 원하는 작업만 수행하고 다른 작업은 수행하지 않는다는 확신이 들 때까지 -WhatIf를 그대로 두십시오. 그런 다음 그것을 삭제하기만 하면 스크립트가 제 역할을 합니다.
매개변수 -Confirm:$false 파일을 정말로 삭제할 것인지 묻는 스크립트를 중지합니다. -재귀가 무엇인지 아십니까? 않습니다. -포스 무슨 일이 있어도 삭제를 의미합니다. -경고 조치 SilentlyContinue로 설정됨 .
이렇게 하면 스크립트에서 삭제 중인 항목에 대한 경고가 표시되지 않습니다. -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에 붙여넣고 delete-TemporaryFiles.ps1과 같은 형식으로 저장할 수 있습니다. . 이제 이해했으므로 cmdlet의 명명 규칙을 고수할 수도 있습니다.
어떤 이유로 코드가 작동하지 않으면 우리가 만든 PowerShell 스크립트를 다운로드하여 실행할 수도 있습니다. 스크립트 파일을 보려면 먼저 압축을 풉니다.
이 스크립트를 실행하려면 스크립트를 마우스 오른쪽 버튼으로 클릭하고 PowerShell로 실행을 선택하기만 하면 됩니다. . 스크립트가 작업을 수행하는 동안 PowerShell 콘솔이 1~2초 동안 표시되고 오류가 없으면 사라집니다.
PowerShell에 대한 자세한 내용은 어디에서 확인할 수 있습니까?
많은 것 같습니다! 첫 번째 PowerShell 스크립트의 경우 꽤 많습니다. 여기까지 했다면 스스로에게 박수를 보냅니다. 오늘 많은 것을 배웠지만 이제 더 배우고 싶습니다. 대단해!
PowerShell에 대해 자세히 알아볼 수 있는 리소스가 인터넷에 많이 있습니다. 시작하기에 좋은 곳은 "명령줄 또는 PowerShell을 통해 시작 프로그램 목록 생성" 기사입니다. 그런 다음 다른 리소스를 확인하십시오.
- Microsoft PowerShell 시작하기 – Microsoft Virtual Academy
- PowerShell 자습서 – TutorialsPoint.com