윈도우 bat 파일 사용시 파일로 데이터를 쓰고 읽을 때 UTF8로 저장 될 수 있고 EUC-KR로 저장 될 때가 있다. 이럴 때, 파일의 enconding 을 convert 해주는 방법은 powershell로 아래 명령어 를 참고하여 사용하면 된다...
관련 (#링크1, #링크2, #링크3)
(get-content $filename)|out-file $filename -encoding ascii
() 괄호를 잊어 먹지말고 해주자.. 하지 않으면 Null 인 파일로 변경된다.
2018년 2월 13일 화요일
2018년 2월 12일 월요일
powershell 을 이용한 계정 "암호사용기간 제한없음" 활성 / 비활성화
관련 사이트 : #링크
먼저 현재 접속한 사용자 계정을 읽어오는 방법
1. $env:USERNAME 을 하거나
2. Get-WmiObject Win32_UserAccount -Filter "Name = '$env:USERNAME'" (#링크)
암호사용기간제한없음을 활성/비활성화 (#링크)
gwmi Win32_UserAccount -Computer $_ -Filter "name='localaccount'" | Set-WmiInstance -Argument @{PasswordExpires = $true}
PasswordExpires 값이 True면 Uncheck
먼저 현재 접속한 사용자 계정을 읽어오는 방법
1. $env:USERNAME 을 하거나
2. Get-WmiObject Win32_UserAccount -Filter "Name = '$env:USERNAME'" (#링크)
암호사용기간제한없음을 활성/비활성화 (#링크)
gwmi Win32_UserAccount -Computer $_ -Filter "name='localaccount'" | Set-WmiInstance -Argument @{PasswordExpires = $true}
PasswordExpires 값이 True면 Uncheck
powershell에서 특정 property 값만 출력하고, 오직 값만 반환 받고 싶을 때
특정 Property 만 출력
관련 사이트 #링크
| select [Property ID] 해주면 됨
특정 Property 의 값만 출력
관련 사이트 #링크
| select -ExpandProperty IPAddressToString
해당 property 앞에 -ExpandProperty 를 넣어주면 값만 출력된다.
관련 사이트 #링크
| select [Property ID] 해주면 됨
특정 Property 의 값만 출력
관련 사이트 #링크
| select -ExpandProperty IPAddressToString
해당 property 앞에 -ExpandProperty 를 넣어주면 값만 출력된다.
라벨:
값,
값만,
파워쉘,
powershell
2018년 2월 2일 금요일
윈도우10의 언어를 확인 하는 Powershell
설치된 윈도우10의 언어를 확인하는 Powershell 명령어
Get-Culture
영문판일 경우 LCID 값이 1033 한글판일 경우 1024이다
LCID값만 가져오고 싶을 땐
(Get-Culture).LCID
하면 된다.
2013년 4월 23일 화요일
powershell script를 사용해 eventlog를 백업 및 삭제 해보자
powershell script (ps1)을 이용하여 eventlog를 백업 하고 삭제 해보자
파워쉘을 사용하여 이벤트로그를 백업 하는 방법을 찾아봤다...
난 파워쉘에 대해 잘 알지 못해 구글링 해보았다.
파워쉘을 이용하여 이벤트 로그를 csv로 백업(링크1)하는 방법도 있고
dumpel.exe를 이용하여 이벤트로그를 백업(링크2)하는 방법도 있지만
파워쉘을 이용하여 evtx파일로 백업(링크3)하는게 내가 찾는 방법이고 제일 좋을 것 같다.
본래 링크3의 블로그 내용에는 다음과 같이 ps1이 짜여져 있지만
$today = (Get-Date).ToString("yyyyMMdd")
Get-WmiObject Win32_NTEventLogFile |
Where-Object { $_.LogFileName -Like "360*"} |
ForEach-Object {
#폴더가 미리 만들어져 있지 아니하면 저장 시 오류 남
$filename = "C:\" + $_.LogfileName + $today + '.evtx'
#기존에 있던 파일을 삭제하되 에러나도 닥치고 진행
del $filename -ErrorAction SilentlyContinue
#ReturnValue=0이면 성공적으로 백업받은 것임
$_.BackupEventLog($filename).ReturnValue
}
실행 안되는 부분과 필요없는 부분을 빼면
*필요없는 부분 : Where-Object { $_.LogFileName -Like "360*"}
*실행안되는 부분 : del $filename -ErrorAction SilentlyContinue 는
Clear-Eventlog -LogName [LogName]로 변경
$today = (Get-Date).ToString("yyyyMMdd")
Get-WmiObject Win32_NTEventLogFile |
ForEach-Object {
#폴더가 미리 만들어져 있지 아니하면 저장 시 오류 남
$filename = "C:\" + $_.LogfileName + $today + '.evtx'
#ReturnValue=0이면 성공적으로 백업받은 것임
$_.BackupEventLog($filename).ReturnValue
}
파워쉘을 사용하여 이벤트로그를 백업 하는 방법을 찾아봤다...
난 파워쉘에 대해 잘 알지 못해 구글링 해보았다.
파워쉘을 이용하여 이벤트 로그를 csv로 백업(링크1)하는 방법도 있고
dumpel.exe를 이용하여 이벤트로그를 백업(링크2)하는 방법도 있지만
파워쉘을 이용하여 evtx파일로 백업(링크3)하는게 내가 찾는 방법이고 제일 좋을 것 같다.
본래 링크3의 블로그 내용에는 다음과 같이 ps1이 짜여져 있지만
$today = (Get-Date).ToString("yyyyMMdd")
Get-WmiObject Win32_NTEventLogFile |
Where-Object { $_.LogFileName -Like "360*"} |
ForEach-Object {
#폴더가 미리 만들어져 있지 아니하면 저장 시 오류 남
$filename = "C:\" + $_.LogfileName + $today + '.evtx'
#기존에 있던 파일을 삭제하되 에러나도 닥치고 진행
del $filename -ErrorAction SilentlyContinue
#ReturnValue=0이면 성공적으로 백업받은 것임
$_.BackupEventLog($filename).ReturnValue
}
실행 안되는 부분과 필요없는 부분을 빼면
*필요없는 부분 : Where-Object { $_.LogFileName -Like "360*"}
*실행안되는 부분 : del $filename -ErrorAction SilentlyContinue 는
Clear-Eventlog -LogName [LogName]로 변경
$today = (Get-Date).ToString("yyyyMMdd")
Get-WmiObject Win32_NTEventLogFile |
ForEach-Object {
#폴더가 미리 만들어져 있지 아니하면 저장 시 오류 남
$filename = "C:\" + $_.LogfileName + $today + '.evtx'
#ReturnValue=0이면 성공적으로 백업받은 것임
$_.BackupEventLog($filename).ReturnValue
}
Clear-Eventlog -LogName [LogName]
자~~ 여기까지가 아주 기본적인 단계이다..여기에다가 네트워크 드라이브를 붙여서 원격지에 저장하도록 해볼꺼다..
powershell script (ps1)을 cmd에서 실행 해보자 (2/2)
powershell script 인 ps1을 cmd창이나 bat파일을 이용해 실행 해보자..
먼저 1편☜ 를 보고 실행정책을 변경하자.
실행은
powershell.exe .\test.ps1 처럼 상대경로를 적어주거나
powershell.exe d:\test\test.ps1처럼 절대경로를 적어주면된다.
참고 링크 : http://talsu.net/?p=871
먼저 1편☜ 를 보고 실행정책을 변경하자.
실행은
powershell.exe .\test.ps1 처럼 상대경로를 적어주거나
powershell.exe d:\test\test.ps1처럼 절대경로를 적어주면된다.
참고 링크 : http://talsu.net/?p=871
powershell script (ps1)를 실행 해보자. (1/2)
파워쉘 스크립트 .ps1을 실행하면
**추가 내용
위에 방법은 계속적으로 실행정책을 적용하는거고 bat파일을 통해 잠시 실행할때만 바꾸고자 할때는 커맨드라인에 이렇게 적어 주면되, 상세한건 powershell -help 해봐
powershell -noprofile -executionpolicy [bypass | remotesigned...등등] .\*.ps1
(2편)☜
이 시스템에서 스크립트를 실행할 수 없으므로 D:\eventlogbackup.ps1 파일을 로드할
수 없습니다. 자세한 내용은 "get-help about_signing"을 참조하십시오.
위치 줄:1 문자:22
+ D:\eventlogbackup.ps1 <<<<
+ CategoryInfo : NotSpecified: (:) [], PSSecurityException
+ FullyQualifiedErrorId : RuntimeException
이라는 메시지를 뿌리면서 실행이 거부된다....
이게 뭔가...... 내가 만들어서 내가 쓴다는데 니가 왜..왜왜왜왜왜~~~~~
그래서 또 구글링 해봤다..
원인은 실행정책이 최강으로 설정이 되어 있어서 그렇다....
내 컴퓨터 또는 내가 관리하는 서버의 실행정책을 확인해보자...
파워쉘을 실행하고 명령어 Get-ExecutePolicy 해보자
변경 한 적이 없다면 대부분 Restricted로 되어 있다.
설정값에 대한 설명은 참고링크 2번을 따라가거나 Get-Help about_execution_policies를 실행하면 자세한 설명이 되어있다.
보통 RemoteSigned나 Unrestricted로 많이 하는 것 같다..
값을 확인했으면 설정을 해보자
설정하는 명령어는 get의 반대인 set이다.
Set-ExecutePolicy [설정값] 이다.
실행하면 할꺼냐 말꺼냐고 물어보는대 엔터키 나 Y 엔터키를 눌러 값을 변경하면 된다.
**추가 내용
위에 방법은 계속적으로 실행정책을 적용하는거고 bat파일을 통해 잠시 실행할때만 바꾸고자 할때는 커맨드라인에 이렇게 적어 주면되, 상세한건 powershell -help 해봐
powershell -noprofile -executionpolicy [bypass | remotesigned...등등] .\*.ps1
(2편)☜
참고 링크
피드 구독하기:
글 (Atom)