[POWERSHELL] 관리자 권한 여부 조회하기
■ 관리자 권한 여부를 조회하는 방법을 보여준다. ▶ 실행 명령
1 2 3 |
([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator) |
■ 관리자 권한 여부를 조회하는 방법을 보여준다. ▶ 실행 명령
1 2 3 |
([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator) |
■ 인증서를 조회하는 방법을 보여준다. ▶ 실행 명령
1 2 3 4 5 6 7 8 9 10 11 |
Set-Location Cert:\CurrentUser\My Get-ChildItem | Format-Table Subject, FriendlyName, Thumbprint 또는 CD Cert:\CurrentUser\My Get-ChildItem | Format-Table Subject, FriendlyName, Thumbprint |
■ New-SelfSignedCertificate 명령을 사용해 UWP 패키지 서명용 인증서를 만드는 방법을 보여준다. ▶ 실행 명령
1 2 3 4 5 6 7 8 9 10 11 |
$subject = "CN=icodebroker" # 게시자명 $store = "Cert:\CurrentUser\My" # 인증서 저장 경로 New-SelfSignedCertificate ` -Type Custom ` -Subject $subject ` -KeyUsage DigitalSignature ` -FriendlyName "ICODEBROKER" ` # 인증서 표시명 -CertStoreLocation $store ` -TextExtension @("2.5.29.37={text}1.3.6.1.5.5.7.3.3", "2.5.29.19={text}") |
■ Disable-WindowsOptionalFeature 명령을 사용해 Hyper-V/Hypervisor를 비활성화는 방법을 보여준다. ▶ 실행 명령
1 2 3 |
Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-Hypervisor |
■ Enable-WindowsOptionalFeature 명령을 사용해 Hyper-V/Hypervisor를 활성화하는 방법을 보여준다. ▶ 실행 명령
1 2 3 4 |
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All Enable-WindowsOptionalFeature -Online -FeatureName HypervisorPlatform -All |
■ Get-WindowsOptionalFeature 명령을 사용해 Hypervisor의 활성화 여부를 구하는 방법을 보여준다. ▶ 실행 명령
1 2 3 |
Get-WindowsOptionalFeature -FeatureName HypervisorPlatform -Online |
■ Get-WindowsOptionalFeature 명령을 사용해 Hyper-V의 활성화 여부를 구하는 방법을 보여준다. ▶ 실행 명령
1 2 3 |
Get-WindowsOptionalFeature -FeatureName Microsoft-Hyper-V-All -Online |
■ MSBuild와 Advanced Installer를 사용해 설치 파일을 만드는 방법을 보여준다. ▶ MSBuild와 Advanced Installer를 사용해 설치 파일 만들기 예제
1 2 3 4 5 6 7 8 9 |
d:\script\build.ps1 ` -CSharpProjectFilePath "D:\LAKE\LAKE.HOST\LAKE.HOST.csproj" ` -CSharpCustomActionProjectFilePath "D:\LAKE\LAKE.SETUP.ACTION\LAKE.SETUP.ACTION.csproj" ` -SourceBinaryDirectoryPath "D:\LAKE\BINARY\RELEASE" ` -AdvancedInstallerProjectFilePath "D:\LAKE\SETUP\LAKE.aip" ` -PackageVersion "1.0.0" ` -TargetBinaryDirectoryPath "D:\LAKE\SETUP\Setup Files" |
▶ MSBuild와
■ 원격 로그온 상태를 구하는 방법을 보여준다. ▶ 원격 로그온 상태 구하기 예제
1 2 3 4 5 |
GetRemoteLogonStatus 'localhost' GetRemoteLogonStatus '127.0.0.1' |
▶ 원격 로그온 상태 구하기
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
function GetRemoteLogonStatus($computer = 'localhost') { if(Test-Connection $computer -Count 2 -Quiet) { try { $user = $null $user = Get-WmiObject -Class win32_computersystem -ComputerName $computer | select -ExpandProperty username -ErrorAction Stop } catch { "Not logged on"; return } try { if((Get-Process logonui -ComputerName $computer -ErrorAction Stop) -and ($user)) { "Workstation locked by $user" } } catch { if($user) { "$user logged on" } } } else { "$computer Offline" } } |
■ Get-WmiObject 명령을 사용해 현재 사용자 계정을 구하는 방법을 보여준다. ▶ 실행 명령
1 2 3 4 5 6 7 |
Get-WmiObject -Class Win32_ComputerSystem -ComputerName localhost | select -ExpandProperty UserName -ErrorAction Stop Get-WmiObject -Class Win32_ComputerSystem -ComputerName 127.0.0.1 | select -ExpandProperty UserName -ErrorAction Stop Get-WmiObject -Class Win32_ComputerSystem -ComputerName 192.168.29.240 | select -ExpandProperty UserName -ErrorAction Stop |
■ Get-Process 명령을 사용해 윈도우즈 화면 잠금 여부를 구하는 방법을 보여준다. ▶ 실행 명령
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
$lockAppProcess = Get-Process LockApp for($i = 0; $i -lt 60; $i++) { $process = [System.Diagnostics.Process]::GetProcessById($lockAppProcess.Id) $threads = $process.Threads if($threads[0].WaitReason -eq "Suspended") { "윈도우즈 잠금 해제" } else { "윈도우즈 잠금" } Sleep 1 } |
■ $LASTEXITCODE 환경 변수를 사용해 실행 프로그램의 종료 코드를 구하는 방법을 보여준다. ▶ 실행 명령
1 2 3 4 5 |
cmd /c "EXIT 5" $LASTEXITCODE |
■ Get-StartApps 명령을 사용해 UWP 앱의 패키지 패밀리 이름을 구하는 방법을 보여준다. ▶ 실행 명령
1 2 3 4 5 6 7 |
Get-StartApps | Where-Object {$_.Name -like 'TestProject'} Name AppID ---- ----- TestProject F5702C39-E68B-4700-B7FA-FF68A1B9A461_f764zjf8n42zt!App |
※ TestProject : 해당 UWP 앱의
■ Get-Help 명령을 사용해 try/catch/finally문 도움말을 조회하는 방법을 보여준다. ▶ 실행 명령
1 2 3 |
Get-Help About_Try_Catch_Finally |
■ Get-ADUser 명령에서 -Identity 스위치를 사용해 사용자를 구하는 방법을 보여준다. ▶ 실행 명령
1 2 3 |
Get-ADUser -Identity king |
■ Get-ADGroupMember 명령을 사용해 특정 그룹의 사용자 리스트를 구하는 방법을 보여준다. ▶ 실행 명령
1 2 3 |
Get-ADGroupMember "group1" |
■ Get-Process 명령을 사용해 메모장 프로세스를 제거하는 방법을 보여준다. ▶ 실행 명령
1 2 3 |
Get-Process -Name notepad | ForEach-Object { $PSItem.Kill() } |
■ Remove-ADGroupMember 명령에서 -Identity/-User 스위치를 사용해 특정 그룹의 특정 사용자를 제거하는 방법을 보여준다. ▶ 실행 명령
1 2 3 |
Remove-ADGroupMember -Identity group1 -User user1 |
■ -ErrorAction 스위치를 사용하는 방법을 보여준다. ▶ 실행 명령
1 2 3 |
Restart-Computer -Computer server01,server02 -ErrorAction Stop |
■ Restart-Computer 명령에서 -ComputerName 스위치를 사용해 컴퓨터를 재시작하는 방법을 보여준다. ▶ 실행 명령
1 2 3 |
Restart-Computer -Computer server01,server02 |
■ Remove-PSBreakpoint 명령에서 -Id 스위치를 사용해 중단점을 삭제하는 방법을 보여준다. ▶ 실행 명령
1 2 3 |
Remove-PSBreakpoint -Id 4,5 |
■ Enable-PSBreakpoint 명령에서 -Id 스위치를 사용해 중단점을 활성화하는 방법을 보여준다. ▶ 실행 명령
1 2 3 |
Enable-PSBreakpoint -Id 4,5 |
■ Disable-PSBreakpoint 명령에서 -Id 스위치를 사용해 중단점을 비활성화하는 방법을 보여준다. ▶ 실행 명령
1 2 3 |
Disable-PSBreakpoint -Id 4,5 |
■ Get-PSBreakpoint 명령을 사용해 중단점 리스트를 구하는 방법을 보여준다. ▶ 실행 명령
1 2 3 |
Get-PSBreakpoint |
■ Set-PSBreakpoint 명령에서 -Command 스위치를 사용해 특정 함수에 중단점을 설정하는 방법을 보여준다. ▶ 실행 명령
1 2 3 |
Set-PSBreakpoint -Command Get-SecurityEvents |