net user는 로컬 컴퓨터나 도메인의 사용자 계정을 추가·수정·삭제하고 상세 정보를 표시하는 명령이다. Part 8(네트워크와 원격 진단)의 마지막 장이다.
이 장을 읽기 전에
선행 챕터: 이 장은 77장: getmac에서 MAC 주소를 다룬 뒤 이어지며, Part 8의 마지막 장이자 이 컬렉션 전체의 네트워크 파트를 마무리한다. 지금까지 네트워크 자체(주소, 경로, 연결, 이름)를 다뤘다면, 이 장은 그 네트워크에 접속하는 주체인 “사용자 계정"을 다룬다.
이 장의 깊이: 고급. 다루지 않는 것: net user는 사실 net이라는 더 큰 명령군의 하위 명령 중 하나다 — net use(공유 연결), net share(공유 생성), net view(네트워크 리소스 조회) 같은 다른 net 하위 명령은 이 컬렉션에서 별도로 다루지 않는다.
사용법
| |
옵션
| 옵션 | 설명 |
|---|---|
<사용자이름> | 계정 이름(최대 20자) |
<비밀번호> | * | 비밀번호 지정. *이면 대화형으로 입력 요청(화면에 표시되지 않음) |
/domain | 도메인 컨트롤러에서 작업 수행 |
/add | 새 계정 생성 |
/delete | 지정 계정 삭제 |
/active:yes|no | 계정 활성화 여부(기본 yes) |
/times:<요일>,<시간> | 로그인 허용 요일·시간. all이면 항상 허용 |
자주 쓰는 세부 옵션
| 옵션 | 설명 |
|---|---|
/fullname:"<이름>" | 전체 이름 |
/expires:<날짜>|never | 계정 만료일(기본 never) |
/passwordreq:yes|no | 비밀번호 필수 여부(기본 yes) |
/passwordchg:yes|no | 사용자가 스스로 비밀번호를 바꿀 수 있는지(기본 yes) |
/comment:"<설명>" | 계정 설명(최대 48자) |
예시
| |
주의사항·함정
비밀번호 최소 길이는 별도 명령의 설정을 따른다: net user 자체에는 비밀번호 길이를 강제하는 옵션이 없다. 대신 시스템 전체에 적용되는 값을 참조한다.
“A password must satisfy the minimum password length value that is set with the net accounts /minpwlen command. A password can have as many as 127 characters.” — Microsoft Learn, “net user”
즉 계정마다 다른 비밀번호 정책을 net user로 개별 지정할 수는 없고, net accounts /minpwlen으로 설정한 시스템 전역 정책 안에서만 비밀번호를 정할 수 있다.
만료일을 never로 지정해도 완전히 영구적이지는 않다: 기본값인 never는 관리자가 수동으로 비활성화하거나 삭제하기 전까지는 만료일 자체가 없다는 뜻일 뿐, 계정이 다른 정책(비활성 계정 자동 정리 등)의 영향을 받지 않는다는 보장은 아니다.
/times에 공백을 넣으면 안 된다: 요일과 시간을 지정하는 형식(M,4AM-12PM;T,12PM-8PM)은 쉼표·세미콜론으로 구분자를 엄격히 지키고, 공백을 넣으면 파싱이 깨진다. 08장(cd)이나 44장(diskpart)의 문법과 달리, 이 옵션은 공백에 특히 민감하다.
net은 훨씬 큰 명령군의 일부다: 이 장에서 다룬 net user는 net이라는 상위 명령 아래 있는 수십 개 하위 명령 중 하나일 뿐이다. net use(네트워크 드라이브 연결), net share(폴더 공유), net view(네트워크의 다른 컴퓨터 조회), net accounts(계정 정책) 같은 형제 명령들이 있다 — 이 컬렉션은 사용자 계정 관리라는 한 갈래만 다루지만, 필요하다면 net /?로 전체 하위 명령 목록을 확인할 수 있다.
비밀번호를 명령줄에 그대로 적으면 화면·이력·로그에 노출된다: 위 예시의 net user jays Cyk4^g3B /add처럼 비밀번호를 명령줄에 평문으로 적으면, 그 값이 화면에 그대로 보이고 셸 명령 이력에 남으며, 옆에서 화면을 보는 사람이나 프로세스 생성 감사(Process Creation auditing) 같은 로깅 도구로 명령줄 인자를 수집하는 프로세스에도 실시간으로 노출된다. 더 안전한 패턴은 비밀번호 자리에 *을 쓰는 것이다 — 예시의 net user jays * /add처럼 쓰면 화면에 표시되지 않고 이력에도 남지 않는 대화형 입력으로 비밀번호를 받는다.
PowerShell에서는 New-LocalUser·Set-LocalUser를 쓴다: PowerShell의 대응 명령은 New-LocalUser와 Set-LocalUser이며, 비밀번호를 -Password 매개변수로 받되 평문 문자열이 아니라 SecureString 타입만 받는다. net user의 명령줄 평문 비밀번호 인자보다 기본적으로 더 안전한 설계다 — 다만 SecureString도 메모리 내 보호 수준이 제한적이므로 완전한 비밀 보호 수단으로 과신해서는 안 된다.
흔한 오개념
“도메인에 가입된 컴퓨터에서는 net user가 도메인 계정에 영향을 줄 수도 있다”는 오해가 흔하다. /domain 스위치를 붙이지 않은 net user는 그 컴퓨터가 도메인에 가입되어 있든 아니든 항상 로컬 컴퓨터의 계정 데이터베이스(SAM)만 대상으로 한다. 실제 Active Directory 도메인 계정을 다루려면 반드시 /domain을 명시해야 하며, 이를 빠뜨리면 의도한 도메인 계정이 아니라 완전히 별개인 로컬 전용 계정을 생성·수정하게 되는데도 아무런 오류나 경고 없이 조용히 그렇게 처리된다.
다음 장에서는
다음은 79장 — 시동 구성 데이터를 관리하는 bcdboot 명령으로 Part 9(부팅 구성과 기타 유틸리티)가 시작된다.
평가 기준
- net user로 사용자 계정을 조회·추가·수정·삭제할 수 있다.
- 비밀번호 최소 길이가 net user가 아니라
net accounts /minpwlen을 따른다는 것을 안다. /times옵션의 엄격한 구분자 규칙(공백 금지)을 지켜 로그인 허용 시간을 지정할 수 있다.- net user가 더 큰
net명령군의 한 하위 명령일 뿐이라는 것을 안다.
![Featured image of post [CMD] 78. net user - 로컬·도메인 사용자 계정 관리](/post/cmd/net-user-command-manage-user-accounts-windows-cmd/wordcloud_hu_b22dc27f39f105d5.webp)
![[CMD] 76. nslookup - DNS 질의와 인프라 진단](/post/cmd/nslookup-command-dns-query-windows-cmd/wordcloud_hu_31304126dbf41e5c.webp)
![[CMD] 77. getmac - 네트워크 어댑터 MAC 주소 표시](/post/cmd/getmac-command-mac-address-windows-cmd/wordcloud_hu_2f5d52f1745c8e96.webp)
![[CMD] 78. net user - 로컬·도메인 사용자 계정 관리](/post/cmd/net-user-command-manage-user-accounts-windows-cmd/wordcloud_hu_a292ba03b9980239.webp)
![[CMD] 79. bcdboot - 시동 구성 데이터 복사](/post/cmd/bcdboot-command-boot-configuration-data-windows-cmd/wordcloud_hu_20b6bcfeddb83a91.webp)
![[CMD] 80. bcdedit - 부팅 구성 데이터 편집](/post/cmd/bcdedit-command-boot-configuration-editor-windows-cmd/wordcloud_hu_d66c4f3b41d0c6d.webp)
![[CMD] 56. sc - Windows 서비스 조회와 구성](/post/cmd/sc-command-manage-windows-services-cmd/wordcloud_hu_58a312f8ee4fc53a.webp)
![[CMD] 59. shutdown - 시스템 종료·재시작·로그오프](/post/cmd/shutdown-command-restart-shutdown-windows-cmd/wordcloud_hu_a22283eef4eb4918.webp)
![[CMD] 62. openfiles - 원격으로 열린 파일 조회와 연결 해제](/post/cmd/openfiles-command-remote-open-files-windows-cmd/wordcloud_hu_6dffa9a34a4f6448.webp)
![[CMD] 66. gpresult - 그룹 정책 적용 결과(RSoP) 조회](/post/cmd/gpresult-command-group-policy-info-windows-cmd/wordcloud_hu_97928dfaf9f8a000.webp)