਍㰀戀漀搀礀㸀ഀഀ ਍㰀栀㄀㸀䄀 昀攀眀 攀砀愀洀瀀氀攀猀 漀昀 琀爀愀搀椀琀椀漀渀愀氀 愀渀搀 洀漀搀攀爀渀 圀椀渀搀漀眀猀 挀漀洀洀愀渀搀氀椀渀攀 甀琀椀氀椀琀椀攀猀⸀㰀⼀栀㄀㸀ഀഀ ਍嘀攀爀猀椀漀渀ऀ    㨀 ㈀⸀㄀㰀戀爀㸀ഀഀ Date : 06/06/2011
਍䈀礀ऀऀ    㨀 䄀氀戀攀爀琀 瘀愀渀 搀攀爀 匀攀氀㰀戀爀㸀ഀഀ For who : For anyone who likes (or needs) to work from the Windows commandline
਍㰀栀爀⼀㸀ഀഀ ਍㰀戀爀㸀ഀഀ
਍圀椀琀栀 爀攀猀瀀攀挀琀 琀漀 琀栀攀 圀椀渀搀漀眀猀 挀漀洀洀愀渀搀 氀椀渀攀Ⰰ 愀渀搀 猀挀爀椀瀀琀椀渀最Ⰰ 渀漀眀愀搀愀礀猀 礀漀甀 猀栀漀甀氀搀 搀漀 愀猀 洀甀挀栀 愀猀 瀀漀猀猀椀戀氀攀 眀椀琀栀 倀漀眀攀爀猀栀攀氀氀⸀㰀戀爀㸀ഀഀ However, if you still need to use traditional "cmd shell" commands and batch scripting, hopefully this note provides
਍猀漀洀攀 甀猀攀昀甀氀氀 瀀漀椀渀琀攀爀猀⸀㰀戀爀㸀 ഀഀ
਍䄀氀琀栀漀甀最栀 琀栀攀 椀渀昀漀爀洀愀琀椀漀渀 栀攀爀攀 椀猀 ∀爀攀愀猀漀渀愀戀氀攀∀Ⰰ 䤀 愀洀 渀漀琀 瘀攀爀礀 最氀愀搀 愀戀漀甀琀 琀栀攀 昀漀爀洀愀琀琀椀渀最 愀渀搀 琀栀攀 琀攀砀琀 椀琀猀攀氀昀⸀㰀戀爀㸀ഀഀ But I leave it here, since maybe someone might have some use of it.
਍ഀഀ
਍㰀戀爀㸀ഀഀ ਍ഀഀ ਍㰀䈀㸀䴀愀椀渀 䌀漀渀琀攀渀琀猀㨀㰀⼀䈀㸀㰀戀爀㸀ഀഀ
਍㰀䈀㸀ഀഀ 1. The "sc" command
਍㰀䄀 栀爀攀昀㴀∀⌀猀攀挀琀椀漀渀㈀∀㸀 ㈀⸀ 吀栀攀 ∀渀攀琀猀栀∀ 挀漀洀洀愀渀搀㰀⼀䄀㸀㰀戀爀㸀ഀഀ 3. The "systeminfo", "msinfo", and "msinfo32" commands
਍㰀䄀 栀爀攀昀㴀∀⌀猀攀挀琀椀漀渀㐀∀㸀 㐀⸀ 吀栀攀 ∀爀甀渀愀猀∀ 挀漀洀洀愀渀搀㰀⼀䄀㸀㰀戀爀㸀ഀഀ 5. The "taskkill" or "tskill" command
਍㰀䄀 栀爀攀昀㴀∀⌀猀攀挀琀椀漀渀㘀∀㸀 㘀⸀ 吀栀攀 ∀搀爀椀瘀攀爀焀甀攀爀礀∀ 挀漀洀洀愀渀搀㰀⼀䄀㸀㰀戀爀㸀ഀഀ 7. The "netstat" and "nbtstat" commands
਍㰀䄀 栀爀攀昀㴀∀⌀猀攀挀琀椀漀渀㠀∀㸀 㠀⸀ 匀漀洀攀 攀砀愀洀瀀氀攀猀 漀昀 挀漀洀洀愀渀搀猀Ⰰ 琀漀 椀渀瘀漀欀攀 愀 䜀爀愀瀀栀椀挀愀氀 唀琀椀氀琀礀㰀⼀䄀㸀㰀戀爀㸀ഀഀ 9. Some examples of commands that enables you to implement scheduled tasks
਍㰀䄀 栀爀攀昀㴀∀⌀猀攀挀琀椀漀渀㄀ ∀㸀 ㄀ ⸀ 匀漀洀攀 攀砀愀洀瀀氀攀猀 漀昀 栀愀渀搀氀椀渀最 琀砀琀 ⠀漀爀 愀猀挀椀椀⤀ 昀椀氀攀猀㰀⼀䄀㸀㰀戀爀㸀ഀഀ 11. The "WMIC" command
਍㰀䄀 栀爀攀昀㴀∀⌀猀攀挀琀椀漀渀㄀㈀∀㸀 ㄀㈀⸀ 吀栀攀 ∀琀礀瀀攀瀀攀爀昀∀ 挀漀洀洀愀渀搀㰀⼀䄀㸀㰀戀爀㸀ഀഀ 13. The "cacls" command, and similar commands
਍㰀䄀 栀爀攀昀㴀∀⌀猀攀挀琀椀漀渀㄀㐀∀㸀 ㄀㐀⸀ 䘀爀攀攀 ⠀最渀甀⤀ 猀栀攀氀氀猀 漀爀 琀漀漀氀猀 昀漀爀 圀椀渀搀漀眀猀㰀⼀䄀㸀㰀戀爀㸀ഀഀ 15. How to determine your ".NET" (dot net) version, and your "Windows installer" version
਍㰀䄀 栀爀攀昀㴀∀⌀猀攀挀琀椀漀渀㄀㘀∀㸀 ㄀㘀⸀ 䠀漀眀 琀漀 猀琀愀爀琀 愀渀 愀瀀瀀氀椀挀愀琀椀漀渀 眀椀琀栀 漀琀栀攀爀 瀀爀椀漀爀椀琀礀Ⰰ 昀爀漀洀 琀栀攀 瀀爀漀洀瀀琀㰀⼀䄀㸀㰀戀爀㸀ഀഀ 17. A few usefull file manipulation commands
਍㰀䄀 栀爀攀昀㴀∀⌀猀攀挀琀椀漀渀㄀㠀∀㸀 ㄀㠀⸀ 吀栀攀 ∀昀漀爀昀椀氀攀猀∀ 挀漀洀洀愀渀搀⸀㰀⼀䄀㸀㰀戀爀㸀ഀഀ 19. The "net" command.
਍㰀䄀 栀爀攀昀㴀∀⌀猀攀挀琀椀漀渀㈀ ∀㸀 ㈀ ⸀ 䐀攀琀攀爀洀椀渀椀渀最 ∀猀瘀挀栀漀猀琀∀ 瀀爀漀挀攀猀猀攀猀⸀㰀⼀䄀㸀㰀戀爀㸀ഀഀ 21. The "rundll32" command.
਍㰀䄀 栀爀攀昀㴀∀⌀猀攀挀琀椀漀渀㈀㈀∀㸀 ㈀㈀⸀ 䠀漀眀 琀漀 搀攀琀攀爀洀椀渀攀 礀漀甀 愀爀攀 爀甀渀渀椀渀最 椀渀 愀 嘀䴀 漀爀 瀀栀礀猀椀挀愀氀 洀愀挀栀椀渀攀⸀㰀⼀䄀㸀㰀戀爀㸀ഀഀ 23. Some very very "OLD" batch stuff
਍㰀⼀䈀㸀ഀഀ
਍㰀戀爀㸀ഀഀ ਍ഀഀ

1. The "sc" command.

਍ഀഀ SC is a command line program used for communicating with the
਍一吀 匀攀爀瘀椀挀攀 䌀漀渀琀爀漀氀氀攀爀 愀渀搀 猀攀爀瘀椀挀攀猀⸀㰀戀爀㸀ഀഀ
਍匀礀渀琀愀砀㨀㰀戀爀㸀ഀഀ sc server [command] [service name] option1 option2...
਍㰀戀爀㸀ഀഀ The "server" parameter takes the form "\\ServerName". If not present, it is your local machine.
਍夀漀甀 挀愀渀 焀甀攀爀礀 漀渀 ∀猀攀爀瘀椀挀攀猀∀Ⰰ 愀搀搀 猀攀爀瘀椀挀攀猀Ⰰ 搀攀氀攀琀攀 猀攀爀瘀椀挀攀猀 愀渀搀 洀甀挀栀 洀漀爀攀⸀㰀戀爀㸀ഀഀ Here are a few examples:
਍㰀戀爀㸀ഀഀ 1.1 List (a partial) listing of services:
਍㰀戀爀㸀ഀഀ -- list all services:
਍㰀戀爀㸀ഀഀ C:\> sc query
਍㰀戀爀㸀ഀഀ -- put the list in the txt file "C :\temp\services.txt":
਍㰀戀爀㸀                          ഀഀ C:\> sc query > C :\temp\services.txt
਍㰀戀爀㸀ഀഀ -- Filter the list on (for example) the string "SQL":
਍㰀戀爀㸀ഀഀ C:\> sc query | find "SQL"
਍㰀戀爀㸀ഀഀ Note:
਍夀漀甀 挀愀渀 愀氀猀漀 甀猀攀 琀栀攀 ∀琀爀愀搀椀琀椀漀渀愀氀∀ 㰀䈀㸀渀攀琀 猀琀愀爀琀㰀⼀䈀㸀 挀漀洀洀愀渀搀Ⰰ 琀漀 漀戀琀愀椀渀 愀 氀椀猀琀 漀昀 㰀䤀㸀爀甀渀渀椀渀最㰀⼀䤀㸀 猀攀爀瘀椀挀攀猀⸀㰀戀爀㸀ഀഀ Use that command like this:
਍㰀戀爀㸀ഀഀ C:\> net start
਍㰀戀爀㸀ഀഀ or pause the output to screen (pressing a key to continue), using "| more", like so:
਍㰀戀爀㸀ഀഀ C:\> net start | more
਍㰀戀爀㸀ഀഀ 1.2 Add a service:
਍匀䌀 挀愀渀 愀氀猀漀 戀攀 甀猀攀搀 琀漀 愀搀搀Ⰰ 洀漀搀椀昀礀Ⰰ 漀爀 搀攀氀攀琀攀 愀 猀攀爀瘀椀挀攀⸀ 吀栀椀猀 猀攀挀琀椀漀渀 㰀䈀㸀漀渀氀礀㰀⼀䈀㸀 眀愀渀琀猀 琀漀 洀愀欀攀㰀戀爀㸀ഀഀ you aware of this option. If you really want to use it, normally more options
਍猀栀漀甀氀搀 戀攀 瀀爀漀瘀椀搀攀搀 漀渀 琀栀攀 挀漀洀洀愀渀搀氀椀渀攀⸀ 䨀甀猀琀 挀漀洀瀀愀爀攀 椀琀 琀漀 眀栀愀琀 礀漀甀 渀漀爀洀愀氀氀礀 洀椀最栀琀 昀椀渀搀㰀戀爀㸀ഀഀ in the correseponding Registry Hive (like boottype of that service etc..).
਍㰀戀爀㸀ഀഀ C:\>sc.exe create MyService binPath= "C:\local\myprg\bin\myserv.exe -k runservice" DisplayName= "My own Service"
਍㰀戀爀㸀ഀഀ 1.3 Starting or stopping a service:
਍匀甀瀀瀀漀猀攀 礀漀甀 眀愀渀琀 琀漀 猀琀愀爀琀 漀爀 猀琀漀瀀 琀栀攀 猀攀爀瘀椀挀攀 ∀洀礀猀攀爀瘀椀挀攀∀㰀戀爀㸀ഀഀ
਍䌀㨀尀㸀猀挀⸀攀砀攀 猀琀愀爀琀 洀礀猀攀爀瘀椀挀攀㰀戀爀㸀ഀഀ C:\>sc.exe stop myservice
਍㰀戀爀㸀ഀഀ Note 1: Other ways of stopping and starting services:
਍㰀戀爀㸀ഀഀ You can ofcourse also use the traditional "net [start|stop] service_name" command.
਍䰀椀欀攀 昀漀爀 攀砀愀洀瀀氀攀㨀㰀戀爀㸀ഀഀ C:\> net start MSSQLSERVER
਍㰀戀爀㸀ഀഀ Note 2: Other ways to retrieve a list of services:
਍㰀戀爀㸀ഀഀ Again, you can use the "traditional" net command. Just use "net start", or "net start | more" to pause the output.
਍䈀甀琀 礀漀甀 挀愀渀 愀氀猀漀 甀猀攀 琀栀攀 ⠀瘀攀爀礀 瘀攀爀猀椀琀椀氀攀⤀ ∀眀洀椀挀∀ 挀漀洀洀愀渀搀Ⰰ 愀猀 昀漀爀 攀砀愀洀瀀氀攀㨀㰀戀爀㸀ഀഀ
਍㰀䈀㸀䌀㨀尀㸀 ∀眀洀椀挀 猀攀爀瘀椀挀攀∀ 漀爀 ∀眀洀椀挀 瀀爀漀挀攀猀猀∀㰀⼀䈀㸀㰀戀爀㸀ഀഀ
਍㰀䤀㸀倀爀漀搀甀挀攀猀 愀 氀椀猀琀 漀昀 猀攀爀瘀椀挀攀猀Ⰰ 漀爀 瀀爀漀挀攀猀猀攀猀Ⰰ 眀椀琀栀 琀栀攀椀爀 瀀爀漀瀀攀爀琀椀攀猀⸀㰀⼀䤀㸀㰀戀爀㸀ഀഀ For example:
਍㰀戀爀㸀ഀഀ ਍䌀㨀尀㸀 圀䴀䤀䌀 ⼀伀唀吀倀唀吀㨀䌀㨀尀倀爀漀挀攀猀猀䰀椀猀琀⸀琀砀琀 倀刀伀䌀䔀匀匀 最攀琀 䌀愀瀀琀椀漀渀Ⰰ䌀漀洀洀愀渀搀氀椀渀攀Ⰰ倀爀漀挀攀猀猀椀搀㰀戀爀㸀ഀഀ ਍㰀戀爀㸀ഀഀ This produces a file (C:\TEMP\Processlist.txt) with as content a process list, with names, commandline, and process-id's.
਍䘀漀爀 洀漀爀攀 椀渀昀漀爀洀愀琀椀漀渀 漀渀 琀栀攀 ∀眀洀椀挀∀ 挀漀洀洀愀渀搀Ⰰ 瀀氀攀愀猀攀 猀攀攀 猀攀挀琀椀漀渀 ㄀㄀⸀ഀഀ
਍ഀഀ ਍㰀栀㌀ 椀搀㴀∀猀攀挀琀椀漀渀㈀∀㸀㈀⸀ 吀栀攀 ∀渀攀琀猀栀∀ 挀漀洀洀愀渀搀⸀㰀⼀栀㌀㸀ഀഀ ਍吀栀椀猀 椀猀 愀 瘀攀爀礀 瘀攀爀猀愀琀椀氀攀 挀漀洀洀愀渀搀⸀ 䄀猀 礀漀甀 洀椀最栀琀 愀氀爀攀愀搀礀 栀愀瘀攀 最甀攀猀猀攀搀 昀爀漀洀 琀栀攀 渀愀洀攀Ⰰ 琀栀攀 甀琀椀氀椀琀礀 椀猀 渀攀琀眀漀爀欀 漀爀椀攀渀琀攀搀⸀㰀戀爀㸀ഀഀ Let's view a few simple examples:
਍ഀഀ There are two general ways to work with netsh:
਍㰀戀爀㸀ഀഀ - You can use the command with all the options you want, "all in once", right from the commandline, like:
਍㰀戀爀㸀ഀഀ C:\>netsh interface ip show config # This shows you all current IP parameters
਍㰀戀爀㸀ഀഀ - You can enter the shell interactively, and subsequently enter all sorts of submenu's, like for example:
਍㰀戀爀㸀ഀഀ C:\>netsh
਍渀攀琀猀栀㸀 椀渀琀攀爀昀愀挀攀 㰀䤀㸀⌀ 最漀琀漀 琀栀攀 椀渀琀攀爀昀愀挀攀 猀甀戀洀攀渀甀㰀⼀䤀㸀㰀戀爀㸀 ഀഀ netsh interface> ip # goto the ip submenu
਍渀攀琀猀栀 椀渀琀攀爀昀愀挀攀 椀瀀㸀猀栀漀眀 挀漀渀昀椀最 㰀䤀㸀⌀ 吀栀椀猀 猀栀漀眀猀 礀漀甀 愀氀氀 挀甀爀爀攀渀琀 䤀倀 瀀愀爀愀洀攀琀攀爀猀Ⰰ 樀甀猀琀 氀椀欀攀 愀戀漀瘀攀㰀⼀䤀㸀㰀戀爀㸀ഀഀ
਍䄀猀 礀漀甀 挀愀渀 猀攀攀 愀戀漀瘀攀Ⰰ 漀渀挀攀 礀漀甀 愀爀攀 椀渀 琀栀攀 ∀椀瀀∀ 猀甀戀洀攀渀甀Ⰰ 礀漀甀 挀愀渀 漀渀氀礀 甀猀攀 挀漀洀洀愀渀搀猀 眀椀琀栀 瀀愀爀愀洀攀琀攀爀猀Ⰰ 氀椀欀攀㨀㰀戀爀㸀ഀഀ "show config" This shows you all current IP parameters
਍㰀戀爀㸀ഀഀ A few examples setting IP parameters:
਍㰀戀爀㸀ഀഀ To set the interface called "LAN", to use DHCP for its IP address configuration:
਍䌀㨀尀㸀 渀攀琀猀栀 椀渀琀攀爀昀愀挀攀 椀瀀 猀攀琀 愀搀搀爀攀猀猀 渀愀洀攀㴀∀䰀䄀一∀ 猀漀甀爀挀攀㴀搀栀挀瀀㰀戀爀㸀ഀഀ
਍吀漀 猀攀琀 猀琀愀琀椀挀 䤀倀 瀀愀爀愀洀攀琀攀爀猀 漀渀 琀栀攀 椀渀琀攀爀昀愀挀攀 挀愀氀氀攀搀 ∀䰀䄀一∀㨀㰀戀爀㸀ഀഀ C:\> netsh interface ip set address name="LAN" static 10.10.10.25 255.255.255.0 10.10.10.1
਍㰀戀爀㸀ഀഀ To set a DNS Server entry on the interface called "LAN":
਍䌀㨀尀㸀 渀攀琀猀栀 椀渀琀攀爀昀愀挀攀 椀瀀 猀攀琀 搀渀猀猀攀爀瘀攀爀 ∀䰀䄀一∀ ㄀ ⸀ ⸀ ⸀㄀  㰀戀爀㸀 ഀഀ
਍㰀䈀㸀㰀唀㸀䄀 昀攀眀 攀砀愀洀瀀氀攀猀 猀栀漀眀椀渀最 䤀倀 瀀愀爀愀洀攀琀攀爀猀 愀渀搀 搀椀愀最渀漀猀琀椀挀猀㨀㰀⼀唀㸀㰀⼀䈀㸀㰀戀爀㸀ഀഀ
਍䰀椀欀攀 愀氀爀攀愀搀礀 猀栀漀眀渀 愀戀漀瘀攀Ⰰ 琀栀攀 昀漀氀氀漀眀椀渀最 猀栀漀眀猀 礀漀甀 愀氀氀 挀甀爀爀攀渀琀 䤀倀 瀀愀爀愀洀攀琀攀爀猀㨀㰀戀爀㸀ഀഀ C:\>netsh interface ip show config
਍㰀戀爀㸀ഀഀ As an other example of obtaining information, wouldn't you like a a command
਍琀栀愀琀 猀栀漀眀猀 愀氀氀 礀漀甀爀 椀渀琀攀爀昀愀挀攀猀 ⠀樀甀猀琀 氀椀欀攀 礀漀甀 挀愀渀 攀愀猀椀氀礀 搀漀 椀渀 唀渀椀砀⼀䰀椀渀甀砀⤀㼀㰀戀爀㸀ഀഀ For that, you can use the "diag" option (or submenu).
਍㰀戀爀㸀ഀഀ C:\> netsh
਍渀攀琀猀栀㸀 搀椀愀最㰀戀爀㸀ഀഀ netsh diag>show adapter
਍㰀戀爀㸀ഀഀ Network adapters
਍     ㄀⸀ 嬀       㠀崀 刀攀愀氀琀攀欀 刀吀䰀㠀㄀㘀㤀⼀㠀㄀㄀  䘀愀洀椀氀礀 䜀椀最愀戀椀琀 䔀琀栀攀爀渀攀琀 一䤀䌀㰀戀爀㸀ഀഀ 2. [00000011] Intel(R) PRO/Wireless 2200BG Network Connection
਍㰀戀爀㸀ഀഀ netsh diag>show ip
਍㰀戀爀㸀ഀഀ IP Address
਍     ㈀⸀ 嬀      ㄀㄀崀 䤀渀琀攀氀⠀刀⤀ 倀刀伀⼀圀椀爀攀氀攀猀猀 ㈀㈀  䈀䜀 一攀琀眀漀爀欀 䌀漀渀渀攀挀琀椀漀渀㰀戀爀㸀ഀഀ IPAddress = 192.168.1.113
਍㰀戀爀㸀ഀഀ netsh diag>show modem
਍㰀戀爀㸀ഀഀ Modems (ZTE Proprietary USB Modem)
਍㰀戀爀㸀ഀഀ As the last example, here is how you can use netsh to configure your Windows firewall.
਍㰀䈀㸀ഀഀ C:\> netsh
਍渀攀琀猀栀㸀 昀椀爀攀眀愀氀氀㰀戀爀㸀ഀഀ netsh firewall> set portopening udp 3343 "cluster service" enable
਍㰀⼀䈀㸀ഀഀ
਍㰀戀爀㸀ഀഀ ਍㰀䈀㸀刀攀猀攀琀琀椀渀最 礀漀甀爀 渀攀琀眀漀爀欀 瀀愀爀愀洀攀琀攀爀猀㨀㰀⼀䈀㸀㰀戀爀㸀ഀഀ
਍伀渀攀 甀猀愀戀氀攀 挀漀洀洀愀渀搀 昀漀爀 爀攀猀攀琀琀椀渀最 愀氀氀 漀昀 礀漀甀爀 渀攀琀眀漀爀欀猀攀琀琀椀渀最猀Ⰰ 洀椀最栀琀 戀攀 琀栀攀 挀漀洀洀愀渀搀 戀攀氀漀眀⸀㰀戀爀㸀ഀഀ Do not execute it just like that. As an exercise, try to figure out what this command will actually do
਍漀渀 礀漀甀爀 猀礀猀琀攀洀㨀㰀戀爀㸀ഀഀ
਍㰀䈀㸀䌀㨀尀㸀 渀攀琀猀栀 椀渀琀 椀瀀 爀攀猀攀琀 爀攀猀攀琀氀漀最⸀琀砀琀㰀⼀䈀㸀㰀戀爀㸀ഀഀ
਍㰀昀漀渀琀 昀愀挀攀㴀∀愀爀椀愀氀∀ 猀椀稀攀㴀㈀ 挀漀氀漀爀㴀∀戀氀愀挀欀∀㸀ഀഀ Notes:
਍䈀礀 琀栀攀 眀愀礀㨀㰀戀爀㸀ഀഀ - the "getmac" command will show you the MAC address of all your adapters.
਍ⴀ 琀栀攀 㰀䈀㸀∀椀瀀挀漀渀昀椀最∀㰀⼀䈀㸀 漀爀 㰀䈀㸀∀椀瀀挀漀渀昀椀最 ⼀愀氀氀∀㰀⼀䈀㸀 猀栀漀眀猀 礀漀甀 愀氀氀 䤀倀 瀀愀爀愀洀猀 愀猀 眀攀氀氀⸀㰀戀爀㸀ഀഀ
਍㰀戀爀㸀ഀഀ

3. The "systeminfo" and "msinfo32" commands.

਍ഀഀ -- The systeminfo command:
਍㰀戀爀㸀ഀഀ If you want a concise report (from the command line) of many system features, and your OS,
਍礀漀甀 洀椀最栀琀 氀椀欀攀 琀栀攀 㰀䈀㸀猀礀猀琀攀洀椀渀昀漀㰀⼀䈀㸀 挀漀洀洀愀渀搀⸀ 吀栀攀 爀攀瀀漀爀琀 猀栀漀眀猀 洀愀渀礀 搀攀琀愀椀氀猀 氀椀欀攀 琀栀攀 䈀䤀伀匀 瘀攀爀猀椀漀渀Ⰰ㰀戀爀㸀ഀഀ OS version, cpu info, License key, Hotfixes installed etc...
਍一漀琀攀㨀 渀漀琀 愀氀氀 圀椀渀搀漀眀猀 瘀攀爀猀椀漀渀猀 栀愀瘀攀 琀栀攀 ∀猀礀猀琀攀洀椀渀昀漀∀ 挀漀洀洀愀渀搀 漀渀 戀漀愀爀搀⸀㰀戀爀㸀ഀഀ
਍䨀甀猀琀 甀猀攀 椀琀 氀椀欀攀 猀漀㨀㰀戀爀㸀ഀഀ
਍㰀䈀㸀䌀㨀尀㸀猀礀猀琀攀洀椀渀昀漀㰀⼀䈀㸀㰀戀爀㸀ഀഀ
਍㰀䤀㸀最椀瘀攀猀 愀 戀甀渀挀栀 漀昀 猀礀猀琀攀洀 椀渀昀漀⸀⸀⸀㰀⼀䤀㸀㰀戀爀㸀ഀഀ
਍䤀昀 礀漀甀 眀愀渀琀 琀漀 栀愀瘀攀 琀栀攀 猀愀洀攀 椀渀昀漀 椀渀 愀 琀攀砀琀昀椀氀攀Ⰰ 甀猀攀 愀 挀漀洀洀愀渀搀 氀椀欀攀 昀漀爀 攀砀愀洀瀀氀攀㨀㰀戀爀㸀ഀഀ
਍㰀䈀㸀䌀㨀尀㸀猀礀猀琀攀洀椀渀昀漀 㸀 䌀㨀尀吀䔀䴀倀尀猀礀猀琀攀洀椀渀昀漀⸀琀砀琀㰀⼀䈀㸀㰀戀爀㸀ഀഀ
਍㰀戀爀㸀ഀഀ Also, try the "systeminfo /?" for what you can use for special options.
਍䤀昀 礀漀甀 愀爀攀 漀渀氀礀 椀渀琀攀爀爀攀猀琀攀搀 椀渀 礀漀甀爀 圀椀渀搀漀眀猀 瘀攀爀猀椀漀渀Ⰰ 礀漀甀 洀椀最栀琀 氀椀欀攀 琀栀攀 㰀䈀㸀∀眀椀渀瘀攀爀∀㰀⼀䈀㸀 挀漀洀洀愀渀搀Ⰰ㰀戀爀㸀ഀഀ which shows you a dialogbox with the Windows version, Servicepack level, and build.
਍㰀戀爀㸀ഀഀ -- The msinfo32 command:
਍㰀戀爀㸀ഀഀ If the "msinfo32" command is available on system, you can retrieve much system information,
਍愀戀漀甀琀 渀甀洀洀攀爀漀甀猀 椀琀攀洀猀 氀椀欀攀 栀愀爀搀眀愀爀攀 ⠀椀爀焀✀猀Ⰰ 搀洀愀Ⰰ 挀漀渀昀氀椀挀琀猀 攀琀挀⸀⸀⤀ 愀渀搀 愀氀氀 猀漀昀琀眀愀爀攀 洀漀搀甀氀攀猀 氀椀欀攀 搀爀椀瘀攀爀猀 攀琀挀⸀⸀㰀戀爀㸀ഀഀ It will be displayed in a graphical utility, that enables you to "zoom in" into a particular subject.
਍䤀昀 礀漀甀 爀甀渀 堀倀 ⠀漀爀 渀攀眀攀爀⤀Ⰰ 椀琀 猀栀漀甀氀搀 戀攀 漀渀 礀漀甀爀 猀礀猀琀攀洀⸀㰀戀爀㸀ഀഀ Just run it from your prompt, like this:
਍㰀戀爀㸀ഀഀ C:\> msinfo32
਍㰀戀爀㸀ഀഀ ਍㰀栀㌀ 椀搀㴀∀猀攀挀琀椀漀渀㐀∀㸀㐀⸀ 吀栀攀 ∀爀甀渀愀猀∀ 挀漀洀洀愀渀搀⸀㰀⼀栀㌀㸀ഀഀ ਍吀栀攀 ∀爀甀渀愀猀∀ 挀漀洀洀愀渀搀Ⰰ 愀氀氀漀眀猀 礀漀甀 琀漀 猀琀愀爀琀 愀 瀀爀漀最爀愀洀Ⰰ 眀椀琀栀 漀琀栀攀爀 ∀挀爀攀搀攀渀琀椀愀氀猀∀ 琀栀愀渀 琀栀攀 挀爀攀搀攀渀琀椀愀氀猀㰀戀爀㸀ഀഀ with which you are currently logged on.
਍匀漀Ⰰ 猀甀瀀瀀漀猀攀 礀漀甀 栀愀瘀攀搀 氀漀最最攀搀 琀漀 愀 眀漀爀欀猀琀愀琀椀漀渀 愀猀 愀 䐀漀洀愀椀渀甀猀攀爀 ⠀猀愀礀 愀渀琀愀瀀攀砀尀栀愀爀爀礀⤀Ⰰ 愀渀搀 礀漀甀 眀愀渀琀㰀戀爀㸀ഀഀ to run a program as the local Administrator of that workstation, then you can use "runas" for that purpose.
਍䈀甀琀Ⰰ ∀爀甀渀愀猀∀ 眀椀氀氀 愀氀眀愀礀猀 瀀爀漀洀瀀琀 昀漀爀 琀栀攀 瀀愀猀猀眀漀爀搀 漀昀 琀栀愀琀 漀琀栀攀爀 愀挀挀漀甀渀琀⸀㰀戀爀㸀ഀഀ
਍䘀爀漀洀 琀栀攀 瀀爀漀洀瀀琀Ⰰ 甀猀攀 爀甀渀愀猀㨀㰀戀爀㸀ഀഀ
਍㰀䈀㸀䌀㨀尀㸀爀甀渀愀猀 嬀⼀瀀爀漀昀椀氀攀崀 嬀⼀攀渀瘀崀 嬀⼀渀攀琀漀渀氀礀崀 ⼀甀猀攀爀㨀甀猀攀爀 倀爀漀最爀愀洀 㰀⼀䈀㸀㰀戀爀㸀ഀഀ
਍㰀䈀㸀⼀瀀爀漀昀椀氀攀簀渀漀瀀爀漀昀椀氀攀㨀㰀⼀䈀㸀   伀瀀琀椀漀渀 琀漀 氀漀愀搀 琀栀攀 甀猀攀爀✀猀 瀀爀漀昀椀氀攀 ⠀椀昀 愀瀀瀀氀椀挀愀戀氀攀 昀漀爀 愀 瀀爀漀最爀愀洀⤀㰀戀爀㸀ഀഀ /env: Use current environment instead of user's.
਍㰀䈀㸀⼀渀攀琀漀渀氀礀㨀㰀⼀䈀㸀   唀猀攀 椀昀 琀栀攀 挀爀攀搀攀渀琀椀愀氀猀 猀瀀攀挀椀昀椀攀搀 愀爀攀 昀漀爀 刀䄀匀 漀渀氀礀⸀㰀戀爀㸀ഀഀ /user: Username in form of user@DOMAIN or DOMAIN\user (or COMPUTERNAME\user, in case of a local account)
਍㰀䈀㸀倀爀漀最爀愀洀㨀㰀⼀䈀㸀    吀栀攀 挀漀洀洀愀渀搀 琀漀 攀砀攀挀甀琀攀㰀戀爀㸀ഀഀ
਍㰀䈀㸀匀漀洀攀 攀砀愀洀瀀氀攀猀㨀㰀⼀䈀㸀㰀戀爀㸀ഀഀ
਍䌀㨀尀㸀 爀甀渀愀猀 ⼀甀猀攀爀㨀䄀搀洀椀渀椀猀琀爀愀琀漀爀䀀愀渀琀愀瀀攀砀⸀漀爀最 ∀洀礀挀漀洀洀愀渀搀⸀攀砀攀∀㰀戀爀㸀ഀഀ
਍䌀㨀尀㸀 爀甀渀愀猀 ⼀甀猀攀爀㨀圀䬀匀吀㄀ 尀䄀搀洀椀渀椀猀琀爀愀琀漀爀 ∀洀礀戀愀琀挀栀⸀戀愀琀∀㰀戀爀㸀ഀഀ
਍䤀渀 愀氀氀 挀愀猀攀猀Ⰰ 爀甀渀愀猀 眀椀氀氀 瀀爀漀洀瀀琀 昀漀爀 琀栀攀 瀀愀猀猀眀漀爀搀⸀㰀戀爀㸀ഀഀ As alternatives for the Microsoft "runas" utility, you can download other similar tools,
਍眀栀椀挀栀 挀愀渀 戀攀 甀猀攀搀 眀椀琀栀 愀 瀀愀猀猀眀漀爀搀 瀀愀猀猀攀搀 愀氀漀渀最 漀渀 琀栀攀 挀漀洀洀愀渀搀氀椀渀攀Ⰰ 漀爀 猀琀漀爀攀搀 椀渀 愀 戀愀琀挀栀昀椀氀攀⸀㰀戀爀㸀ഀഀ There also exists "luxury" editions which allows you to use an "encrypted" password.
਍栀琀琀瀀㨀⼀⼀眀眀眀⸀爀漀戀漀琀爀漀渀椀挀⸀搀攀⼀爀甀渀愀猀猀瀀挀䔀渀⸀栀琀洀氀㰀戀爀㸀ഀഀ http://www.softtreetech.com/24x7/archive/53.htm
਍㰀戀爀㸀ഀഀ ਍㰀栀㌀ 椀搀㴀∀猀攀挀琀椀漀渀㔀∀㸀㔀⸀ 吀栀攀 ∀琀愀猀欀欀椀氀氀∀ 漀爀 ∀琀猀欀椀氀氀∀ 挀漀洀洀愀渀搀⸀㰀⼀栀㌀㸀ഀഀ ਍ഀഀ In older versions of Windows, you needed the Resource Kit, in order to obtain the "kill" command.
਍匀椀渀挀攀 堀倀 ⠀瀀爀漀昀昀攀猀椀漀渀愀氀⤀Ⰰ 琀栀攀 ∀琀愀猀欀欀椀氀氀∀ 挀漀洀洀愀渀搀 椀猀 愀 猀琀愀渀搀愀爀搀 昀攀愀琀甀爀攀 椀渀 琀栀攀 伀匀⸀㰀戀爀㸀ഀഀ
਍吀愀猀欀欀椀氀氀 挀愀渀 戀攀 漀昀 栀攀氀瀀Ⰰ 椀渀 琀攀爀洀椀渀愀琀椀渀最 ∀愀 爀甀渀愀眀愀礀∀ 漀爀 椀渀爀攀猀瀀漀渀猀椀瘀攀Ⰰ 瀀爀漀挀攀猀猀⸀㰀戀爀㸀ഀഀ Ofcourse, you need to be a bit carefull and be reluctant in it's use, but sometimes you do not have
਍漀琀栀攀爀 漀瀀琀椀漀渀猀⸀㰀戀爀㸀ഀഀ
਍䤀琀✀猀 瀀爀椀洀愀爀礀 甀猀攀Ⰰ 眀椀氀氀 戀攀 椀渀 欀椀氀氀椀渀最 樀甀猀琀 漀渀攀 瀀爀漀挀攀猀猀Ⰰ 椀昀 礀漀甀 欀渀漀眀 椀琀✀猀 ∀瀀爀漀挀攀猀猀 椀搀∀ ⠀瀀椀搀⤀⸀㰀戀爀㸀ഀഀ So, suppose the process with a pid equal to 1480, must be killed, then use the command:
਍㰀戀爀㸀ഀഀ C:\> taskkill /pid 1480
਍㰀戀爀㸀ഀഀ And you can even terminate more processes at the same time, for example:
਍㰀戀爀㸀ഀഀ C:\> taskkill /pid 1530 /pid 1603 /pid 1153
਍㰀戀爀㸀ഀഀ You can find the pid, by using, for example, the "Task Manager".
਍䤀昀 椀琀✀猀 愀瘀愀椀氀愀戀氀攀 漀渀 礀漀甀爀 伀匀Ⰰ 琀栀攀 挀漀洀洀愀渀搀 ∀琀愀猀欀氀椀猀琀∀ 椀猀 攀瘀攀渀 愀 洀甀挀栀 戀攀琀琀攀爀 挀漀洀洀愀渀搀⸀㰀戀爀㸀ഀഀ If still you do not know the pid, you can specify the "image" name. For example:
਍㰀戀爀㸀ഀഀ C:\> taskkill /f /im myprogram.exe
਍㰀戀爀㸀ഀഀ So, if you know the pid, use the "/pid" option. If you want to use the image name, use the "/im" option.
਍䈀礀 琀栀攀 眀愀礀Ⰰ 琀栀攀 ∀⼀昀∀ 瀀愀爀愀洀攀琀攀爀 甀猀攀猀 愀 洀漀爀攀 瀀漀眀攀爀昀甀氀氀 猀椀最渀愀氀 ⠀昀漀爀挀攀⤀⸀㰀戀爀㸀ഀഀ
਍一漀琀攀㨀 䤀昀 礀漀甀 愀氀爀攀愀搀礀 甀猀攀 㰀䈀㸀∀倀漀眀攀爀匀栀攀氀氀∀㰀⼀䈀㸀Ⰰ  欀椀氀氀 椀猀 愀 瀀爀攀搀攀昀椀渀攀搀 挀漀洀洀愀渀搀 愀氀椀愀猀 昀漀爀 琀栀攀 匀琀漀瀀ⴀ倀爀漀挀攀猀猀 挀洀搀氀攀琀⸀㰀戀爀㸀ഀഀ
਍䈀甀琀 琀栀攀 琀愀猀欀欀椀氀氀 挀漀洀洀愀渀搀 椀猀 洀甀挀栀 洀漀爀攀 瀀漀眀攀爀昀甀氀氀 ⠀愀渀搀 瀀漀琀攀渀琀椀愀氀氀礀 ∀搀愀渀最攀爀漀甀猀∀⤀Ⰰ 琀栀愀渀 樀甀猀琀 琀攀爀洀椀渀愀琀椀渀最㰀戀爀㸀ഀഀ a single pid (or more than one pid, listed on the commandline).
਍吀栀攀 挀漀洀洀愀渀搀 猀礀渀琀愀砀 瀀爀漀瘀椀搀攀猀 攀瘀攀渀 昀漀爀 眀椀氀搀挀愀爀搀猀 愀渀搀 ∀漀瀀攀爀愀琀漀爀猀∀ ⠀昀椀氀琀攀爀猀⤀ 氀椀欀攀 ∀攀焀∀ ⠀攀焀甀愀氀⤀ 漀爀 ∀渀攀∀ ⠀渀漀琀 攀焀甀愀氀⤀⸀㰀戀爀㸀ഀഀ You can kill whole groups of processes, by filtering on cpu, memory usage, user etc...
਍䈀甀琀 戀攀 挀愀爀攀昀甀氀氀Ⰰ 椀昀 礀漀甀 眀漀爀欀 漀渀 愀 洀愀挀栀椀渀攀 琀栀愀琀✀猀 洀漀爀攀 椀洀瀀漀爀琀愀渀琀 琀栀愀渀 樀甀猀琀 愀 琀攀猀琀 洀愀挀栀椀渀攀⸀㰀戀爀㸀ഀഀ
਍䄀猀 愀 昀攀眀 攀砀愀洀瀀氀攀猀 漀昀 琀栀攀 攀砀琀攀渀搀攀搀 昀漀爀洀猀 漀昀 琀栀攀 琀愀猀欀欀椀氀氀 挀漀洀洀愀渀搀Ⰰ 琀愀欀攀 愀 氀漀漀欀 愀琀 琀栀攀 昀漀氀氀漀眀椀渀最 挀漀洀洀愀渀搀猀㨀㰀戀爀㸀ഀഀ
਍㰀䈀㸀䌀㨀尀㸀 琀愀猀欀欀椀氀氀 ⼀昀 ⼀昀椀 ∀猀琀愀琀甀猀 攀焀 渀漀琀 爀攀猀瀀漀渀搀椀渀最∀㰀⼀䈀㸀㰀戀爀㸀ഀഀ C:\> taskkill /s starboss /u antapex\administrator /p p@ssword /fi "IMAGENAME eq note*" /im *
਍㰀戀爀㸀ഀഀ For more info on taskkill, take a look at:
਍栀琀琀瀀㨀⼀⼀眀眀眀⸀洀椀挀爀漀猀漀昀琀⸀挀漀洀⼀爀攀猀漀甀爀挀攀猀⼀搀漀挀甀洀攀渀琀愀琀椀漀渀⼀眀椀渀搀漀眀猀⼀砀瀀⼀愀氀氀⼀瀀爀漀搀搀漀挀猀⼀攀渀ⴀ甀猀⼀琀愀猀欀欀椀氀氀⸀洀猀瀀砀㼀洀昀爀㴀琀爀甀攀㰀戀爀㸀ഀഀ
਍㰀䈀㸀琀猀欀椀氀氀㨀㰀⼀䈀㸀㰀戀爀㸀ഀഀ Maybe your OS does not have the "taskkill" command (like with the Home Editions).
਍吀栀攀渀 礀漀甀 洀椀最栀琀 甀猀攀 琀栀攀 ∀琀猀欀椀氀氀∀ 挀漀洀洀愀渀搀Ⰰ 眀栀椀挀栀 栀漀眀攀瘀攀爀Ⰰ 栀愀猀 氀攀猀猀攀爀 漀瀀琀椀漀渀猀 挀漀洀瀀愀爀攀搀 琀漀 ∀琀愀猀欀欀椀氀氀∀⸀㰀戀爀㸀ഀഀ
਍吀栀攀 ⠀昀甀氀氀⤀ 猀礀渀琀愀砀 椀猀㨀㰀戀爀㸀ഀഀ tskill processid | processname [/SERVER:servername] [/ID:sessionid | /A] [/V]
਍㰀戀爀㸀ഀഀ So, here you can, for example, just use:
਍䌀㨀尀㸀 琀猀欀椀氀氀 ㄀㔀㐀㐀㰀戀爀㸀ഀഀ C:\> tskill notepad
਍㰀戀爀㸀ഀഀ Note: the "tasklist" command to retrieve a list of running processes.
਍㰀戀爀㸀ഀഀ In Unix, it's easy to get a list of all processes and their properties. For example, just use the "ps -ef" command.
਍䈀甀琀 眀栀愀琀 挀愀渀 礀漀甀 甀猀攀 昀爀漀洀 琀栀攀 瀀爀漀洀瀀琀 漀渀 圀椀渀搀漀眀猀㼀㰀戀爀㸀ഀഀ In section 11, we will see the "wmic" command, which answers the question above.
਍䈀甀琀 琀漀 爀攀琀爀椀攀瘀攀 愀 氀椀猀琀 漀昀 瀀爀漀挀攀猀猀攀猀Ⰰ 礀漀甀 洀椀最栀琀 愀氀猀漀 挀漀渀猀椀搀攀爀 琀栀攀 㰀䈀㸀琀愀猀欀氀椀猀琀㰀⼀䈀㸀 挀漀洀洀愀渀搀⸀ 䨀甀猀琀 氀椀欀攀 椀渀 琀栀攀 昀漀氀氀漀眀椀渀最 攀砀愀洀瀀氀攀㨀㰀戀爀㸀ഀഀ
਍㰀䈀㸀䌀㨀尀㸀 琀愀猀欀氀椀猀琀㰀⼀䈀㸀㰀戀爀㸀ഀഀ

਍匀礀猀琀攀洀 䤀搀氀攀 倀爀漀挀攀猀猀             䌀漀渀猀漀氀攀                                ㄀㘀 䬀㰀戀爀㸀ഀഀ System 4 Console 0 96,396 K
਍猀洀猀猀⸀攀砀攀                    㜀㘀㐀 䌀漀渀猀漀氀攀                               㐀 㐀 䬀㰀戀爀㸀ഀഀ csrss.exe 836 Console 0 4,032 K
਍眀椀渀氀漀最漀渀⸀攀砀攀                㠀㘀  䌀漀渀猀漀氀攀                               㠀㈀  䬀㰀戀爀㸀ഀഀ services.exe 904 Console 0 3,440 K
਍氀猀愀猀猀⸀攀砀攀                   㤀㄀㘀 䌀漀渀猀漀氀攀                             ㄀Ⰰ㔀 㐀 䬀㰀戀爀㸀ഀഀ svchost.exe 1092 Console 0 5,152 K
਍猀瘀挀栀漀猀琀⸀攀砀攀                ㄀㄀㔀㘀 䌀漀渀猀漀氀攀                             㐀Ⰰ㌀㄀㈀ 䬀㰀戀爀㸀ഀഀ svchost.exe 1300 Console 0 23,108 K
਍猀瘀挀栀漀猀琀⸀攀砀攀                ㄀㌀㜀㈀ 䌀漀渀猀漀氀攀                             ㌀Ⰰ㐀㜀㘀 䬀㰀戀爀㸀ഀഀ svchost.exe 1572 Console 0 3,884 K
਍攀琀挀⸀⸀ ⠀椀渀 爀攀愀氀椀琀礀Ⰰ 琀栀攀 氀椀猀琀 椀猀 洀甀挀栀 氀漀渀最攀爀⤀㰀戀爀㸀ഀഀ

਍ഀഀ
਍ഀഀ ਍㰀栀㌀ 椀搀㴀∀猀攀挀琀椀漀渀㘀∀ 㸀㘀⸀ 吀栀攀 ∀搀爀椀瘀攀爀焀甀攀爀礀∀ 挀漀洀洀愀渀搀⸀㰀⼀栀㌀㸀ഀഀ ਍䠀攀爀攀 眀攀 挀愀渀 戀攀 猀栀漀爀琀⸀ 吀栀椀猀 挀漀洀洀愀渀搀 眀椀氀氀 猀栀漀眀 愀氀氀 椀渀猀琀愀氀氀攀搀 搀爀椀瘀攀爀猀 ⠀渀愀洀攀 愀渀搀 愀搀搀椀琀椀漀渀愀氀 椀渀昀漀爀洀愀琀椀漀渀⤀㰀戀爀㸀ഀഀ which are on your system. It's available and standard as of XP (although Home editions may lack it).
਍⠀一漀琀攀㨀 ∀愀猀 漀昀 堀倀∀ 漀昀挀漀甀爀猀攀 洀攀愀渀猀 琀栀愀琀 洀漀爀攀 爀攀挀攀渀琀 瘀攀爀猀椀漀渀猀 氀椀欀攀 嘀椀猀琀愀Ⰰ 圀椀渀搀漀眀猀 㜀Ⰰ 栀愀瘀攀 椀琀 愀猀 眀攀氀氀⸀⤀ഀഀ
਍匀礀渀琀愀砀㨀㰀戀爀㸀ഀഀ driverquery [/s Computer] [/u Domain\User /p Password] [/fo {TABLE|LIST|CSV}] [/nh] [/v] [/si]
਍㰀戀爀㸀ഀഀ So, there are quite some options you can use. ਍䤀渀 椀渀 洀漀猀琀 戀愀猀椀挀 昀漀爀洀Ⰰ 樀甀猀琀 攀渀琀攀爀 琀栀攀 挀漀洀洀愀渀搀 搀爀椀瘀攀爀焀甀攀爀礀 昀爀漀洀 琀栀攀 挀漀洀洀愀渀搀氀椀渀攀Ⰰ 氀椀欀攀 琀栀椀猀㨀㰀戀爀㸀ഀഀ
਍㰀䈀㸀䌀㨀尀㸀 搀爀椀瘀攀爀焀甀攀爀礀㰀⼀䈀㸀㰀戀爀㸀ഀഀ ਍㰀䤀㸀吀栀攀 漀甀琀瀀甀琀 椀猀 搀爀椀瘀攀爀 椀渀昀漀 昀爀漀洀 礀漀甀爀 氀漀挀愀氀 猀礀猀琀攀洀⸀⸀⸀㰀⼀䤀㸀㰀戀爀㸀ഀഀ
਍䄀猀 礀漀甀 挀愀渀 猀攀攀 昀爀漀洀 琀栀攀 猀礀渀琀愀砀Ⰰ 礀漀甀 挀愀渀 愀氀猀漀 焀甀攀爀礀 愀 爀攀洀漀琀攀 洀愀挀栀椀渀攀Ⰰ 甀猀椀渀最 ∀⼀猀 䌀漀洀瀀甀琀攀爀 ⼀甀 䐀漀洀愀椀渀尀唀猀攀爀 ⼀瀀 倀愀猀猀眀漀爀搀∀⸀㰀戀爀㸀ഀഀ Also, the "/v" switch means "verbose", meaning that the list contains more detailed information.
਍㰀戀爀㸀ഀഀ If you would like a graphical output (in a Windows dialog box), you might check out "DriverView",
਍眀栀椀挀栀 挀愀渀 戀攀 昀漀甀渀搀 愀琀㨀㰀戀爀㸀ഀഀ http://www.nirsoft.net/utils/driverview.html
਍ഀഀ
਍㰀栀㌀ 椀搀㴀∀猀攀挀琀椀漀渀㜀∀㸀㜀⸀ 吀栀攀 ∀渀攀琀猀琀愀琀∀ 愀渀搀 ∀渀戀琀猀琀愀琀∀ 挀漀洀洀愀渀搀猀⸀㰀⼀栀㌀㸀ഀഀ ਍㰀䈀㸀渀攀琀猀琀愀琀㨀㰀⼀䈀㸀㰀戀爀㸀ഀഀ
਍一攀琀猀琀愀琀 椀猀 愀 甀猀攀昀甀氀氀 琀漀漀氀 昀漀爀 瘀椀攀眀椀渀最 愀渀搀 挀栀攀挀欀椀渀最 渀攀琀眀漀爀欀 挀漀渀渀攀挀琀椀漀渀猀 昀爀漀洀 琀栀攀 瀀爀漀洀瀀琀⸀㰀戀爀㸀ഀഀ Syntax:
਍渀攀琀猀琀愀琀 嬀ⴀ愀崀 嬀ⴀ戀崀 嬀ⴀ攀崀 嬀ⴀ渀崀 嬀ⴀ漀崀 嬀ⴀ瀀 瀀爀漀琀漀崀 嬀ⴀ爀崀 嬀ⴀ猀崀 嬀ⴀ瘀崀 嬀椀渀琀攀爀瘀愀氀崀 㰀䤀㸀嬀ⴀ戀崀㰀⼀㸀㰀⼀䤀㸀㰀戀爀㸀ഀഀ
਍䐀攀瀀攀渀搀椀渀最 漀渀 琀栀攀 猀眀椀琀挀栀攀猀 琀栀愀琀 礀漀甀 甀猀攀Ⰰ 渀攀琀猀琀愀琀 眀椀氀氀 猀栀漀眀 礀漀甀 琀栀攀 瀀爀漀琀漀挀漀氀 甀猀攀搀 椀渀 琀栀攀 挀漀渀渀攀挀琀椀漀渀猀Ⰰ㰀戀爀㸀ഀഀ the local and remote addresses, the portnumbers, and on modern OS'ses, the "-b" switch will even show
਍眀栀椀挀栀 瀀爀漀最爀愀洀 漀渀 礀漀甀 洀愀挀栀椀渀攀 椀猀 愀挀琀甀愀氀氀礀 挀漀洀洀甀渀椀挀愀琀椀渀最⸀㰀戀爀㸀ഀഀ
਍匀漀洀攀 攀砀愀洀瀀氀攀猀㨀ഀഀ
਍㰀䈀㸀䌀㨀尀㸀 渀攀琀猀琀愀琀㰀⼀䈀㸀 㰀䤀㸀⌀ 樀甀猀琀 猀栀漀眀猀 琀栀攀 愀挀琀椀瘀攀 挀漀渀渀攀挀琀椀漀渀猀㰀⼀䤀㸀㰀戀爀㸀ഀഀ C:\> netstat -a #shows all connections
਍㰀䈀㸀䌀㨀尀㸀 渀攀琀猀琀愀琀 ⴀ愀渀㰀⼀䈀㸀 㰀䤀㸀⌀ 猀栀漀眀猀 愀氀氀 挀漀渀渀攀挀琀椀漀渀猀 眀椀琀栀 愀搀搀爀攀猀猀攀猀 愀渀搀 瀀漀爀琀猀 椀渀 渀甀洀洀攀爀椀挀愀氀 昀漀爀洀 ⠀㰀唀㸀最漀漀搀 漀瀀琀椀漀渀℀㰀⼀唀㸀⤀㰀⼀䤀㸀㰀戀爀㸀ഀഀ C:\> netstat -an | find "4500" # as above, but filters the output on port 4500
਍㰀䈀㸀䌀㨀尀㸀 渀攀琀猀琀愀琀 ⴀ愀渀 ㌀㰀⼀䈀㸀 㰀䤀㸀⌀ 愀猀 ∀渀攀琀猀琀愀琀 ⴀ愀渀∀Ⰰ 戀甀琀 琀栀攀 挀漀洀洀愀渀搀 椀猀 爀攀瀀攀愀琀攀搀 攀瘀攀爀礀 ㌀ 猀攀挀漀渀搀猀㰀⼀䤀㸀㰀戀爀㸀ഀഀ C:\> netstat -anb # shows all connections with addresses and ports in nummerical form, and which program is involved
਍㰀䈀㸀䌀㨀尀㸀 渀攀琀猀琀愀琀 ⴀ爀㰀⼀䈀㸀 㰀䤀㸀⌀ 猀栀漀眀猀 琀栀攀 ∀爀漀甀琀椀渀最 琀愀戀氀攀∀ 琀栀愀琀✀猀 椀渀 攀昀昀攀挀琀 漀渀 礀漀甀爀 洀愀挀栀椀渀攀㰀⼀䤀㸀㰀戀爀㸀ഀഀ
਍䄀猀 愀 氀愀猀琀 渀椀挀攀 攀砀愀洀瀀氀攀Ⰰ 琀爀礀 琀栀攀 ⴀ攀 愀渀搀 ⴀ猀 猀眀椀琀挀栀攀猀⸀ 䤀琀 眀椀氀氀 礀漀甀 琀栀攀 渀攀琀眀漀爀欀 猀琀愀琀椀猀琀椀挀猀 漀昀 礀漀甀爀 渀攀琀眀漀爀欀 椀渀琀攀爀昀愀挀攀㨀㰀戀爀㸀ഀഀ
਍㰀䈀㸀䌀㨀尀㸀 渀攀琀猀琀愀琀 ⴀ攀 ⴀ猀㰀⼀䈀㸀㰀戀爀㸀ഀഀ
਍㰀䤀㸀匀栀漀眀猀 渀攀琀眀漀爀欀 猀琀愀琀椀猀琀椀挀猀 漀昀 礀漀甀爀 渀攀琀挀愀爀搀Ⰰ 氀椀欀攀 戀礀琀攀猀 猀攀渀搀 愀渀搀 爀攀挀攀椀瘀攀搀Ⰰ 猀攀最洀攀渀琀猀 猀攀渀搀 愀渀搀 爀攀挀攀椀瘀攀搀 攀琀挀⸀⸀⸀㰀⼀䤀㸀㰀戀爀㸀ഀഀ
਍㰀䈀㸀渀戀琀猀琀愀琀㨀㰀⼀䈀㸀㰀戀爀㸀ഀഀ
਍吀栀攀 ∀渀戀琀猀琀愀琀∀ 甀琀椀氀椀琀礀Ⰰ 椀猀 最攀愀爀攀搀 琀漀眀愀爀搀猀 瘀椀攀眀椀渀最 一攀琀戀椀漀猀 ∀渀愀洀椀渀最∀ 愀渀搀 ∀爀攀最椀猀琀爀愀琀椀漀渀∀ 椀渀昀漀爀洀愀琀椀漀渀⸀㰀戀爀㸀ഀഀ Although once a fundamental protocol for IBM and Microsoft, it'still is far from obsolete. Almost all Windows machines still
਍栀愀瘀攀 愀 ∀渀攀琀戀椀漀猀 渀愀洀攀∀Ⰰ 愀猀 眀攀氀氀 愀猀 琀栀愀琀 洀愀渀礀 㰀䈀㸀猀攀爀瘀椀挀攀猀㰀⼀䈀㸀 爀攀最椀猀琀攀爀猀Ⰰ 漀爀 戀爀漀愀搀挀愀猀琀Ⰰ 琀栀攀椀爀 渀攀琀戀椀漀猀 椀搀攀渀琀椀昀椀攀爀猀㰀戀爀㸀ഀഀ on the network. Services, might register themselves (periodically) through a broadcast, or directed to a WINS Server.
਍䔀猀瀀攀挀椀愀氀氀礀 爀攀琀爀椀攀瘀椀渀最 ∀渀愀洀椀渀最∀ 椀渀昀漀爀洀愀琀椀漀渀 昀爀漀洀 琀栀攀 氀漀挀愀氀 漀爀 爀攀洀漀琀攀 挀愀挀栀攀猀Ⰰ 椀猀 愀渀 椀洀瀀漀爀琀愀渀琀 昀甀渀挀琀椀漀渀 漀昀 琀栀攀 渀戀琀猀琀愀琀 甀琀椀氀椀琀礀⸀㰀戀爀㸀ഀഀ So, for example, using "nbtstat", you can view the netbios naming registrations on your local- or remote machines.
਍䄀氀猀漀Ⰰ 礀漀甀 挀愀渀 猀攀攀 栀漀眀 礀漀甀爀 洀愀挀栀椀渀攀 栀愀瘀攀 爀攀猀漀氀瘀攀搀 ∀渀攀琀戀椀漀猀∀ 渀愀洀攀猀 椀渀琀漀 愀搀搀爀攀猀猀攀猀 ⠀甀猀椀渀最 ⴀ挀 猀眀椀琀挀栀⤀⸀㰀戀爀㸀ഀഀ So, please do distinguish that we have a "name table" that shows which services have registered, and we have a "naming cache"
਍眀栀椀挀栀 猀栀漀眀猀 栀漀眀 渀愀洀攀猀 愀爀攀 爀攀猀漀氀瘀攀搀 椀渀琀漀 渀攀琀眀漀爀欀 愀搀搀爀攀猀猀攀猀⸀㰀戀爀㸀ഀഀ ਍㰀戀爀㸀ഀഀ The syntax is the following:
਍渀戀琀猀琀愀琀 嬀 嬀ⴀ愀 刀攀洀漀琀攀一愀洀攀崀 嬀ⴀ䄀 刀攀洀漀琀攀 䤀倀 愀搀搀爀攀猀猀崀 嬀ⴀ挀崀 嬀ⴀ渀崀 嬀ⴀ爀崀 嬀ⴀ刀崀 嬀ⴀ刀刀崀 嬀ⴀ猀崀 嬀ⴀ匀崀 嬀椀渀琀攀爀瘀愀氀崀 崀 㰀戀爀㸀ഀഀ
਍匀漀洀攀 攀砀愀洀瀀氀攀猀㨀ഀഀ
਍㰀䈀㸀䌀㨀尀㸀 渀戀琀猀琀愀琀 ⴀ渀㰀⼀䈀㸀 㰀䤀㸀⌀ 䐀椀猀瀀氀愀礀猀 琀栀攀 一攀琀䈀䤀伀匀 渀愀洀攀 琀愀戀氀攀 漀昀 礀漀甀爀 氀漀挀愀氀 洀愀挀栀椀渀攀㰀⼀䤀㸀㰀戀爀㸀ഀഀ C:\> nbtstat -c # Displays the NetBIOS name cache (what is resolved) on your local machine
਍㰀䈀㸀䌀㨀尀㸀 渀戀琀猀琀愀琀 ⴀ愀 刀攀洀漀琀攀䴀愀挀栀椀渀攀一愀洀攀㰀⼀䈀㸀 㰀䤀㸀⌀ 䐀椀猀瀀氀愀礀猀 琀栀攀 一攀琀䈀䤀伀匀 渀愀洀攀 琀愀戀氀攀 漀昀 琀栀攀 刀攀洀漀琀攀䴀愀挀栀椀渀攀一愀洀攀㰀⼀䤀㸀㰀戀爀㸀ഀഀ C:\> nbtstat -A RemoteIPAdress # Displays the NetBIOS name table of the machine with that Remote IP Adress
਍㰀戀爀㸀ഀഀ So, both "netstat" and "nbtstat" are tools that might help in troubleshooting (or just viewing) network stuff.
਍㰀戀爀㸀ഀഀ Note:
਍䈀礀 琀栀攀 眀愀礀Ⰰ 椀昀 礀漀甀 眀愀渀琀 琀漀 瘀椀攀眀 琀栀攀 猀漀挀愀氀氀攀搀 ∀愀爀瀀∀ 挀愀挀栀攀Ⰰ 洀攀愀渀椀渀最 眀栀椀挀栀 䤀倀 愀搀搀爀攀猀猀攀猀 栀愀瘀攀 戀攀攀渀 爀攀猀漀氀瘀攀搀 琀漀 䴀䄀䌀 搀愀琀愀氀椀渀欀氀愀礀攀爀㰀戀爀㸀ഀഀ addresses on your local machine, use the "arp -a" command, like so:
਍㰀戀爀㸀ഀഀ C:\> arp -a
਍㰀戀爀㸀ഀഀ So you can use the "nbtstat" command to see which names have been resolved to IP Addresses,
਍愀渀搀 礀漀甀 挀愀渀 甀猀攀 琀栀攀 ∀愀爀瀀∀ 挀漀洀洀愀渀搀 琀漀 猀攀攀 眀栀椀挀栀 䤀倀 䄀搀搀爀攀猀猀攀猀 栀愀瘀攀 戀攀攀渀 爀攀猀漀氀瘀攀搀 琀漀 䐀愀琀愀氀椀渀欀 愀搀搀爀攀猀猀攀猀 ⠀挀愀爀搀 漀爀 䴀䄀䌀 愀搀搀爀攀猀猀攀猀⤀⸀ഀഀ
਍ഀഀ

8. Some examples of commands, to invoke a Graphical Utilty.

਍ഀഀ -- Graphical utilities or mmc snapins:
਍㰀戀爀㸀ഀഀ Many graphical tools, like the 'eventviewer", or "control panel" etc.. means that you must find your
਍眀愀礀 椀渀 琀栀攀 䜀唀䤀 猀礀猀琀攀洀 漀昀 圀椀渀搀漀眀猀⸀ 一漀琀栀椀渀最 眀爀漀渀最 眀椀琀栀 琀栀愀琀Ⰰ 戀甀琀 猀漀洀攀琀椀洀攀猀 䤀 昀椀渀搀 椀琀 攀愀猀椀攀爀 琀漀 樀甀猀琀 猀琀愀爀琀 愀 瀀爀漀洀瀀琀Ⰰ㰀戀爀㸀ഀഀ and give the appropriate command to launch that GUI component.
਍䠀攀爀攀 椀猀 愀 猀栀漀爀琀 氀椀猀琀 漀昀 椀渀瘀漀欀椀渀最 猀漀洀攀 琀漀漀氀猀 昀爀漀洀 琀栀攀 瀀爀漀洀瀀琀⸀ 㰀䈀㸀一漀琀 愀氀氀 挀漀洀洀愀渀搀猀 眀漀爀欀 攀砀愀挀琀氀礀 琀栀攀 猀愀洀攀㰀戀爀㸀ഀഀ (or are available) on all Windows versions.
਍䈀甀琀 礀漀甀 挀愀渀 樀甀猀琀 琀爀礀 琀栀攀洀 漀甀琀 ⠀戀攀 愀 戀椀琀 挀愀爀攀昀甀氀氀 眀椀琀栀 琀栀攀 猀栀甀琀搀漀眀渀 挀漀洀洀愀渀搀猀⤀⸀㰀戀爀㸀ഀഀ
਍㰀䈀㸀䌀㨀尀㸀 挀漀渀琀爀漀氀㰀⼀䈀㸀 㰀䤀㸀⌀ 匀琀愀爀琀猀 䌀漀渀琀爀漀氀 倀愀渀攀氀㰀⼀䤀㸀㰀戀爀㸀ഀഀ C:\> eventvwr # Starts the eventviewer
਍㰀䈀㸀䌀㨀尀㸀 洀猀挀漀渀昀椀最㰀⼀䈀㸀 㰀䤀㸀⌀ 匀琀愀爀琀猀 琀栀攀 匀礀猀琀攀洀 䌀漀渀昀椀最甀爀愀琀椀漀渀 甀琀椀氀椀琀礀 ⠀猀琀愀爀琀甀瀀 洀攀渀甀 攀琀挀⸀⸀⤀㰀⼀䤀㸀㰀戀爀㸀ഀഀ C:\> shutdown /l # logoff from Windows
਍㰀䈀㸀䌀㨀尀㸀 猀栀甀琀搀漀眀渀 ⼀猀㰀⼀䈀㸀 㰀䤀㸀⌀ 匀栀甀琀搀漀眀渀 琀栀攀 氀漀挀愀氀 洀愀挀栀椀渀攀㰀⼀䤀㸀㰀戀爀㸀ഀഀ C:\> shutdown /r # Reboot the local machine
਍㰀䈀㸀䌀㨀尀㸀 爀攀最攀搀椀琀㰀⼀䈀㸀 㰀䤀㸀⌀ 匀琀愀爀琀猀 琀栀攀 刀攀最椀猀琀爀礀 䔀搀椀琀漀爀㰀⼀䤀㸀㰀戀爀㸀ഀഀ C:\> iexplore # Starts Internet Explorer
਍㰀䈀㸀䌀㨀尀㸀 嬀搀猀愀⸀洀猀挀 簀 愀搀洀最洀琀⸀洀猀挀崀㰀⼀䈀㸀 㰀䤀㸀⌀ 匀琀愀爀琀猀 䄀挀琀椀瘀攀 䐀椀爀攀挀琀漀爀礀 唀⬀䌀 洀洀挀 猀渀愀瀀椀渀 ⠀最漀攀猀 昀漀爀 漀琀栀攀爀 ⸀洀猀挀 猀渀愀瀀椀渀猀 愀猀 眀攀氀氀⤀㰀⼀䤀㸀㰀戀爀㸀ഀഀ C:\> sysedit # uniform editor to view/configure wow/console win.ini/system.ini/config.sys
਍㰀䈀㸀䌀㨀尀㸀 瀀攀爀昀洀漀渀㰀⼀䈀㸀 㰀䤀㸀⌀ 匀琀愀爀琀猀 琀栀攀 倀攀爀昀漀爀洀愀渀挀攀 䴀漀渀椀琀漀爀㰀⼀䤀㸀㰀戀爀㸀ഀഀ C:\> diskmgmt.msc # Starts the Disk Manager
਍㰀戀爀㸀ഀഀ These are just a few examples. You can easily expand the list yourself, if you would be interrested.
਍伀昀挀漀甀爀猀攀Ⰰ 猀漀洀攀 挀漀洀洀愀渀搀猀 愀爀攀 ⠀漀爀 洀愀礀 戀攀⤀ 爀攀猀琀爀椀挀琀攀搀 琀漀 戀攀 甀猀攀搀 昀漀爀 䄀搀洀椀渀椀猀琀爀愀琀椀瘀攀 愀挀挀漀甀渀琀猀 漀渀氀礀Ⰰ㰀戀爀㸀ഀഀ or are disabled by some "policy".
਍䄀氀猀漀Ⰰ 眀栀攀渀 眀漀爀欀椀渀最 昀爀漀洀 琀栀攀 瀀爀漀洀瀀琀Ⰰ 琀栀攀 ∀倀䄀吀䠀∀ 猀攀琀琀椀渀最猀 搀攀琀攀爀洀椀渀攀 椀昀 猀漀洀攀 攀砀攀挀甀琀愀戀氀攀 挀愀渀 戀攀 昀漀甀渀搀 戀礀 琀栀攀 猀礀猀琀攀洀⸀㰀戀爀㸀ഀഀ So, if you can start some utility from the GUI, it does not automatically means you can start it from the prompt.
਍㰀戀爀㸀ഀഀ Many of the forementioned "utilities" are, in the more recent Operating Systems, "snapins"in the Microsoft Management Console.
਍吀栀愀琀 洀攀愀渀猀 琀栀愀琀 琀漀漀氀猀 氀椀欀攀 琀栀攀 搀攀瘀椀挀攀 洀愀渀愀最攀爀Ⰰ 瀀攀爀昀漀爀洀愀渀挀攀 洀漀渀椀琀漀爀Ⰰ 愀渀搀 洀愀渀礀 漀琀栀攀爀猀Ⰰ㰀戀爀㸀ഀഀ can be started, like in the following examples:
਍㰀戀爀㸀ഀഀ C:\> %SYSTEMROOT%/system32/devmgmt.msc # Starts the Device Manager tool
਍㰀䈀㸀䌀㨀尀㸀 ─匀夀匀吀䔀䴀刀伀伀吀─⼀猀礀猀琀攀洀㌀㈀⼀瀀攀爀昀洀漀渀⸀洀猀挀㰀⼀䈀㸀 㰀䤀㸀⌀ 匀琀愀爀琀猀 琀栀攀 倀攀爀昀漀爀洀愀渀挀攀 䴀漀渀椀琀漀爀 琀漀漀氀㰀⼀䤀㸀㰀戀爀㸀ഀഀ etc..
਍㰀戀爀㸀ഀഀ The environment variable "%SYSTEMROOT%", is a variable that points to the Windows directory, which on most
਍猀礀猀琀攀洀猀 眀椀氀氀 戀攀 ∀䌀㨀尀圀䤀一䐀伀圀匀∀⸀ 䈀甀琀 椀昀 礀漀甀 樀甀猀琀 甀猀攀 琀栀攀 瘀愀爀椀愀戀氀攀Ⰰ 椀琀 搀漀攀猀 渀漀琀 洀愀琀琀攀爀 眀栀攀爀攀 攀砀愀挀琀氀礀 琀栀攀 圀椀渀搀漀眀猀 搀椀爀攀挀琀漀爀礀㰀戀爀㸀ഀഀ is located. Using the variable, will ensure that you refer to the correct location.
਍㰀戀爀㸀ഀഀ -- Control Panel Applets:
਍㰀戀爀㸀ഀഀ Many of the items that you can see, in for example "Control Panel", like the "system applet", are associated
਍眀椀琀栀 ∀⸀挀瀀氀∀ 昀椀氀攀猀 ⠀㰀䤀㸀挀漀渀琀爀漀氀 瀀愀渀攀氀 昀椀氀攀猀㰀⼀䤀㸀⤀⸀ 吀栀愀琀 洀攀愀渀猀 琀栀愀琀 礀漀甀 挀愀渀 猀琀愀爀琀 猀甀挀栀 愀渀 ∀愀瀀瀀氀攀琀∀ 爀椀最栀琀 昀爀漀洀 琀栀攀 瀀爀漀洀瀀琀Ⰰ㰀戀爀㸀ഀഀ without going to Control Panel first. Now, it might be a bit different on your particular system, but if I enter
਍漀渀 洀礀 猀礀猀琀攀洀 琀栀攀 昀漀氀氀漀眀椀渀最 挀漀洀洀愀渀搀猀Ⰰ 礀漀甀 挀愀渀 猀攀攀 眀栀愀琀 栀愀瀀瀀攀渀猀 椀渀 琀栀攀 戀攀氀漀眀 攀砀愀洀瀀氀攀猀㨀㰀戀爀㸀ഀഀ
਍㰀䈀㸀䌀㨀尀㸀 愀瀀瀀眀椀稀⸀挀瀀氀㰀⼀䈀㸀 㰀䤀㸀⌀ 匀琀愀爀琀猀 琀栀攀 ∀䄀搀搀 愀渀搀 刀攀洀漀瘀攀 瀀爀漀最爀愀洀猀∀ 愀瀀瀀氀攀琀㰀⼀䤀㸀㰀戀爀㸀ഀഀ C:\> powercfg.cpl # Starts the "Power management" applet
਍攀琀挀⸀⸀㰀戀爀㸀ഀഀ
਍一漀琀攀㨀㰀戀爀㸀ഀഀ If the "direct call" to a .cpl file does not work, you might try using "control somecplfile.cpl", like in:
਍㰀䈀㸀䌀㨀尀㸀 挀漀渀琀爀漀氀 瀀漀眀攀爀挀昀最⸀挀瀀氀㰀⼀䈀㸀㰀戀爀㸀ഀഀ
਍ഀഀ

9. Some examples of commands that enables you to implement scheduled tasks.

਍ഀഀ In all Windows versions, it's possible to create a "scheduled task" that will run at dates and times
਍漀昀 礀漀甀爀 挀栀漀椀挀攀⸀ 匀漀Ⰰ 昀漀爀 攀砀愀洀瀀氀攀Ⰰ 礀漀甀 挀漀甀氀搀 挀爀攀愀琀攀 愀 樀漀戀 琀栀愀琀 爀甀渀猀 攀瘀攀爀礀 䴀漀渀搀愀礀 愀琀 ㄀㜀㨀  栀⸀㰀戀爀㸀ഀഀ
਍ഀഀ The interfaces from which you create and maintain jobs, are:
਍㰀戀爀㸀ഀഀ - the prompt, most notably the "at" and "schtasks" commands
਍ⴀ 愀渀搀 琀栀攀 䜀爀愀瀀栀椀挀愀氀 唀猀攀爀 䤀渀琀攀爀昀愀挀攀 漀昀挀漀甀爀猀攀⸀㰀戀爀㸀ഀഀ
਍ഀഀ If we take a quick look at the GUI first, then there are a few differences in the approach to add a scheduled Task,
਍椀昀 礀漀甀 眀漀甀氀搀 挀漀洀瀀愀爀攀 堀倀 愀渀搀 圀椀渀㈀䬀㌀ ⠀圀椀渀 瘀攀爀猀椀漀渀 㔀⤀ 㰀䤀㸀漀渀 琀栀攀 漀渀攀 猀椀搀攀㰀⼀䤀㸀Ⰰ 愀渀搀 嘀椀猀琀愀 愀渀搀 圀椀渀㈀䬀㠀 ⠀圀椀渀 瘀攀爀猀椀漀渀 㘀⤀ 猀礀猀琀攀洀猀 漀渀 㰀䤀㸀琀栀攀 漀琀栀攀爀 猀椀搀攀㰀⼀䤀㸀⸀㰀戀爀㸀ഀഀ Besides the visual interface on how to "do things", the scheduling "framework" is a bit different as well.
਍㰀戀爀㸀ഀഀ 1. Remarks on XP, Win2K3:
਍㰀戀爀㸀ഀഀ In Win2K3, using the GUI, you can go to the Control Panel. There you can find an icon named "Scheduled Tasks".
਍䤀昀 礀漀甀 漀瀀攀渀 琀栀愀琀Ⰰ 礀漀甀 眀椀氀氀 攀渀挀漀甀渀琀攀爀 猀攀瘀攀爀愀氀 搀椀愀氀漀最 眀椀渀搀漀眀猀 眀栀椀挀栀 眀椀氀氀 栀攀氀瀀 礀漀甀 琀漀 挀爀攀愀琀攀 琀栀攀 琀愀猀欀⸀㰀戀爀㸀ഀഀ
਍䤀渀 堀倀 愀渀搀 圀椀渀㈀䬀㌀Ⰰ 礀漀甀 挀愀渀 愀氀猀漀 瘀椀攀眀Ⰰ 挀爀攀愀琀攀 愀渀搀 洀漀搀椀昀礀 琀愀猀欀猀 戀礀 甀猀椀渀最 琀栀攀 ∀猀挀栀琀愀猀欀猀∀ 挀漀洀洀愀渀搀⸀㰀戀爀㸀ഀഀ Let's take a quick look at that:
਍㰀戀爀㸀ഀഀ C:\> schtasks
਍㰀戀爀㸀ഀഀ Shows a listing of scheduled tasks with items like status, next run date etc..
਍㰀戀爀㸀ഀഀ So, just by entering the schtasks command, it will show you all currently existing tasks.
਍㰀戀爀㸀ഀഀ You can add and modify jobs as well. Let's see what the help function of the command will show us:
਍䜀㨀尀㸀猀挀栀琀愀猀欀猀 ⼀㼀㰀戀爀㸀ഀഀ
਍匀䌀䠀吀䄀匀䬀匀 ⼀瀀愀爀愀洀攀琀攀爀 嬀愀爀最甀洀攀渀琀猀崀㰀戀爀㸀ഀഀ
਍䐀攀猀挀爀椀瀀琀椀漀渀㨀㰀戀爀㸀ഀഀ Enables an administrator to create, delete, query, change, run and
਍    攀渀搀 猀挀栀攀搀甀氀攀搀 琀愀猀欀猀 漀渀 愀 氀漀挀愀氀 漀爀 爀攀洀漀琀攀 猀礀猀琀攀洀⸀ 刀攀瀀氀愀挀攀猀 䄀吀⸀攀砀攀⸀㰀戀爀㸀ഀഀ
਍倀愀爀愀洀攀琀攀爀 䰀椀猀琀㨀㰀戀爀㸀ഀഀ /Create # Creates a new scheduled task.
਍    ⼀䐀攀氀攀琀攀         㰀䤀㸀⌀ 䐀攀氀攀琀攀猀 琀栀攀 猀挀栀攀搀甀氀攀搀 琀愀猀欀⠀猀⤀⸀㰀⼀䤀㸀㰀戀爀㸀ഀഀ /Query # Displays all scheduled tasks.
਍    ⼀䌀栀愀渀最攀         㰀䤀㸀⌀ 䌀栀愀渀最攀猀 琀栀攀 瀀爀漀瀀攀爀琀椀攀猀 漀昀 猀挀栀攀搀甀氀攀搀 琀愀猀欀⸀㰀⼀䤀㸀㰀戀爀㸀ഀഀ /Run # Runs the scheduled task immediately.
਍    ⼀䔀渀搀            㰀䤀㸀⌀ 匀琀漀瀀猀 琀栀攀 挀甀爀爀攀渀琀氀礀 爀甀渀渀椀渀最 猀挀栀攀搀甀氀攀搀 琀愀猀欀⸀㰀⼀䤀㸀㰀戀爀㸀ഀഀ /? # Displays this help message.
਍㰀戀爀㸀ഀഀ From each of these parameters, you can have very extended help, using "schtasks /parameter /?
਍吀栀攀 ∀猀挀栀琀愀猀欀猀∀ 挀漀洀洀愀渀搀Ⰰ 愀挀琀甀愀氀氀礀 猀栀漀甀氀搀 戀攀 瘀椀攀眀攀搀 愀猀 愀 爀攀瀀氀愀挀攀洀攀渀琀 漀昀 琀栀攀 昀漀爀洀攀爀 ∀愀琀∀ 挀漀洀洀愀渀搀⸀㰀戀爀㸀ഀഀ However, the "at" command still works (up to Win2K8), but is not recommended anymore.
਍㰀戀爀㸀ഀഀ The descriptions of the tasks that you created with the GUI or the schtasks command, can also be seen in the "%SYSTEMROOT%\Tasks" directory.
਍⠀一漀琀攀㨀 洀愀礀戀攀 礀漀甀 愀爀攀 渀漀琀 愀氀氀漀眀攀搀 琀漀 ∀挀搀∀ 琀漀 琀栀愀琀 搀椀爀攀挀琀漀爀礀Ⰰ 戀甀琀 礀漀甀 瀀爀漀戀愀戀氀礀 挀愀渀 瘀椀攀眀 琀栀攀 氀椀猀琀 眀椀琀栀 ∀搀椀爀 挀㨀尀眀椀渀搀漀眀猀尀琀愀猀欀猀∀⸀⤀㰀戀爀㸀ഀഀ
਍㰀䈀㸀㈀⸀ 刀攀洀愀爀欀猀 漀渀 嘀椀猀琀愀Ⰰ 圀椀渀㈀䬀㠀㨀㰀⼀䈀㸀㰀戀爀㸀ഀഀ
਍䤀渀 圀椀渀㈀䬀㠀Ⰰ 礀漀甀 眀漀甀氀搀 最漀 琀漀 琀栀攀 䌀漀渀琀爀漀氀 倀愀渀攀氀Ⰰ 愀渀搀 昀爀漀洀 琀栀攀爀攀 挀栀漀漀猀攀 琀栀攀 ∀䄀搀洀椀渀椀猀琀爀愀琀椀瘀攀 吀漀漀氀猀∀⸀ 吀栀攀爀攀 礀漀甀 挀愀渀 昀椀渀搀 琀栀攀㰀戀爀㸀ഀഀ option to Add a Scheduled Task. If you start that up, you will see that the GUI and framework indeed have changed somewhat compared
਍琀漀 琀栀攀 圀椀渀㈀䬀㌀ 眀漀爀氀搀⸀ 䤀渀 昀愀挀琀Ⰰ 椀琀✀猀 焀甀椀琀攀 猀漀洀攀 洀漀爀攀 攀氀愀戀漀爀愀琀攀 愀渀搀 挀漀洀瀀氀攀砀⸀㰀戀爀㸀ഀഀ
਍䠀攀爀攀Ⰰ 愀氀猀漀Ⰰ 琀栀攀 㰀䈀㸀∀猀挀栀琀愀猀欀猀∀㰀⼀䈀㸀 挀漀洀洀愀渀搀 ⠀漀爀 琀栀攀 ∀愀琀∀ 挀漀洀洀愀渀搀⤀ 眀漀爀欀猀 愀猀 眀攀氀氀Ⰰ 樀甀猀琀 愀猀 椀渀 堀倀⼀圀椀渀㈀䬀㌀⸀㰀戀爀㸀ഀഀ
਍㰀䈀㸀㌀⸀ 䔀砀愀洀瀀氀攀 漀昀 愀搀搀椀渀最 愀 ⠀氀漀挀愀氀⤀ 琀愀猀欀 眀椀琀栀 琀栀攀 ∀猀挀栀琀愀猀欀猀∀ 挀漀洀洀愀渀搀㨀㰀⼀䈀㸀㰀戀爀㸀ഀഀ
਍䌀㨀尀㸀 猀挀栀琀愀猀欀猀 ⼀䌀爀攀愀琀攀 ⼀匀䌀 眀攀攀欀氀礀 ⼀䐀 䴀伀一Ⰰ吀唀䔀Ⰰ圀䔀䐀 ⼀吀一 䐀愀椀氀礀䈀愀挀欀甀瀀 ⼀匀吀 ㈀㈀㨀  㨀   ⼀吀刀 挀㨀尀猀挀爀椀瀀琀猀尀搀愀椀氀礀戀愀挀欀甀瀀⸀挀洀搀 ⼀刀唀 䐀漀洀愀椀渀尀愀挀挀漀甀渀琀 ⼀刀倀 瀀愀猀猀眀漀爀搀㰀戀爀㸀ഀഀ
਍吀栀攀 昀漀氀氀漀眀椀渀最 挀爀攀愀琀攀开漀瀀琀椀漀渀猀 洀椀最栀琀 戀攀 甀猀攀搀㨀㰀戀爀㸀ഀഀ /RU username /RP password #run job under this account
਍⼀匀䌀 猀挀栀攀搀甀氀攀 嬀⼀䴀伀 洀漀搀椀昀椀攀爀崀 ⌀圀栀攀渀 琀漀 爀甀渀Ⰰ 氀椀欀攀 ∀眀攀攀欀氀礀∀㰀戀爀㸀ഀഀ /D day #day is like MON,TUE,WED,THU,FRI,SAT,SUN
਍⼀䴀 洀漀渀琀栀猀                   ⌀洀漀渀琀栀 椀猀 氀椀欀攀 䨀䄀一Ⰰ䘀䔀䈀Ⰰ䴀䄀刀Ⰰ䄀倀刀Ⰰ䴀䄀夀Ⰰ䨀唀一Ⰰ䨀唀䰀Ⰰ䄀唀䜀Ⰰ匀䔀倀Ⰰ伀䌀吀Ⰰ一伀嘀Ⰰ䐀䔀䌀⸀㰀戀爀㸀ഀഀ /TN taskname /TR taskrun #Name and pathname for task
਍匀吀 猀琀愀爀琀琀椀洀攀                ⌀䠀䠀㨀䴀䴀㨀匀匀 ⠀㈀㐀 栀漀甀爀⤀㰀戀爀㸀ഀഀ /SD startdate /ED enddate] #start and end date, in the form dd/mm/yyyy
਍㰀戀爀㸀ഀഀ Don't forget that the credentials under which the "Schedule service" runs, determines if a job can access which resources on the local machine,
਍愀渀搀⼀漀爀 挀愀渀 愀挀挀攀猀猀 渀攀琀眀漀爀欀 爀攀猀漀甀爀挀攀猀 愀猀 眀攀氀氀⸀㰀戀爀㸀ഀഀ
਍㰀䈀㸀㐀⸀ 䔀砀愀洀瀀氀攀 漀昀 愀搀搀椀渀最 愀 ⠀氀漀挀愀氀⤀ 琀愀猀欀 眀椀琀栀 琀栀攀 ∀愀琀∀ 挀漀洀洀愀渀搀㨀㰀⼀䈀㸀㰀戀爀㸀ഀഀ
਍吀愀欀攀 愀 氀漀漀欀 愀琀 琀栀攀 昀漀氀氀漀眀椀渀最 攀砀愀洀瀀氀攀 漀昀 愀搀搀椀渀最 愀渀 ∀愀琀∀ 琀愀猀欀㨀㰀戀爀㸀ഀഀ
਍䌀㨀尀㸀 䄀吀 ㈀㌀㨀㌀  瀀洀 ⼀䔀嘀䔀刀夀㨀洀Ⰰ琀Ⰰ眀Ⰰ琀栀Ⰰ昀 戀愀挀欀甀瀀⸀挀洀搀㰀戀爀㸀ഀഀ Added new task with task-ID = 1
਍㰀戀爀㸀ഀഀ A simplified syntax of the at command is:
਍㰀戀爀㸀ഀഀ at [\\remote_machine] time [every:[m],[t],[w],[th],[f],[s],[su]] command_that_must_be_scheduled
਍㰀戀爀㸀ഀഀ Notice that when you scheduke a command using "at", you will get the "task-id" returned in the response.
਍一漀琀攀㨀 椀渀 猀漀洀攀 氀漀挀愀氀攀猀Ⰰ 礀漀甀 猀栀漀甀氀搀 甀猀攀 ∀琀椀洀攀∀ 氀椀欀攀 昀漀爀 攀砀愀洀瀀氀攀 ∀㈀㌀㨀㌀  瀀洀∀Ⰰ 愀渀搀 愀琀 漀琀栀攀爀猀Ⰰ 礀漀甀 猀栀漀甀氀搀 渀漀琀 甀猀攀 愀洀 漀爀 瀀洀 愀琀 愀氀氀⸀㰀戀爀㸀ഀഀ
਍唀猀椀渀最 琀栀攀 ∀愀琀∀ 挀漀洀洀愀渀搀 眀椀琀栀漀甀琀 瀀愀爀愀洀攀琀攀爀猀Ⰰ 猀栀漀眀猀 礀漀甀 愀氀氀 愀琀 猀挀栀攀搀甀氀攀搀 樀漀戀猀Ⰰ 愀氀漀渀最 眀椀琀栀 琀栀攀椀爀 琀愀猀欀ⴀ椀搀✀猀⸀㰀戀爀㸀ഀഀ
਍䌀㨀尀㸀愀琀㰀戀爀㸀ഀഀ Status ID Day Time Command
਍ⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀ㰀戀爀㸀ഀഀ 1 Today 23:30 pm /EVERY:m,t,w,th,f backup.cmd
਍㰀戀爀㸀ഀഀ If you know the task-id, you can remove an "at" scheduled job as well. Just like so:
਍㰀戀爀㸀ഀഀ C:\> at 1 /delete
਍㰀戀爀㸀ഀഀ Again, the descriptions of the "at" jobs are localized in %SYSTEMROOT%\tasks. So here you may find files like "at1.job".
਍ഀഀ
਍ഀഀ

10. Some examples of handling txt (or ascii) files.

਍ഀഀ Often, you need to create, or edit or otherwise manipulate, a simple flat txt file.
਍䤀渀 愀渀礀 圀椀渀搀漀眀猀 瘀攀爀猀椀漀渀Ⰰ 琀栀攀 ∀渀漀琀攀瀀愀搀∀ 甀琀椀氀椀琀礀 椀猀 瀀爀攀猀攀渀琀 漀昀挀漀甀爀猀攀⸀ 伀爀 礀漀甀 洀椀最栀琀 栀愀瘀攀㰀戀爀㸀ഀഀ downloaded a "pumped up" acsii editor, like "TextPad" or "notepad+" or any other similar utility.
਍㰀戀爀㸀ഀഀ But sometimes, you want to save time by not starting such a tool, and you just want to do your work
਍爀椀最栀琀 昀爀漀洀 琀栀攀 瀀爀漀洀瀀琀⸀㰀戀爀㸀ഀഀ
਍㰀䈀㸀㄀ ⸀㄀ ∀挀漀瀀礀 挀漀渀∀ ⠀挀漀瀀礀 昀爀漀洀 挀漀渀猀漀氀攀⤀ 琀漀 挀爀攀愀琀攀 愀 琀砀琀 昀椀氀攀㰀⼀䈀㸀㰀戀爀㸀ഀഀ
਍匀甀瀀瀀漀猀攀 礀漀甀 愀爀攀 愀琀 琀栀攀 瀀爀漀洀瀀琀Ⰰ 愀渀搀 礀漀甀 樀甀猀琀 眀愀渀琀 琀漀 挀爀攀愀琀攀 愀渀 愀猀挀椀椀 昀椀氀攀 眀椀琀栀 猀漀洀攀 琀攀砀琀⸀㰀戀爀㸀ഀഀ You can directly create a txt file, from the prompt, using the "copy con" command.
਍吀栀椀猀 挀漀洀洀愀渀搀 洀攀愀渀猀 猀漀洀攀琀栀椀渀最 氀椀欀攀 ∀挀漀瀀礀 搀椀爀攀挀琀氀礀 昀爀漀洀 琀栀攀 挀漀渀猀漀氀攀 ⠀欀攀礀戀漀愀爀搀⤀∀⸀㰀戀爀㸀ഀഀ
਍匀甀瀀瀀漀猀攀 眀攀 愀爀攀 椀渀 琀栀攀 搀椀爀攀挀琀漀爀礀 䌀㨀尀吀䔀匀吀㰀戀爀㸀ഀഀ
਍㰀䈀㸀䌀㨀尀吀䔀匀吀㸀 挀漀瀀礀 挀漀渀 琀攀猀琀⸀琀砀琀㰀⼀䈀㸀 㰀䤀㸀⌀ 琀礀瀀攀 琀栀愀琀 挀漀洀洀愀渀搀 愀渀搀 琀栀攀渀 瀀爀攀猀猀 䔀渀琀攀爀㰀⼀䤀㸀㰀戀爀㸀ഀഀ this is some test text # type some text that you want the file to contain, and when ready, press Ctrl-Z
਍㰀戀爀㸀ഀഀ So, for creating simple files (with little text, or no text at all), use "copy con" and use "Ctrl-Z" to end.
਍㰀戀爀㸀ഀഀ If you really don't care what the file contains, you can use almost any ordinary command in combination with ">",
਍琀栀愀琀 椀猀Ⰰ 琀栀攀 爀攀搀椀爀攀挀琀椀漀渀 猀礀洀戀漀氀 ⠀漀瀀攀爀愀琀漀爀⤀⸀㰀戀爀㸀ഀഀ The ">" means, that you can redirect the standard output (stdout) from a program, to "other output",
਍氀椀欀攀 昀漀爀 攀砀愀洀瀀氀攀 愀 昀椀氀攀⸀㰀戀爀㸀ഀഀ
਍㰀䈀㸀䌀㨀尀吀䔀匀吀㸀 搀椀爀 㸀 琀攀猀琀⸀琀砀琀㰀⼀䈀㸀 㰀䤀㸀⌀ 琀栀攀 昀椀氀攀 眀椀氀氀 挀漀渀琀愀椀渀 琀栀攀 搀椀爀攀挀琀漀爀礀 氀椀猀琀椀渀最㰀⼀䤀㸀㰀戀爀㸀ഀഀ C:\TEST> echo > test.txt # the file will contain the line "echo is on or off"
਍㰀䈀㸀䌀㨀尀吀䔀匀吀㸀 搀愀琀攀 㸀 琀攀猀琀⸀琀砀琀㰀⼀䈀㸀 㰀䤀㸀⌀ 琀栀攀 昀椀氀攀 眀椀氀氀 挀漀渀琀愀椀渀 琀栀攀 挀甀爀爀攀渀琀 搀愀琀攀㰀⼀䤀㸀㰀戀爀㸀ഀഀ etc..
਍ഀഀ
਍㰀䈀㸀㄀ ⸀㈀ 䌀爀攀愀琀攀 愀 昀椀氀琀攀爀攀搀 漀爀 猀漀爀琀攀搀 琀砀琀 昀椀氀攀Ⰰ 昀爀漀洀 愀 猀漀甀爀挀攀 琀砀琀 昀椀氀攀㰀⼀䈀㸀㰀戀爀㸀ഀഀ
਍圀攀 愀氀爀攀愀搀礀 栀愀瘀攀 猀攀攀渀 琀栀攀 甀猀攀 漀昀 ∀㸀∀Ⰰ 眀栀椀挀栀 洀攀愀渀猀 琀栀愀琀 礀漀甀 挀栀愀渀最攀 琀栀攀 猀琀愀渀搀愀爀搀 漀甀琀瀀甀琀 漀昀 猀漀洀攀 琀漀漀氀⸀㰀戀爀㸀ഀഀ Another usefull symbol (operator) is the pipeline "|" symbol, which means that you can "link"
਍琀眀漀 瀀爀漀最爀愀洀猀 漀爀 甀琀椀氀椀琀椀攀猀Ⰰ 椀渀 猀甀挀栀 愀 眀愀礀Ⰰ 琀栀愀琀 㰀䤀㸀琀栀攀 漀甀琀瀀甀琀㰀⼀䤀㸀 漀昀 琀栀攀 昀椀爀猀琀 瀀爀漀最爀愀洀Ⰰ㰀戀爀㸀ഀഀ becomes the input for the second program.
਍㰀戀爀㸀ഀഀ To illustrate such a "pipe" between 2 utilities, let's look at an example.
਍匀甀瀀瀀漀猀攀 礀漀甀 栀愀瘀攀 愀 氀愀爀最攀 琀砀琀 昀椀氀攀Ⰰ 氀椀猀琀椀渀最 甀猀攀爀渀愀洀攀猀 愀渀搀 挀椀琀礀渀愀洀攀猀⸀㰀戀爀㸀ഀഀ Let's view the content of that file:
਍㰀戀爀㸀ഀഀ C:\TEMP>type tst.txt
਍䠀愀爀爀礀   䰀漀渀搀漀渀㰀戀爀㸀ഀഀ Albert Amsterdam
਍一愀搀椀愀   倀愀爀椀猀㰀戀爀㸀ഀഀ etc..
਍㰀戀爀㸀ഀഀ Note: with the "type" command, you can "type" the contents of an ascii (flat) file to your screen,
਍猀漀 礀漀甀 搀漀 渀漀琀 渀攀攀搀 愀 瀀爀漀最爀愀洀 氀椀欀攀 渀漀琀攀瀀愀搀 愀渀搀 琀栀攀 氀椀欀攀⸀㰀戀爀㸀ഀഀ
਍一漀眀 猀甀瀀瀀漀猀攀Ⰰ 礀漀甀 愀爀攀 漀渀氀礀 椀渀琀攀爀攀猀琀攀搀 椀渀 琀栀攀 甀猀攀爀猀 眀椀琀栀 琀栀攀 渀愀洀攀 ∀䄀氀戀攀爀琀∀⸀㰀戀爀㸀ഀഀ Instead of browsing through the file, you can "type" the file, and "feed" that output to
਍琀栀攀 ∀昀椀渀搀∀ 挀漀洀洀愀渀搀Ⰰ 眀栀椀挀栀 甀猀攀猀 琀栀愀琀 挀漀渀琀攀渀琀 愀猀 椀琀✀猀 椀渀瀀甀琀⸀ 吀栀攀 昀椀渀搀 挀漀洀洀愀渀搀 眀椀氀氀 琀栀攀渀 猀攀愀爀挀栀 昀漀爀㰀戀爀㸀ഀഀ the string that you have put as a parameter, which in this case is "Albert".
਍㰀戀爀㸀ഀഀ C:\TEMP>type tst.txt | find "Albert"
਍䄀氀戀攀爀琀  䄀洀猀琀攀爀搀愀洀㰀戀爀㸀ഀഀ
਍䤀渀搀攀攀搀Ⰰ 琀栀攀 漀甀琀瀀甀琀 最攀琀✀猀 ∀昀椀氀琀攀爀攀搀∀ 戀礀 琀栀愀琀 瀀愀爀琀椀挀甀氀愀爀 甀猀攀爀渀愀洀攀⸀㰀戀爀㸀ഀഀ
਍伀昀挀漀甀爀猀攀Ⰰ 渀漀眀 礀漀甀 挀愀渀 攀瘀攀渀 爀攀搀椀爀攀挀琀Ⰰ 琀栀攀 漀甀琀瀀甀琀 漀昀 琀栀攀 ∀昀椀渀搀∀ 挀漀洀洀愀渀搀Ⰰ 㰀䤀㸀琀漀 愀 渀攀眀 昀椀氀攀⸀㰀⼀䤀㸀㰀戀爀㸀ഀഀ
਍㰀䈀㸀䌀㨀尀吀䔀䴀倀㸀琀礀瀀攀 琀猀琀⸀琀砀琀 簀 昀椀渀搀 ∀䄀氀戀攀爀琀∀ 㸀 昀椀氀琀攀爀攀搀⸀琀砀琀㰀⼀䈀㸀㰀戀爀㸀ഀഀ
਍㰀䈀㸀䌀㨀尀吀䔀䴀倀㸀琀礀瀀攀 昀椀氀琀攀爀攀搀⸀琀砀琀㰀⼀䈀㸀㰀戀爀㸀ഀഀ Albert Amsterdam
਍㰀戀爀㸀ഀഀ As another example, suppose that the tst.txt file needs to be sorted alphabetically.
਍䘀漀爀 琀栀愀琀Ⰰ 礀漀甀 挀愀渀 甀猀攀 琀栀攀 ∀猀漀爀琀∀ 挀漀洀洀愀渀搀Ⰰ 椀渀 愀 猀椀洀椀氀愀爀 眀愀礀 愀猀 礀漀甀 甀猀攀搀 琀栀攀 ∀昀椀渀搀∀ 挀漀洀洀愀渀搀⸀㰀戀爀㸀ഀഀ Only this time, "sort" will not search for a string, but it will sort it's input:
਍㰀戀爀㸀ഀഀ C:\TEMP>type tst.txt
਍䠀愀爀爀礀   䰀漀渀搀漀渀㰀戀爀㸀ഀഀ Albert Amsterdam
਍一愀搀椀愀   倀愀爀椀猀㰀戀爀㸀ഀഀ
਍㰀䈀㸀䌀㨀尀吀䔀䴀倀㸀琀礀瀀攀 琀猀琀⸀琀砀琀 簀 猀漀爀琀 㸀 猀漀爀琀攀搀⸀琀砀琀㰀⼀䈀㸀㰀戀爀㸀ഀഀ
਍㰀䈀㸀䌀㨀尀吀䔀䴀倀㸀琀礀瀀攀 猀漀爀琀攀搀⸀琀砀琀㰀⼀䈀㸀㰀戀爀㸀ഀഀ Albert Amsterdam
਍䠀愀爀爀礀   䰀漀渀搀漀渀㰀戀爀㸀ഀഀ Nadia Paris
਍㰀戀爀㸀ഀഀ Note: for more of those "dos like" tips, you might view the file "cmdshell.txt", which is available
਍漀渀 琀栀椀猀 猀椀琀攀 愀猀 眀攀氀氀⸀㰀戀爀㸀ഀഀ
਍ഀഀ

11. The WMIC command.

਍ഀഀ As of XP (Professional), you can use the "wmic" (Windows Management Instrumentation Command) tool.
਍吀栀椀猀 愀氀氀漀眀猀 礀漀甀 琀漀 爀攀琀爀椀攀瘀攀 㰀䈀㸀愀 氀愀爀最攀 愀洀漀甀渀琀㰀⼀䈀㸀 漀昀 氀漀眀ⴀ氀攀瘀攀氀 猀礀猀琀攀洀 椀渀昀漀爀洀愀琀椀漀渀 昀爀漀洀 琀栀攀 挀漀洀洀愀渀搀 氀椀渀攀⸀㰀戀爀㸀ഀഀ
਍䘀漀爀 攀砀愀洀瀀氀攀Ⰰ 椀渀 甀渀椀砀⼀氀椀渀甀砀Ⰰ 椀琀✀猀 瘀攀爀礀 攀愀猀礀 琀漀 最攀琀 愀 氀椀猀琀 漀昀 琀栀攀 瀀爀漀挀攀猀猀攀猀 漀渀 礀漀甀爀 猀礀猀琀攀洀⸀ 䴀甀氀琀椀瀀氀攀 漀瀀琀椀漀渀猀 攀砀椀猀琀猀Ⰰ㰀戀爀㸀ഀഀ but even a relatively simple command as ps -ef, will show you all processes and their attributes, on Unix.
਍㰀戀爀㸀ഀഀ In Windows, you can ofcourse use the graphical "Task Manager" that will also show the processes, but how
਍琀漀 爀攀琀爀椀攀瘀攀 愀 氀椀猀琀 爀椀最栀琀 昀爀漀洀 琀栀攀 瀀爀漀洀瀀琀㼀 吀栀椀猀 焀甀攀猀琀椀漀渀 栀愀猀 漀昀琀攀渀 瀀甀稀稀氀攀搀 洀愀渀礀 圀椀渀搀漀眀猀 甀猀攀爀猀⸀㰀戀爀㸀ഀഀ Ofcourse, in section 5 we have already seen the "tasklist" command which produces such a list.
਍䈀甀琀 琀栀攀 ∀眀洀椀挀∀ 挀漀洀洀愀渀搀 挀愀渀 搀漀 猀椀洀椀氀愀爀Ⰰ 愀渀搀 攀瘀攀渀 㰀䤀㸀洀甀挀栀 洀漀爀攀℀㰀⼀䤀㸀㰀戀爀㸀ഀഀ That's why we will spend this section on "wmic".
਍㰀戀爀㸀ഀഀ
਍㰀䈀㸀㄀㄀⸀㄀ 圀栀愀琀 椀猀 圀䴀䤀㼀㰀⼀䈀㸀㰀戀爀㸀ഀഀ
਍䤀渀 猀栀漀爀琀㨀 圀䴀䤀 椀猀 琀栀攀 䴀椀挀爀漀猀漀昀琀 椀洀瀀氀攀洀攀渀琀愀琀椀漀渀 漀昀 圀䔀䈀䴀 愀渀搀 䌀䤀䴀Ⰰ 洀攀愀渀椀渀最 琀栀愀琀 愀渀 䄀倀䤀 椀猀 搀攀瀀氀漀礀攀搀Ⰰ 甀猀椀渀最 瘀愀爀椀漀甀猀㰀戀爀㸀ഀഀ providers, which allows for viewing (and sometimes altering) properties of many low-level system services.
਍䴀漀猀琀 圀䴀䤀 攀渀愀戀氀攀搀 ⠀最爀愀瀀栀椀挀愀氀⤀ 甀琀椀氀椀琀椀攀猀 椀渀 圀椀渀搀漀眀猀Ⰰ 猀栀漀眀猀 礀漀甀 愀 栀椀攀爀愀爀挀栀椀挀愀氀 漀戀樀攀挀琀 洀漀搀攀氀⸀㰀戀爀㸀ഀഀ That's why, in the Windows OS, there are many tools that shows you objects (like devices) in a "tree-like" structure.
਍㰀戀爀㸀ഀഀ WMIC, is the commandline interface on WMI.
਍㰀戀爀㸀ഀഀ Let's take a look at a few commands, that will demonstrate the power of "wmic".
਍㰀戀爀㸀ഀഀ
਍㰀䈀㸀㄀㄀⸀㈀ 刀攀琀爀椀攀瘀椀渀最 愀 氀椀猀琀 漀昀 瀀爀漀挀攀猀猀攀猀 愀渀搀 琀栀攀椀爀 瀀爀漀瀀攀爀琀椀攀猀⸀㰀⼀䈀㸀㰀戀爀㸀ഀഀ
਍唀猀椀渀最 圀䴀䤀䌀Ⰰ 椀琀 椀猀 瀀漀猀猀椀戀氀攀 琀漀 氀椀猀琀 漀甀琀 愀氀氀 琀栀攀 爀甀渀渀椀渀最 瀀爀漀挀攀猀猀攀猀 愀渀搀 琀栀攀椀爀 瀀愀爀愀洀攀琀攀爀猀⸀㰀戀爀㸀ഀഀ
਍㰀䤀㸀䜀攀琀 愀 氀椀猀琀 漀昀 瀀爀漀挀攀猀猀攀猀 漀渀 礀漀甀爀 氀漀挀愀氀 洀愀挀栀椀渀攀Ⰰ 眀椀琀栀 䬀攀爀渀攀氀䴀漀搀攀吀椀洀攀 愀渀搀 唀猀攀爀䴀漀搀攀吀椀洀攀 猀琀愀琀椀猀琀椀挀猀㨀㰀⼀䤀㸀㰀戀爀㸀ഀഀ C:\> wmic PROCESS get Caption,Kernelmodetime,Usermodetime
਍㰀戀爀㸀ഀഀ Get a list of processes, on your local machine, with KernelModeTime,UserModeTime, VirtualMemory statistics:
਍㰀䈀㸀䌀㨀尀㸀 眀洀椀挀 倀刀伀䌀䔀匀匀 最攀琀 䌀愀瀀琀椀漀渀Ⰰ䬀攀爀渀攀氀洀漀搀攀琀椀洀攀Ⰰ唀猀攀爀洀漀搀攀琀椀洀攀Ⰰ圀漀爀欀椀渀最匀攀琀匀椀稀攀㰀⼀䈀㸀㰀戀爀㸀ഀഀ
਍㰀䤀㸀伀爀 樀甀猀琀 最攀琀 愀 氀椀猀琀 眀椀琀栀 愀氀氀 猀琀愀琀椀猀琀椀挀猀㨀㰀⼀䤀㸀㰀戀爀㸀ഀഀ C:\> wmic PROCESS get
਍㰀戀爀㸀ഀഀ Get a list of processes on your local machine, in the file "c:\temp\processlist.txt" with some statistics:
਍㰀䈀㸀䌀㨀尀㸀 眀洀椀挀 ⼀伀唀吀倀唀吀㨀䌀㨀尀吀䔀䴀倀尀倀爀漀挀攀猀猀䰀椀猀琀⸀琀砀琀 倀刀伀䌀䔀匀匀 最攀琀 䌀愀瀀琀椀漀渀Ⰰ䌀漀洀洀愀渀搀氀椀渀攀Ⰰ倀爀漀挀攀猀猀椀搀㰀⼀䈀㸀㰀戀爀㸀ഀഀ
਍一漀眀Ⰰ 琀爀礀 琀栀攀 昀漀氀氀漀眀椀渀最 挀漀洀洀愀渀搀猀 琀漀 最攀琀 瘀愀爀椀漀甀猀 漀琀栀攀爀 氀椀猀琀椀渀最猀 漀渀 瀀爀漀挀攀猀猀 猀琀愀琀椀猀琀椀挀猀㨀㰀戀爀㸀ഀഀ
਍㰀䈀㸀䌀㨀尀㸀 眀洀椀挀 瀀爀漀挀攀猀猀 氀椀猀琀 匀琀愀琀椀猀琀椀挀猀㰀⼀䈀㸀㰀戀爀㸀ഀഀ C:\> wmic process list brief
਍㰀䈀㸀䌀㨀尀㸀 眀洀椀挀 瀀爀漀挀攀猀猀 氀椀猀琀 昀甀氀氀㰀⼀䈀㸀㰀戀爀㸀ഀഀ
਍夀漀甀 挀愀渀 愀氀猀漀 ∀昀椀氀琀攀爀∀ 漀渀 愀 瀀愀爀琀椀挀甀氀愀爀 瀀爀漀挀攀猀猀 椀洀愀最攀Ⰰ 氀椀欀攀㨀㰀戀爀㸀ഀഀ
਍㰀䈀㸀䌀㨀尀㸀眀洀椀挀 瀀爀漀挀攀猀猀 眀栀攀爀攀 渀愀洀攀㴀ᴀ挠洀搀⸀攀砀攀ᴀ†最攀琀 瀀爀漀挀攀猀猀椀搀Ⰰ 渀愀洀攀Ⰰ 攀砀攀挀甀琀愀戀氀攀瀀愀琀栀㰀⼀䈀㸀㰀戀爀㸀ഀഀ
਍㰀䈀㸀䌀㨀尀㸀 眀洀椀挀 瀀爀漀挀攀猀猀 眀栀攀爀攀 ⠀渀愀洀攀㴀ᴀ挠洀搀⸀攀砀攀ᴀ†漀爀 渀愀洀攀㴀ᴀ挠愀氀挀⸀攀砀攀ᴀ⤠ 氀椀猀琀 戀爀椀攀昀㰀⼀䈀㸀㰀戀爀㸀ഀഀ
਍一漀琀攀 琀栀攀 甀猀愀最攀 漀昀 琀栀攀 㰀䤀㸀∀眀栀攀爀攀∀㰀⼀䤀㸀 挀氀愀甀猀攀 椀渀 琀栀攀 愀戀漀瘀攀 琀眀漀 挀漀洀洀愀渀搀猀⸀㰀戀爀㸀ഀഀ
਍夀漀甀 挀愀渀 氀攀琀 ∀眀洀椀挀∀ 漀瀀攀爀愀琀攀 漀渀 愀 爀攀洀漀琀攀 洀愀挀栀椀渀攀Ⰰ 戀礀 甀猀椀渀最 琀栀攀 瀀愀爀愀洀攀琀攀爀猀㨀㰀戀爀㸀ഀഀ /user:[admin_user] /password:[password] /node:[machine_name]
਍㰀戀爀㸀ഀഀ
਍㰀䈀㸀㄀㄀⸀㌀ 匀琀漀瀀瀀椀渀最Ⰰ 猀琀愀爀琀椀渀最Ⰰ 愀渀搀 椀渀昀氀甀攀渀挀椀渀最 愀 瀀爀漀挀攀猀猀⸀㰀⼀䈀㸀㰀戀爀㸀ഀഀ
਍䤀渀猀琀攀愀搀 漀昀 樀甀猀琀 爀攀琀爀椀攀瘀椀渀最 氀椀猀琀猀Ⰰ 椀琀✀猀 愀氀猀漀 瀀漀猀猀椀戀氀攀 琀漀 椀渀昀甀攀渀挀攀 愀 瀀爀漀挀攀猀猀⸀㰀戀爀㸀ഀഀ Although I have seen some differences among the different Windows versions, you might try
਍琀栀攀 昀漀氀氀漀眀椀渀最 攀砀愀洀瀀氀攀猀 漀渀 礀漀甀爀 圀椀渀搀漀眀猀 琀攀猀琀 洀愀挀栀椀渀攀⸀㰀戀爀㸀ഀഀ
਍ⴀⴀ㸀 㰀䤀㸀琀攀爀洀椀渀愀琀椀渀最 愀渀 愀瀀瀀氀椀挀愀琀椀漀渀㨀㰀⼀䤀㸀㰀戀爀㸀ഀഀ
਍㰀䈀㸀䌀㨀尀㸀 眀洀椀挀 倀刀伀䌀䔀匀匀 圀䠀䔀刀䔀 一愀洀攀㴀∀挀愀氀挀⸀攀砀攀∀ 䌀䄀䰀䰀 吀攀爀洀椀渀愀琀攀㰀⼀䈀㸀㰀戀爀㸀ഀഀ
਍䘀漀爀 攀砀愀洀瀀氀攀Ⰰ 愀氀氀 椀渀猀琀愀渀挀攀猀 漀昀 渀漀琀攀瀀愀搀 挀愀渀 戀攀 琀攀爀洀椀渀愀琀攀搀 戀礀 甀猀椀渀最㨀㰀戀爀㸀ഀഀ
਍㰀䈀㸀䌀㨀尀㸀 眀洀椀挀 倀刀伀䌀䔀匀匀 眀栀攀爀攀 ⠀挀愀瀀琀椀漀渀㴀ᴀ渠漀琀攀瀀愀搀⸀攀砀攀ᴀ⤠ 挀愀氀氀 琀攀爀洀椀渀愀琀攀㰀⼀䈀㸀㰀戀爀㸀ഀഀ
਍ⴀⴀ㸀 㰀䤀㸀猀琀愀爀琀椀渀最 愀渀 愀瀀瀀氀椀挀愀琀椀漀渀 ⠀甀猀椀渀最 琀栀攀 ∀挀爀攀愀琀攀∀ 洀攀琀栀漀搀⤀㨀㰀⼀䤀㸀㰀戀爀㸀ഀഀ
਍㰀䈀㸀䌀㨀尀㸀 眀洀椀挀 倀刀伀䌀䔀匀匀 挀愀氀氀 挀爀攀愀琀攀 挀愀氀挀⸀攀砀攀㰀⼀䈀㸀㰀戀爀㸀ഀഀ
਍ⴀⴀ㸀 㰀䤀㸀愀氀琀攀爀椀渀最 琀栀攀 瀀爀椀漀爀椀琀礀 漀昀 愀渀 愀瀀瀀氀椀挀愀琀椀漀渀㨀㰀⼀䤀㸀㰀戀爀㸀ഀഀ
਍㰀䈀㸀䌀㨀尀㸀 眀洀椀挀 倀刀伀䌀䔀匀匀 眀栀攀爀攀 渀愀洀攀㴀∀洀礀瀀爀最⸀攀砀攀∀ 挀愀氀氀 猀攀琀瀀爀椀漀爀椀琀礀 ㄀㘀㌀㠀㐀㰀⼀䈀㸀㰀戀爀㸀ഀഀ
਍㰀戀爀㸀ഀഀ In this section, ofcourse, I have only "scratched the surface" on this topic.
਍䤀渀搀攀攀搀Ⰰ 琀栀攀 ∀眀洀椀挀∀ 挀漀洀洀愀渀搀 椀猀 瘀攀爀礀 瀀漀眀攀爀昀甀氀氀Ⰰ 愀渀搀 椀琀 猀甀爀攀氀礀 琀愀欀攀猀 猀漀洀攀 琀椀洀攀 琀漀 洀愀猀琀攀爀 椀琀⸀㰀戀爀㸀ഀഀ If this was your first encounter with wmic, I think you agree to invest some more time.
਍㰀戀爀㸀ഀഀ ਍㰀栀㌀ 椀搀㴀∀猀攀挀琀椀漀渀㄀㈀∀㸀㄀㈀⸀ 吀栀攀 ∀琀礀瀀攀瀀攀爀昀∀ 挀漀洀洀愀渀搀⸀㰀⼀栀㌀㸀ഀഀ ਍䤀渀 琀栀椀猀 猀攀挀琀椀漀渀 礀漀甀 眀椀氀氀 昀椀渀搀 ⠀樀甀猀琀⤀ 愀 昀攀眀 爀攀洀愀爀欀猀 漀渀 琀栀攀 ∀琀礀瀀攀瀀攀爀昀∀ 挀漀洀洀愀渀搀⸀㰀戀爀㸀ഀഀ You can use the graphical utility "Performance Monitor" (perfmon.exe) to create performance charts
਍漀昀Ⰰ 昀漀爀 攀砀愀洀瀀氀攀Ⰰ 挀瀀甀 甀琀椀氀椀稀愀琀椀漀渀Ⰰ 洀攀洀漀爀礀 甀猀愀最攀Ⰰ 搀椀猀欀 甀猀愀最攀Ⰰ 渀攀琀眀漀爀欀 猀琀愀琀椀猀琀椀挀猀Ⰰ 愀渀搀 洀甀挀栀 洀漀爀攀⸀㰀戀爀㸀ഀഀ
਍伀昀挀漀甀爀猀攀Ⰰ 椀琀✀猀 瀀爀漀戀愀戀氀礀 戀攀猀琀 琀漀 眀漀爀欀 眀椀琀栀 倀攀爀昀漀爀洀愀渀挀攀 䴀漀渀椀琀漀爀 ⠀爀攀挀攀渀琀氀礀 爀攀渀愀洀攀搀 琀漀 ∀匀礀猀琀攀洀 䴀漀渀椀琀漀爀∀⤀Ⰰ 甀猀椀渀最㰀戀爀㸀ഀഀ the graphical interface.
਍䈀甀琀 眀栀漀 欀渀漀眀猀㨀 洀愀礀戀攀 礀漀甀 氀椀欀攀 琀漀 挀爀攀愀琀攀 洀攀愀猀甀爀攀洀攀渀琀猀 爀椀最栀琀 昀爀漀洀 琀栀攀 瀀爀漀洀瀀琀⸀ 䤀昀 琀栀愀琀✀猀 猀漀Ⰰ 礀漀甀 洀椀最栀琀 氀椀欀攀 琀栀攀 ∀琀礀瀀攀瀀攀爀昀∀ 挀漀洀洀愀渀搀⸀㰀戀爀㸀ഀഀ And, since typeperf is used from the prompt, you can use it in scripts as well.
਍㰀戀爀㸀ഀഀ With NT system monitoring tools, you will encounter the following naming structure;
਍ⴀ ∀漀戀樀攀挀琀猀∀ 愀爀攀 爀攀瀀爀攀猀攀渀琀愀琀椀漀渀猀 漀昀 ⠀爀攀愀氀⤀ 挀漀洀瀀漀渀攀渀琀猀 氀椀欀攀 瀀爀漀挀攀猀猀漀爀Ⰰ 瀀栀礀猀椀挀愀氀䐀椀猀欀 攀琀挀⸀⸀㰀戀爀㸀ഀഀ - a "counter" (of an object) is a measurable metric that is exposed by that object. An object usually has many counters.
਍ⴀ ∀椀渀猀琀愀渀挀攀∀Ⰰ 昀漀爀 攀砀愀洀瀀氀攀Ⰰ 礀漀甀 洀椀最栀琀 栀愀瘀攀 愀渀 漀戀樀攀挀琀 氀椀欀攀 愀 ∀倀栀礀猀椀挀愀氀䐀椀猀欀∀Ⰰ 戀甀琀⸀⸀ 礀漀甀 洀椀最栀琀 栀愀瘀攀 洀甀氀琀椀瀀氀攀 搀椀猀欀猀 漀渀 礀漀甀爀 猀礀猀琀攀洀℀㰀戀爀㸀ഀഀ So, in this example, you might pick a particular disk (like E:), or choose all of them (mostly designated by "_Total")
਍㰀戀爀㸀ഀഀ So you might have as an object, a "processor", which exposes several counters like "%User Time", "%Priviledge Time", or
਍∀─倀爀漀挀攀猀猀漀爀 吀椀洀攀∀ ⠀眀栀椀挀栀 椀猀 唀猀攀爀 ⬀ 倀爀椀瘀椀氀攀搀最攀⤀⸀㰀戀爀㸀ഀഀ
਍唀猀椀渀最 琀栀攀 最爀愀瀀栀椀挀愀氀 琀漀漀氀 ⠀瀀攀爀昀漀爀洀愀渀挀攀 洀漀渀椀琀漀爀⼀猀礀猀琀攀洀 洀漀渀椀琀漀爀⤀Ⰰ 椀琀✀猀 焀甀椀琀攀 攀愀猀礀 琀漀 猀攀氀攀挀琀 洀甀氀琀椀瀀氀攀 漀戀樀攀挀琀猀Ⰰ 愀渀搀 瀀攀爀 漀戀樀攀挀琀Ⰰ㰀戀爀㸀ഀഀ select the counters that you are interrested in.
਍唀猀椀渀最 琀栀攀 挀漀洀洀愀渀搀 瀀爀漀洀瀀琀Ⰰ 礀漀甀 愀爀攀 愀 氀椀琀琀氀攀 戀椀琀 氀椀洀椀琀攀搀 椀渀 琀栀攀 愀洀漀甀渀琀 漀昀 挀漀甀渀琀攀爀猀⸀ 吀栀椀猀 椀猀 戀攀挀愀甀猀攀 礀漀甀 洀椀最栀琀 甀猀攀㰀戀爀㸀ഀഀ the typeperf command like:
਍㰀戀爀㸀ഀഀ typeperf "Object(Instance)\Counter" ["Object(Instance)\Counter" etc..] [other options]
਍㰀戀爀㸀ഀഀ Again, the full syntax is somewhat more elaborate than what's shown above. (yes, this is only a simple introduction)
਍㰀戀爀㸀ഀഀ Here are a few examples:
਍㰀戀爀㸀ഀഀ C:\> typeperf "\Processor(_Total)\% Processor Time" ਍㰀戀爀㸀ഀഀ Shows a record per second (is default) of the %Processor Time spend, by all cpu instances.
਍㰀戀爀㸀ഀഀ C:\> typeperf "\PhysicalDisk(_Total)\Avg. Disk queue length" -o diskqueue.txt ਍㰀戀爀㸀ഀഀ Shows a record per second (is default) of the Average disk queue lengths, by all (disk) instances.
਍㰀戀爀㸀ഀഀ So, with the -o option, you can specify a file where you can send the output to. You can ofcourse also use ">", to redirect
਍琀栀攀 漀甀琀瀀甀琀 琀漀 愀 昀椀氀攀⸀㰀戀爀㸀ഀഀ
਍ഀഀ

13. The "cacls" command, and similar commands.

਍ഀഀ cacls:
਍㰀戀爀㸀ഀഀ Sometimes you need to change the NTFS filesystem permissions, possibly for large number of directories, or for
਍愀 氀愀爀最攀 渀甀洀戀攀爀 漀昀 甀猀攀爀猀 漀爀 最爀漀甀瀀猀⸀㰀戀爀㸀ഀഀ Anyway, it can be usefull to know how to do that from the commandline.
਍㰀戀爀㸀ഀഀ CACLS is a Windows command-line utility that is used to display or modify file or directory access control lists (ACLs).
਍一吀䘀匀 漀戀樀攀挀琀猀Ⰰ 琀栀愀琀 椀猀 昀椀氀攀猀 愀渀搀 搀椀爀攀挀琀漀爀椀攀猀Ⰰ ∀挀漀渀琀愀椀渀∀ 愀渀 䄀挀挀攀猀猀 䌀漀渀琀爀漀氀 䰀椀猀琀∀Ⰰ 琀栀愀琀 猀瀀攀挀椀昀椀攀猀 眀栀椀挀栀 甀猀攀爀猀 愀渀搀 最爀漀甀瀀猀㰀戀爀㸀ഀഀ can access that object, and with what sort of permissions.
਍㰀戀爀㸀ഀഀ Usually, a new object (file or directory) inherits the ACL's from the folder in which it was created.
਍㰀戀爀㸀ഀഀ CACLS is not difficult to use. The syntax is:
਍㰀戀爀㸀ഀഀ cacls FileName [/t] [/e] [/g User:permission] [/r User [...]] [/p User:permission [...]] [/d User [...]]
਍㰀戀爀㸀ഀഀ /t = Changes DACLs of specified files in the current directory and all subdirectories.
਍⼀攀      㴀 䔀搀椀琀猀 愀 䐀䄀䌀䰀 椀渀猀琀攀愀搀 漀昀 爀攀瀀氀愀挀椀渀最 椀琀⸀ 䘀漀爀 攀砀愀洀瀀氀攀Ⰰ 愀搀搀 愀 瀀攀爀洀椀猀猀椀漀渀⸀ 㰀戀爀㸀ഀഀ /r User = Revokes permissions for the specified user or group (when spaces in the groupname, enclose the name with "")
਍⼀瀀 唀猀攀爀㨀瀀攀爀洀椀猀猀椀漀渀氀椀猀琀   㴀 刀攀瀀氀愀挀攀猀 ⠀椀渀猀琀攀愀搀 漀昀 攀搀椀琀⤀ 愀挀挀攀猀猀 爀椀最栀琀猀 昀漀爀 琀栀攀 猀瀀攀挀椀昀椀攀搀 甀猀攀爀 漀爀 最爀漀甀瀀⸀㰀戀爀㸀ഀഀ /d User = Denies access for the specified user.
਍⼀最 唀猀攀爀㨀瀀攀爀洀椀猀猀椀漀渀 㴀 䜀爀愀渀琀猀 愀挀挀攀猀猀 爀椀最栀琀猀 琀漀 琀栀攀 猀瀀攀挀椀昀椀攀搀 甀猀攀爀 漀爀 最爀漀甀瀀⸀㰀戀爀㸀ഀഀ
਍圀栀攀渀 礀漀甀 甀猀攀 挀愀挀氀猀 琀漀 樀甀猀琀 瘀椀攀眀Ⰰ 漀爀 攀搀椀琀 琀栀攀 瀀攀爀洀椀猀猀椀漀渀猀Ⰰ 礀漀甀 眀椀氀氀 猀攀攀 猀漀洀攀 漀甀琀瀀甀琀 琀栀愀琀 洀椀最栀琀 猀琀爀椀欀攀 礀漀甀 愀猀 猀琀爀愀渀最攀Ⰰ㰀戀爀㸀ഀഀ like "OI", "CI" etc..
਍䤀琀✀猀 渀漀琀 猀漀 眀攀椀爀搀 爀攀愀氀氀礀⸀ 䠀攀爀攀 椀猀 眀栀愀琀 琀栀漀猀攀 琀攀爀洀猀 洀攀愀渀猀㨀㰀戀爀㸀ഀഀ
਍伀䤀 ⴀ 伀戀樀攀挀琀 椀渀栀攀爀椀琀 㰀戀爀㸀ഀഀ CI - Container inherit
਍䤀伀 ⴀ 䤀渀栀攀爀椀琀 漀渀氀礀㰀戀爀㸀ഀഀ No such output: This folder only.
਍㰀戀爀㸀ഀഀ In practice, you will see mostly "combinations", and they have meanings like:
਍㰀戀爀㸀ഀഀ (OI)(CI) = This folder, subfolders, and files.
਍⠀伀䤀⤀⠀䌀䤀⤀⠀䤀伀⤀ 㴀 匀甀戀昀漀氀搀攀爀猀 愀渀搀 昀椀氀攀猀 漀渀氀礀⸀㰀戀爀㸀ഀഀ (CI)(IO) = Subfolders only.
਍⠀伀䤀⤀⠀䤀伀⤀ 㴀 䘀椀氀攀猀 漀渀氀礀⸀㰀戀爀㸀ഀഀ
਍匀漀Ⰰ 眀栀攀渀 礀漀甀 瘀椀攀眀 琀栀攀 愀挀氀✀猀 漀渀 猀漀洀攀 搀椀爀攀挀琀漀爀礀 漀爀 昀椀氀攀 礀漀甀 猀攀攀 甀猀攀爀 愀渀搀 最爀漀甀瀀渀愀洀攀猀Ⰰ 愀氀漀渀最 眀椀琀栀 琀栀攀 琀攀爀洀猀 昀爀漀洀 愀戀漀瘀攀 氀椀猀琀Ⰰ㰀戀爀㸀ഀഀ and the permissions. So, you might see stuff like:
਍㰀戀爀㸀ഀഀ C:\> cacls c:\temp
਍㰀戀爀㸀ഀഀ Buildin\Users: (OI)(CI)R # Read for for this folder, subfolders and files for the group "Users"
਍䈀甀椀氀搀椀渀尀䄀搀洀椀渀椀猀琀爀愀琀漀爀猀㨀⠀䤀伀⤀⠀䌀䤀⤀䘀 㰀䤀㸀⌀ 䘀甀氀氀 䌀漀渀琀爀漀氀 昀漀爀 琀栀椀猀 昀漀氀搀攀爀Ⰰ 猀甀戀昀漀氀搀攀爀猀 愀渀搀 昀椀氀攀猀 昀漀爀 琀栀攀 最爀漀甀瀀 ∀䄀搀洀椀渀椀猀琀爀愀琀漀爀猀∀㰀⼀䤀㸀㰀戀爀㸀ഀഀ etc..
਍㰀戀爀㸀ഀഀ The permissions you can edit or replace are:
਍㰀戀爀㸀ഀഀ n: None
਍爀㨀  刀攀愀搀㰀戀爀㸀ഀഀ w: Write
਍挀㨀  䌀栀愀渀最攀㰀戀爀㸀 ഀഀ f: Full Control
਍㰀戀爀㸀 ഀഀ Some examples of editing ACL's: ਍㰀戀爀㸀ഀഀ C:\> cacls c:\ /t /e /g Administrators:f
਍䌀㨀尀㸀 挀愀挀氀猀 挀㨀尀琀攀洀瀀尀⨀⸀⨀ ⼀攀 ⼀最 ∀䐀漀洀愀椀渀 唀猀攀爀猀∀㨀爀 唀猀攀爀猀㨀爀 ⼀爀 䔀瘀攀爀礀漀渀攀㰀戀爀㸀ഀഀ C:\> cacls e:\data\finance /e /t /g "FinanceUsers":f
਍㰀戀爀㸀ഀഀ The utility will ask you "ARE YOU SURE? Y/N" if you use it to edit or replace permissions. In batchfiles, that's not nice.
਍夀漀甀 挀愀渀 甀猀攀 琀栀攀 挀漀洀洀愀渀搀 ∀攀挀栀漀 夀 簀∀ 椀渀 昀爀漀渀琀 漀昀 琀栀攀 挀愀挀氀猀 琀栀攀 挀漀洀洀愀渀搀Ⰰ 氀椀欀攀 椀渀㨀㰀戀爀㸀ഀഀ
਍䌀㨀尀㸀 㰀䈀㸀攀挀栀漀 礀簀㰀⼀䈀㸀 挀愀挀氀猀 嬀爀攀猀琀 漀昀 琀栀攀 挀漀洀洀愀渀搀⸀⸀崀㰀戀爀㸀ഀഀ
਍㰀䈀㸀㰀唀㸀匀愀瘀椀渀最 愀挀氀✀猀 椀渀琀漀 愀 昀椀氀攀 甀猀椀渀最 椀挀愀挀氀猀㨀㰀⼀唀㸀㰀⼀䈀㸀㰀戀爀㸀ഀഀ
਍匀甀瀀瀀漀猀攀 礀漀甀 眀愀渀琀 琀漀 㰀䈀㸀猀琀漀爀攀㰀⼀䈀㸀 愀氀氀 䄀䌀䰀✀猀 漀昀 昀椀氀攀猀 愀渀搀 猀甀戀搀椀爀攀挀琀漀爀椀攀猀 㰀䈀㸀椀渀琀漀 愀 昀椀氀攀㰀⼀䈀㸀Ⰰ 礀漀甀 洀椀最栀琀 氀椀欀攀㰀戀爀㸀ഀഀ the "icacls" command. Although this command has many more options than what you will see here,
਍䤀 樀甀猀琀 眀愀渀琀 琀漀 昀漀挀甀猀 漀渀 猀愀瘀椀渀最 㰀䤀㸀椀渀㰀⼀䤀㸀Ⰰ 愀渀搀 爀攀猀琀漀爀椀渀最 䄀䌀䰀✀猀 㰀䤀㸀昀爀漀洀㰀⼀䤀㸀Ⰰ 愀 昀椀氀攀⸀㰀戀爀㸀ഀഀ Ofcourse you won't save the "datapart" of files. It's only the "acl" related metadata what get's stored in the file.
਍㰀戀爀㸀ഀഀ Example:
਍㰀戀爀㸀ഀഀ C:\> icacls d:\data\finance\* /save finacl.txt /t # "/t" means: subdirectories also
਍㰀戀爀㸀ഀഀ As said before, "icacls" is much more powerfull than this example.
਍䤀昀 礀漀甀 渀攀攀搀 琀漀 爀攀猀琀漀爀攀 琀栀攀 䄀䌀䰀✀猀㨀㰀戀爀㸀ഀഀ
਍㰀䈀㸀䌀㨀尀㸀 椀挀愀挀氀猀 搀㨀尀搀愀琀愀尀昀椀渀愀渀挀攀尀 ⼀爀攀猀琀漀爀攀 昀椀渀愀挀氀⸀琀砀琀㰀⼀䈀㸀㰀戀爀㸀ഀഀ
਍圀椀琀栀 愀 爀攀猀琀漀爀攀Ⰰ 礀漀甀 渀攀攀搀 琀漀 戀攀 愀 戀椀琀 挀愀爀攀昀甀氀氀⸀ 䘀椀爀猀琀 攀砀攀爀挀椀猀攀 礀漀甀爀 挀漀洀洀愀渀搀猀 漀渀 愀 琀攀猀琀 猀礀猀琀攀洀Ⰰ 戀攀昀漀爀攀 礀漀甀 甀猀攀 椀琀 ∀昀漀爀 爀攀愀氀∀⸀㰀戀爀㸀ഀഀ
਍㰀䈀㸀㰀唀㸀匀攀琀䄀䌀䰀㨀㰀⼀唀㸀㰀⼀䈀㸀㰀戀爀㸀ഀഀ
਍䄀 瘀攀爀礀 最漀漀搀 甀琀椀氀椀琀礀 椀猀 ∀匀攀琀䄀䌀䰀∀⸀㰀戀爀㸀ഀഀ
਍夀漀甀 挀愀渀 昀椀渀搀 愀氀氀 椀渀昀漀爀洀愀琀椀漀渀 㰀愀 栀爀攀昀㴀∀栀琀琀瀀㨀⼀⼀猀攀琀愀挀氀⸀猀漀甀爀挀攀昀漀爀最攀⸀渀攀琀⼀∀㸀栀攀爀攀⸀㰀⼀愀㸀㰀戀爀㸀ഀഀ
਍ഀഀ

14. Free (gnu) shells or tools for Windows.

਍ഀഀ Do You like the unix shell utils like awk, sed, dd, od and all those other great tools?
਍吀栀攀爀攀 愀爀攀 猀漀洀攀 渀椀挀攀 ∀猀栀攀氀氀 攀渀瘀椀爀漀渀洀攀渀琀猀∀ 礀漀甀 挀愀渀 椀渀猀琀愀氀氀 椀渀 圀椀渀搀漀眀猀Ⰰ 眀椀琀栀漀甀琀 琀栀愀琀 礀漀甀 㰀䤀㸀洀甀猀琀㰀⼀䤀㸀 椀渀猀琀愀氀氀 愀 昀甀氀氀 䰀椀渀甀砀 瀀愀爀琀椀琀椀漀渀Ⰰ㰀戀爀㸀ഀഀ or a Linux Virtual Machine.
਍䤀昀 礀漀甀 椀渀猀琀愀氀氀 猀甀挀栀 愀渀 攀渀瘀椀爀漀渀洀攀渀琀Ⰰ 琀栀攀渀 渀攀砀琀 琀漀 礀漀甀爀 挀洀搀Ⰰ 漀爀 倀漀眀攀爀猀栀攀氀氀 ⠀漀爀 漀琀栀攀爀 圀椀渀搀漀眀猀 琀漀漀氀猀⤀Ⰰ 礀漀甀 挀愀渀 愀氀猀漀 爀甀渀 猀漀洀攀㰀戀爀㸀ഀഀ nice sh (or ksh etc..) tools as well.
਍伀渀氀礀 愀 昀攀眀 搀氀氀✀猀 愀爀攀 椀渀猀琀愀氀氀攀搀Ⰰ 椀渀 漀爀搀攀爀 琀漀 挀爀攀愀琀攀 愀 䰀椀渀甀砀 䄀倀䤀 攀洀甀氀愀琀椀漀渀 氀愀礀攀爀Ⰰ 瀀爀漀瘀椀搀椀渀最 愀渀 攀渀瘀椀爀漀渀洀攀渀琀 昀漀爀 琀栀攀 挀漀洀洀愀渀搀猀⸀㰀戀爀㸀ഀഀ Ofcourse, it's only a limited commandset, but it's quite nice, and I can really recommend to install one of them.
਍䘀漀爀 攀砀愀洀瀀氀攀㨀㰀戀爀㸀ഀഀ
਍㰀愀 栀爀攀昀㴀∀栀琀琀瀀㨀⼀⼀最渀甀眀椀渀㌀㈀⸀猀漀甀爀挀攀昀漀爀最攀⸀渀攀琀⼀瀀愀挀欀愀最攀猀⼀挀漀爀攀甀琀椀氀猀⸀栀琀洀∀㸀吀栀攀 䜀一唀 䌀漀爀攀唀琀椀氀猀 昀漀爀 圀椀渀搀漀眀猀 ⠀猀洀愀氀氀 瀀愀挀欀愀最攀㬀 挀栀漀漀猀攀 琀栀攀 ∀猀攀琀甀瀀∀⤀㰀⼀愀㸀㰀戀爀㸀ഀഀ The Cygwin environment for Windows (larger package; many modules to choose from)
਍㰀戀爀㸀ഀഀ If you are not so familiar with the tools, there are many easy to find docs on the net.
਍㰀戀爀㸀ഀഀ For example, if you want to perform hex dumps of a file, you can use the "od" command. Here is an example:
਍夀漀甀 眀椀氀氀 挀攀爀琀愀椀渀氀礀 栀愀瘀攀 猀漀洀攀 愀猀挀椀椀 昀椀氀攀 猀漀洀攀眀栀攀爀攀Ⰰ 愀渀搀 猀漀洀攀 戀椀渀愀爀礀 昀椀氀攀 猀漀洀攀眀栀攀爀攀 琀漀漀⸀㰀戀爀㸀ഀഀ
਍一漀眀 琀爀礀 琀栀椀猀 漀渀 琀栀漀猀攀 昀椀氀攀猀㨀㰀戀爀㸀ഀഀ
਍漀搀 ⴀ砀 ⴀ一 㘀㐀 礀漀甀爀昀椀氀攀 ⬀ 砀㄀   㰀戀爀㸀ഀഀ or
਍漀搀 ⴀ愀 ⴀ一 㘀㐀 礀漀甀爀昀椀氀攀 ⬀ 砀㄀   㰀戀爀㸀ഀഀ
਍圀栀攀爀攀 琀栀攀 ⴀ砀 昀氀愀最 搀椀猀瀀氀愀礀猀 漀甀琀瀀甀琀 椀渀 栀攀砀愀搀攀挀椀洀愀氀 昀漀爀洀愀琀 ⠀ⴀ愀 椀渀 愀猀挀椀椀⤀Ⰰ 愀渀搀 琀栀攀 ⴀ一 昀氀愀最 椀渀猀琀爀甀挀琀猀 琀栀攀 猀礀猀琀攀洀 琀漀 昀漀爀洀愀琀 㰀戀爀㸀ഀഀ no more than 64 input bytes from the offset parameter (+), which specifies the point in the file where
਍琀栀攀 昀椀氀攀 漀甀琀瀀甀琀 戀攀最椀渀猀⸀㰀戀爀㸀ഀഀ ਍ഀഀ
਍㰀栀㌀ 椀搀㴀∀猀攀挀琀椀漀渀㄀㔀∀㸀㄀㔀⸀ 䠀漀眀 琀漀 搀攀琀攀爀洀椀渀攀 礀漀甀爀 ⸀一䔀吀 ⠀搀漀琀 渀攀琀⤀ 瘀攀爀猀椀漀渀Ⰰ 愀渀搀 礀漀甀爀 圀椀渀搀漀眀猀 䤀渀猀琀愀氀氀攀爀 瘀攀爀猀椀漀渀⸀㰀⼀栀㌀㸀ഀഀ ਍㰀䈀㸀㰀唀㸀㄀㔀⸀㄀ 䐀攀琀攀爀洀椀渀椀渀最 琀栀攀 ⸀一䔀吀 瘀攀爀猀椀漀渀㨀㰀⼀唀㸀㰀⼀䈀㸀㰀戀爀㸀ഀഀ
਍ഀഀ Most modern Windows versions will have the .NET (dot net) framework on board. Said very crudely:
਍䤀琀✀猀 愀 猀漀爀琀 漀昀 爀甀渀琀椀洀攀 攀渀瘀椀爀漀渀洀攀渀琀 昀漀爀 ⸀一䔀吀 愀瀀瀀氀椀挀愀琀椀漀渀猀⸀ 㰀戀爀㸀ഀഀ At the time of writing, dot net version 3.5 is quite current.
਍㰀戀爀㸀ഀഀ Some applications require some version of .NET to be installed on your computer.
਍㰀戀爀㸀ഀഀ But how do we determine the current version anyway?
਍㰀戀爀㸀ഀഀ There are lots of ways to find out. You can start up control panel, go to software etc..
਍伀爀 礀漀甀 挀愀渀 挀栀攀挀欀 琀栀攀 刀攀最椀猀琀爀礀⸀㰀戀爀㸀ഀഀ Here are a few other ways using the prompt:
਍㰀戀爀㸀ഀഀ (1):
਍⸀一䔀吀 椀猀 氀愀爀最攀氀礀 椀渀猀琀愀氀氀攀搀 椀渀 礀漀甀爀 圀椀渀搀漀眀猀 搀椀爀攀挀琀漀爀礀⸀㰀戀爀㸀ഀഀ If I start a prompt, and browse around for .NET "looking" directories, I might find a lot of
਍猀甀戀搀椀爀猀 椀渀 ∀䌀㨀尀圀椀渀搀漀眀猀尀䴀椀挀爀漀猀漀昀琀⸀一䔀吀尀∀⸀㰀戀爀㸀ഀഀ Next, I just try to find the highest version number under the "Framework" directory, like for example "v3.5".
਍吀栀攀渀 眀攀 琀爀礀 琀漀 氀漀挀愀琀攀 愀 䌀⌀ 挀漀洀瀀椀氀攀爀 氀椀欀攀 ∀挀猀挀⸀攀砀攀∀Ⰰ 愀渀搀 氀攀琀✀猀 爀甀渀 椀琀⸀㰀戀爀㸀ഀഀ
਍㰀昀漀渀琀 昀愀挀攀㴀∀挀漀甀爀椀攀爀∀ 猀椀稀攀㴀㈀ 挀漀氀漀爀㴀∀戀氀甀攀∀㸀ഀഀ ਍䌀㨀尀圀椀渀搀漀眀猀尀䴀椀挀爀漀猀漀昀琀⸀一䔀吀尀䘀爀愀洀攀眀漀爀欀尀瘀㌀⸀㔀㸀㰀䈀㸀 挀猀挀㰀⼀䈀㸀㰀戀爀㸀ഀഀ
਍䴀椀挀爀漀猀漀昀琀 ⠀刀⤀ 嘀椀猀甀愀氀 䌀⌀ ㈀  㠀 䌀漀洀瀀椀氀攀爀 瘀攀爀猀椀漀渀 ㌀⸀㔀⸀㌀ 㜀㈀㤀⸀㐀㤀㈀㘀㰀戀爀㸀ഀഀ for Microsoft (R) .NET Framework version 3.5
਍䌀漀瀀礀爀椀最栀琀 ⠀䌀⤀ 䴀椀挀爀漀猀漀昀琀 䌀漀爀瀀漀爀愀琀椀漀渀⸀ 䄀氀氀 爀椀最栀琀猀 爀攀猀攀爀瘀攀搀⸀㰀戀爀㸀ഀഀ
਍昀愀琀愀氀 攀爀爀漀爀 䌀匀㈀  㠀㨀 一漀 椀渀瀀甀琀猀 猀瀀攀挀椀昀椀攀搀㰀戀爀㸀ഀഀ
਍㰀昀漀渀琀 昀愀挀攀㴀∀愀爀椀愀氀∀ 猀椀稀攀㴀㈀ 挀漀氀漀爀㴀∀戀氀愀挀欀∀㸀ഀഀ ਍伀昀挀漀甀爀猀攀Ⰰ 愀渀 攀爀爀漀爀 椀猀 爀攀琀甀爀渀攀搀 戀攀挀愀甀猀攀 䤀 搀椀搀 渀漀琀 猀瀀攀挀椀昀椀攀搀 愀渀礀 椀渀瀀甀琀昀椀氀攀⸀㰀戀爀㸀ഀഀ But, did you noticed that in the banner, the .NET framework version was shown?
਍㰀戀爀㸀ഀഀ (2):
਍䤀渀 愀 昀漀爀洀攀爀 猀攀挀琀椀漀渀Ⰰ 眀攀 愀氀爀攀愀搀礀 栀愀瘀攀 猀攀攀渀 琀栀攀 ∀圀䴀䤀䌀∀ 挀漀洀洀愀渀搀⸀㰀戀爀㸀ഀഀ This is such a versatile command, and by using it with specific parameters, you can find the .NET version too.
਍吀爀礀 琀栀椀猀㨀㰀戀爀㸀ഀഀ
਍䌀㨀尀㸀 眀洀椀挀 ⼀渀愀洀攀猀瀀愀挀攀㨀尀尀爀漀漀琀尀挀椀洀瘀㈀ 瀀愀琀栀 眀椀渀㌀㈀开瀀爀漀搀甀挀琀 眀栀攀爀攀 ∀渀愀洀攀 氀椀欀攀 ✀──⸀一䔀吀──✀∀ 最攀琀 瘀攀爀猀椀漀渀㰀戀爀㸀ഀഀ
਍㰀䈀㸀㰀唀㸀㄀㔀⸀㈀ 䐀攀琀攀爀洀椀渀椀渀最 琀栀攀 圀椀渀搀漀眀猀 䤀渀猀琀愀氀氀攀爀 瘀攀爀猀椀漀渀㨀㰀⼀唀㸀㰀⼀䈀㸀㰀戀爀㸀ഀഀ
਍吀栀椀猀 漀渀攀 椀猀 焀甀椀琀攀 攀愀猀礀⸀ 䨀甀猀琀 爀甀渀 ∀洀猀椀攀砀攀挀∀ 昀爀漀洀 琀栀攀 瀀爀漀洀瀀琀⸀ 䄀 栀攀氀瀀 搀椀愀氀漀最戀漀砀 眀椀氀氀 瀀漀瀀甀瀀Ⰰ㰀戀爀㸀ഀഀ which also shows the installer version.
਍㰀戀爀㸀ഀഀ C:\> msiexec
਍ഀഀ ਍㰀戀爀㸀ഀഀ ਍㰀栀㌀ 椀搀㴀∀猀攀挀琀椀漀渀㄀㘀∀㸀㄀㘀⸀ 䠀漀眀 琀漀 猀琀愀爀琀 愀渀 愀瀀瀀氀椀挀愀琀椀漀渀 眀椀琀栀 搀椀昀昀攀爀攀渀琀 瀀爀椀漀爀椀琀礀Ⰰ 昀爀漀洀 琀栀攀 瀀爀漀洀瀀琀⸀㰀⼀栀㌀㸀ഀഀ ਍圀䄀刀一䤀一䜀㨀 椀琀✀猀 渀漀琀 愀氀眀愀礀猀 愀搀瘀椀猀愀戀氀攀 琀漀 挀栀愀渀最攀 琀栀攀 眀愀礀 愀渀 愀瀀瀀氀椀挀愀琀椀漀渀 猀栀漀甀氀搀 猀琀愀爀琀Ⰰ 氀椀欀攀 昀漀爀 攀砀愀洀瀀氀攀㰀戀爀㸀ഀഀ changing it's "priority".
਍䤀琀 挀漀甀氀搀Ⰰ 椀渀 猀漀洀攀 挀愀猀攀猀Ⰰ 攀瘀攀渀 愀昀昀攀挀琀 琀栀攀 猀琀愀戀椀氀椀琀礀 漀昀 礀漀甀爀 猀礀猀琀攀洀⸀㰀戀爀㸀ഀഀ
਍ഀഀ There are a limited number of methods to start an application (like an application, or command, or batch script) with
਍愀渀漀琀栀攀爀 瀀爀椀漀爀椀琀礀 琀栀愀渀 琀栀攀 ∀搀攀昀愀甀氀琀∀Ⰰ 漀爀 眀椀琀栀 漀琀栀攀爀 瀀爀漀瀀攀爀琀椀攀猀 ⠀氀椀欀攀 琀栀攀 眀漀爀欀椀渀最 搀椀爀攀挀琀漀爀礀 攀⸀最⸀Ⰰ 昀漀爀 猀愀瘀椀渀最 昀椀氀攀猀⤀⸀㰀戀爀㸀ഀഀ
਍䘀爀漀洀 琀栀攀 瀀爀漀洀瀀琀Ⰰ 礀漀甀 挀愀渀 甀猀攀 琀栀攀 ∀猀琀愀爀琀∀ 漀爀 ∀眀洀椀挀∀ 挀漀洀洀愀渀搀⸀㰀戀爀㸀ഀഀ
਍㰀䈀㸀㰀唀㸀㄀㘀⸀㄀ 吀栀攀 ∀猀琀愀爀琀∀ 挀漀洀洀愀渀搀㨀㰀⼀唀㸀㰀⼀䈀㸀㰀戀爀㸀ഀഀ
਍䤀昀 礀漀甀 漀瀀攀渀 愀 挀洀搀 眀椀渀搀漀眀Ⰰ 愀渀搀 攀渀琀攀爀 ∀猀琀愀爀琀 ⼀㼀∀Ⰰ 礀漀甀 挀愀渀 猀攀攀 眀栀愀琀 礀漀甀爀 漀瀀琀椀漀渀猀 愀爀攀 眀栀攀渀 甀猀椀渀最 琀栀攀 猀琀愀爀琀 挀漀洀洀愀渀搀⸀㰀戀爀㸀ഀഀ A clipped (limited) output is shown below:
਍㰀戀爀㸀ഀഀ ਍ഀഀ C:\> start /?
਍㰀戀爀㸀ഀഀ Starts a separate window to run a specified program or command.
਍㰀戀爀㸀ഀഀ START ["title"] [/D path] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED]
਍      嬀⼀䰀伀圀 簀 ⼀一伀刀䴀䄀䰀 簀 ⼀䠀䤀䜀䠀 簀 ⼀刀䔀䄀䰀吀䤀䴀䔀 簀 ⼀䄀䈀伀嘀䔀一伀刀䴀䄀䰀 簀 ⼀䈀䔀䰀伀圀一伀刀䴀䄀䰀崀㰀戀爀㸀ഀഀ [/AFFINITY ] [/WAIT] [/B] [command/program]
਍      嬀瀀愀爀愀洀攀琀攀爀猀崀㰀戀爀㸀ഀഀ
਍∀琀椀琀氀攀∀☀渀戀猀瀀     吀椀琀氀攀 琀漀 搀椀猀瀀氀愀礀 椀渀  眀椀渀搀漀眀 琀椀琀氀攀 戀愀爀⸀㰀戀爀㸀ഀഀ path  Starting directory
਍䈀☀渀戀猀瀀           匀琀愀爀琀 愀瀀瀀氀椀挀愀琀椀漀渀 眀椀琀栀漀甀琀 挀爀攀愀琀椀渀最 愀 渀攀眀 眀椀渀搀漀眀⸀ 吀栀攀㰀戀爀㸀ഀഀ   application has ^C handling ignored. Unless the application
਍☀渀戀猀瀀            攀渀愀戀氀攀猀 帀䌀 瀀爀漀挀攀猀猀椀渀最Ⰰ 帀䈀爀攀愀欀 椀猀 琀栀攀 漀渀氀礀 眀愀礀 琀漀 椀渀琀攀爀爀甀瀀琀㰀戀爀㸀ഀഀ   the application
਍䤀☀渀戀猀瀀           吀栀攀 渀攀眀 攀渀瘀椀爀漀渀洀攀渀琀 眀椀氀氀 戀攀 琀栀攀 漀爀椀最椀渀愀氀 攀渀瘀椀爀漀渀洀攀渀琀 瀀愀猀猀攀搀㰀戀爀㸀ഀഀ   to the cmd.exe and not the current environment.
਍䴀䤀一☀渀戀猀瀀         匀琀愀爀琀 眀椀渀搀漀眀 洀椀渀椀洀椀稀攀搀㰀戀爀㸀ഀഀ MAX  Start window maximized
਍匀䔀倀䄀刀䄀吀䔀☀渀戀猀瀀    匀琀愀爀琀 ㄀㘀ⴀ戀椀琀 圀椀渀搀漀眀猀 瀀爀漀最爀愀洀 椀渀 猀攀瀀愀爀愀琀攀 洀攀洀漀爀礀 猀瀀愀挀攀㰀戀爀㸀ഀഀ SHARED  Start 16-bit Windows program in shared memory space
਍㰀䈀㸀ഀഀ LOW  Start application in the IDLE priority class
਍一伀刀䴀䄀䰀☀渀戀猀瀀      匀琀愀爀琀 愀瀀瀀氀椀挀愀琀椀漀渀 椀渀 琀栀攀 一伀刀䴀䄀䰀 瀀爀椀漀爀椀琀礀 挀氀愀猀猀㰀戀爀㸀ഀഀ HIGH  Start application in the HIGH priority class
਍刀䔀䄀䰀吀䤀䴀䔀☀渀戀猀瀀    匀琀愀爀琀 愀瀀瀀氀椀挀愀琀椀漀渀 椀渀 琀栀攀 刀䔀䄀䰀吀䤀䴀䔀 瀀爀椀漀爀椀琀礀 挀氀愀猀猀㰀戀爀㸀ഀഀ ABOVENORMAL  Start application in the ABOVENORMAL priority class
਍䈀䔀䰀伀圀一伀刀䴀䄀䰀☀渀戀猀瀀 匀琀愀爀琀 愀瀀瀀氀椀挀愀琀椀漀渀 椀渀 琀栀攀 䈀䔀䰀伀圀一伀刀䴀䄀䰀 瀀爀椀漀爀椀琀礀 挀氀愀猀猀㰀戀爀㸀ഀഀ ਍䄀䘀䘀䤀一䤀吀夀☀渀戀猀瀀    吀栀攀 渀攀眀 愀瀀瀀氀椀挀愀琀椀漀渀 眀椀氀氀 栀愀瘀攀 琀栀攀 猀瀀攀挀椀昀椀攀搀 瀀爀漀挀攀猀猀漀爀㰀戀爀㸀ഀഀ   affinity mask, expressed as a hexadecimal number.
਍圀䄀䤀吀☀渀戀猀瀀        匀琀愀爀琀 愀瀀瀀氀椀挀愀琀椀漀渀 愀渀搀 眀愀椀琀 昀漀爀 椀琀 琀漀 琀攀爀洀椀渀愀琀攀㰀戀爀㸀ഀഀ
਍㰀昀漀渀琀 昀愀挀攀㴀∀愀爀椀愀氀∀ 猀椀稀攀㴀㈀ 挀漀氀漀爀㴀∀戀氀愀挀欀∀㸀ഀഀ ਍䄀猀 礀漀甀 挀愀渀 猀攀攀Ⰰ 琀栀攀 瀀爀椀漀爀椀琀礀 ∀挀氀愀猀猀攀猀∀ 愀爀攀 ⠀椀渀 一吀 氀椀欀攀 猀礀猀琀攀洀猀 氀椀欀攀 愀氀氀 洀漀搀攀爀渀 圀椀渀搀漀眀猀 瘀攀爀猀椀漀渀猀 愀爀攀⤀㨀㰀戀爀㸀ഀഀ LOW, BELOWNORMAL, NORMAL, ABOVENORMAL, HIGH, REALTIME
਍倀攀爀 搀攀昀愀甀氀琀Ⰰ 愀 瀀爀漀挀攀猀猀 椀猀 猀挀栀攀搀甀氀攀搀 椀渀 琀栀攀 ∀一伀刀䴀䄀䰀开倀刀䤀伀刀䤀吀夀开䌀䰀䄀匀匀∀⸀㰀戀爀㸀ഀഀ Actually, the priority levels range from zero (lowest priority) to 31 (highest priority)
਍圀椀琀栀椀渀 攀瘀攀爀礀 瀀爀椀漀爀椀琀礀 挀氀愀猀猀Ⰰ 琀栀攀爀攀 愀爀攀 猀甀戀氀攀瘀攀氀猀 搀攀昀椀渀攀搀Ⰰ 眀栀椀挀栀 琀栀攀渀 ∀攀砀瀀氀愀椀渀猀∀ 琀栀漀猀攀   ⴀ ㌀㄀ 氀攀瘀攀氀猀⸀㰀戀爀㸀ഀഀ However, for regular applications, there is no good reason to use the REALTIME_PRIORITY_CLASS,
਍猀椀渀挀攀 琀栀椀猀 眀椀氀氀 挀漀洀瀀攀琀攀 眀椀琀栀 戀愀猀椀挀 䤀伀 漀昀 礀漀甀爀 猀礀猀琀攀洀 ⠀愀渀搀 搀椀猀欀 猀礀渀挀猀 愀猀 眀攀氀氀⤀⸀㰀戀爀㸀ഀഀ
਍一漀琀攀㨀 搀攀瀀攀渀搀椀渀最 漀渀 琀栀攀 瀀爀漀挀攀猀猀 愀渀搀 礀漀甀爀 愀搀洀椀渀椀猀琀爀愀琀椀瘀攀 爀椀最栀琀猀 琀漀 礀漀甀爀 洀愀挀栀椀渀攀Ⰰ㰀戀爀㸀ഀഀ you may not be able to change a particular process's priority.
਍䄀氀猀漀Ⰰ 椀琀✀猀 渀漀琀 愀氀眀愀礀猀 愀 最漀漀搀 椀搀攀愀 琀漀 洀愀欀攀 愀 挀栀愀渀最攀 椀渀 瀀爀椀漀爀椀琀礀 椀渀 琀栀攀 昀椀爀猀琀 瀀氀愀挀攀⸀㰀戀爀㸀ഀഀ
਍ⴀ 圀椀琀栀 琀栀攀 ∀猀琀愀爀琀∀ 挀漀洀洀愀渀搀Ⰰ 礀漀甀 眀椀氀氀 樀甀猀琀 甀猀攀 琀栀攀 椀搀攀渀琀椀昀椀攀爀猀 䠀䤀䜀䠀Ⰰ 䰀伀圀 攀琀挀⸀⸀㰀戀爀㸀ഀഀ - With the "wmic" command, you should use the "ClassValue" numbers. Here, you can use this table:
਍㰀戀爀㸀ഀഀ Priority ClassValue ਍㰀戀爀㸀ഀഀ Normal= 32
਍䰀漀眀㴀 㘀㐀㰀戀爀㸀ഀഀ Real-time= 128
਍䠀椀最栀㴀 ㈀㔀㘀㰀戀爀㸀ഀഀ Below Normal= 16384
਍䄀戀漀瘀攀 一漀爀洀愀氀㴀 ㌀㈀㜀㘀㠀㰀戀爀㸀ഀഀ ਍㰀戀爀㸀ഀഀ Some examples using the start command:
਍㰀戀爀㸀ഀഀ ਍䌀㨀尀㸀 猀琀愀爀琀 ⼀䠀䤀䜀䠀 渀漀琀攀瀀愀搀⸀攀砀攀㰀戀爀㸀ഀഀ
਍䌀㨀尀㸀 猀琀愀爀琀 ⼀洀椀渀 渀漀琀攀瀀愀搀 挀㨀尀搀愀琀愀尀洀礀琀攀砀琀⸀琀砀琀㰀戀爀㸀ഀഀ
਍㰀戀爀㸀ഀഀ ਍㰀䈀㸀㰀唀㸀㄀㘀⸀㈀ 吀栀攀 ∀眀洀椀挀∀ 挀漀洀洀愀渀搀㨀㰀⼀唀㸀㰀⼀䈀㸀㰀戀爀㸀ഀഀ
਍䤀渀 猀攀挀琀椀漀渀 ㄀㄀Ⰰ 眀攀 琀漀甀挀栀攀搀 漀渀 琀栀攀 ∀眀洀椀挀∀ 挀漀洀洀愀渀搀⸀㰀戀爀㸀ഀഀ You can also use that command to change the priority of a process.
਍㰀戀爀㸀ഀഀ Example: put explorer.exe on "LOW"
਍㰀戀爀㸀ഀഀ C:\> wmic process where name="explorer.exe" call setpriority 64 ਍㰀戀爀㸀ഀഀ ਍㰀戀爀㸀ഀഀ 16.3 Other utilities:
਍ഀഀ
਍ⴀ 唀猀椀渀最 琀栀攀 ∀吀愀猀欀 洀愀渀愀最攀爀∀Ⰰ 愀渀搀 猀眀椀琀挀栀椀渀最 琀漀 琀栀攀 瀀爀漀挀攀猀猀 琀愀戀Ⰰ 琀栀攀渀 椀昀 礀漀甀 爀椀最栀琀挀氀椀挀欀 愀 瀀爀漀挀攀猀猀 椀渀 琀栀攀 氀椀猀琀Ⰰ㰀戀爀㸀ഀഀ you are able to change the priority class of an application.
਍ⴀ 䘀漀爀 䤀刀儀✀猀Ⰰ 眀栀椀挀栀 爀攀氀愀琀攀 琀漀 搀攀瘀椀挀攀猀Ⰰ 椀渀 猀漀洀攀 挀愀猀攀猀Ⰰ 礀漀甀 挀漀甀氀搀 ⠀椀渀 瀀爀椀渀挀椀瀀氀攀⤀ 愀氀猀漀 洀漀搀椀昀礀 琀栀攀 爀攀最椀猀琀爀礀Ⰰ㰀戀爀㸀ഀഀ but that's certainly not always recommended.
਍ⴀ 䘀漀爀 猀漀洀攀 ∀爀攀最甀氀愀爀∀ 愀瀀瀀氀椀挀愀琀椀漀渀猀Ⰰ 椀琀✀猀 昀攀愀猀椀戀氀攀 琀漀 洀漀搀椀昀礀 琀栀攀 刀攀最椀猀琀爀礀 愀渀搀 攀搀椀琀 琀栀攀 ∀䤀洀愀最攀倀愀琀栀∀ 爀攀最椀猀琀爀礀 欀攀礀Ⰰ㰀戀爀㸀ഀഀ replacing it with the appropriate "start" record.
਍ⴀ 一漀 搀漀甀戀琀 琀栀愀琀 椀昀 礀漀甀 ∀最漀漀最氀攀∀Ⰰ 礀漀甀 眀椀氀氀 昀椀渀搀 焀甀椀琀攀 愀 昀攀眀 昀爀攀攀 甀琀椀氀椀琀椀攀猀 琀栀愀琀 攀渀愀戀氀攀猀 礀漀甀 琀漀 挀栀愀渀最攀 琀栀攀 瀀爀椀漀爀椀琀礀⸀㰀戀爀㸀ഀഀ Needless to say that you should test them first. Never to be used for production systems.
਍ഀഀ ਍㰀戀爀㸀ഀഀ ਍㰀栀㌀ 椀搀㴀∀猀攀挀琀椀漀渀㄀㜀∀㸀㄀㜀⸀ 䄀 昀攀眀 甀猀攀昀甀氀氀 昀椀氀攀 洀愀渀椀瀀甀氀愀琀椀漀渀 挀漀洀洀愀渀搀猀⸀㰀⼀栀㌀㸀ഀഀ ਍㰀䈀㸀㄀㜀⸀㄀ 吀漀 搀攀氀攀琀攀 愀氀氀 昀椀氀攀猀 ⠀渀漀琀 搀椀爀攀挀琀漀爀椀攀猀⤀ 昀爀漀洀 愀 搀椀爀攀挀琀漀爀礀 愀渀搀 愀氀氀 猀甀戀搀椀爀攀挀琀漀爀椀攀猀㨀㰀⼀䈀㸀㰀戀爀㸀ഀഀ
਍䐀攀氀攀琀攀 漀昀 昀椀氀攀猀Ⰰ 猀椀氀攀渀琀氀礀Ⰰ 椀渀 愀氀氀 猀甀戀搀椀爀猀Ⰰ 愀氀猀漀 爀攀愀搀漀渀氀礀 漀渀攀猀⸀㰀戀爀㸀ഀഀ
਍䔀砀愀洀瀀氀攀㨀㰀戀爀㸀ഀഀ
਍䌀㨀尀㸀 挀搀 琀攀猀琀㰀戀爀㸀ഀഀ C:\TEST>del /F /Q /S *.*
਍㰀戀爀㸀ഀഀ All files in all subfolders should be erased now, unless you do not have NTFS permissions.
਍伀戀瘀椀漀甀猀氀礀Ⰰ 礀漀甀 戀攀琀琀攀爀 戀攀 瘀攀爀礀 愀眀愀爀攀 漀渀 礀漀甀爀 ∀氀漀挀愀琀椀漀渀∀ 椀渀 琀栀攀 昀椀氀攀猀礀猀琀攀洀⸀㰀戀爀㸀ഀഀ
਍䘀㨀 攀瘀攀渀 爀攀愀搀漀渀氀礀 昀椀氀攀猀 猀栀漀甀氀搀 戀攀 搀攀氀攀琀攀搀⸀㰀戀爀㸀ഀഀ Q: Quiet, no confirmation asked.
਍匀㨀 䘀椀氀攀猀 椀渀 匀甀戀搀椀爀攀挀琀漀爀椀攀猀 愀氀猀漀⸀㰀戀爀㸀ഀഀ
਍伀昀挀漀甀爀猀攀Ⰰ 礀漀甀 搀漀 渀漀琀 渀攀挀挀攀猀猀愀爀椀氀礀 渀攀攀搀 琀漀 甀猀攀 ∀⨀⸀⨀∀⸀ 䤀昀 礀漀甀 氀椀欀攀 琀漀 挀氀攀愀渀 漀甀琀 ⠀昀漀爀 攀砀愀洀瀀氀攀⤀ 漀渀氀礀 愀氀氀 ∀⨀⸀戀愀欀∀ 昀椀氀攀猀Ⰰ 甀猀攀 琀栀椀猀㨀㰀戀爀㸀ഀഀ
਍䌀㨀尀㸀 挀搀 琀攀猀琀㰀戀爀㸀ഀഀ C:\TEST>del /F /Q /S *.bak
਍㰀戀爀㸀ഀഀ 17.2 To delete all files and all subdirectories from a directory:
਍㰀戀爀㸀ഀഀ Most often, this is what you want instead of what was shown in 17.1.
਍䨀甀猀琀 甀猀攀 琀栀攀 ∀爀搀∀ 挀漀洀洀愀渀搀 眀椀琀栀 琀栀攀 ∀⼀匀∀ ⠀愀渀搀 漀瀀琀椀漀渀愀氀氀礀 ∀⼀儀∀ 昀漀爀 焀甀椀攀琀Ⰰ 漀爀 渀漀 挀漀渀昀椀爀洀愀琀椀漀渀⤀⸀㰀戀爀㸀ഀഀ Obviously, you better be very aware on your "location" in the filesystem.
਍㰀戀爀㸀ഀഀ Example:
਍㰀戀爀㸀ഀഀ C:\> cd test
਍䌀㨀尀吀䔀匀吀㸀爀搀 琀猀琀 ⼀匀 ⼀儀㰀戀爀㸀ഀഀ
਍吀栀椀猀 眀椀氀氀 搀攀氀攀琀攀 愀氀氀 猀甀戀搀椀爀攀挀琀漀爀椀攀猀 愀渀搀 昀椀氀攀猀 椀渀 ∀䌀㨀尀吀䔀匀吀尀琀猀琀∀Ⰰ 椀渀挀氀甀搀椀渀最 琀栀攀 ∀琀猀琀∀ 搀椀爀攀挀琀漀爀礀⸀㰀戀爀㸀 ഀഀ So, for example, if you would have the directories "C:\TEST\tst\a" and "C:\TEST\tst\b", each with
਍愀 氀漀琀 漀昀 猀甀戀搀椀爀猀 愀渀搀 昀椀氀攀猀Ⰰ 琀栀攀渀 椀琀 眀漀甀氀搀 愀氀氀 戀攀 最漀渀攀⸀㰀戀爀㸀ഀഀ
਍ഀഀ 17.3 The "attrib" command to see and change "attributes":
਍㰀戀爀㸀ഀഀ You know that a file will have certain properties, like filesize, owner, NTFS permissions etc..
਍䤀渀 愀搀搀椀琀椀漀渀 ⠀漀渀 愀氀氀 甀猀甀愀氀 圀椀渀搀漀眀猀 昀椀氀攀猀礀猀琀攀洀猀Ⰰ 氀椀欀攀 䘀䄀吀Ⰰ 一吀䘀匀⤀Ⰰ 㐀 猀瀀攀挀椀昀椀挀 ∀愀琀琀爀椀戀甀琀攀猀∀ 洀愀礀 戀攀 猀攀琀⸀㰀戀爀㸀ഀഀ these are: A (archive needed), H (file is hidden), S (file is a systemfile) and R (file is read-only).
਍夀漀甀 挀漀甀氀搀 栀愀瘀攀 愀 挀洀搀 眀椀渀搀漀眀 漀瀀攀渀Ⰰ 愀渀搀 礀漀甀 愀爀攀 椀渀 猀漀洀攀 昀漀氀搀攀爀⸀ 䤀昀 礀漀甀 琀栀攀渀 椀猀猀甀攀 琀栀攀 甀猀甀愀氀 ∀搀椀爀∀ 挀漀洀洀愀渀搀㰀戀爀㸀ഀഀ to get a list of files and subdirs, you might not "see" everything.
਍䄀猀 愀渀 攀砀愀洀瀀氀攀 漀昀 琀栀椀猀Ⰰ 漀瀀攀渀 愀 挀洀搀 眀椀渀搀漀眀Ⰰ 愀渀搀 最漀 琀漀 琀栀攀 猀礀猀琀攀洀搀椀猀欀 ⠀甀猀甀愀氀氀礀 䌀㨀⤀⸀ 吀栀攀渀 最漀琀漀 琀漀 琀栀攀 爀漀漀琀 漀昀 䌀㨀Ⰰ㰀戀爀㸀ഀഀ using "cd \". After that, just enter the "attrib" command.
਍㰀戀爀㸀ഀഀ C:\users\albert> cd \
਍㰀戀爀㸀ഀഀ C:\> attrib
਍㰀戀爀㸀ഀഀ A   C:\AUTOEXEC.BAT
਍䠀 ☀渀戀猀瀀 䌀㨀尀䈀漀漀琀⸀䈀䄀䬀㰀戀爀㸀ഀഀ SHR   C:\boot.ini
਍䄀匀䠀刀 ☀渀戀猀瀀 䌀㨀尀戀漀漀琀洀最爀㰀戀爀㸀ഀഀ AS R   C:\BOOTSECT.BAK
਍䄀匀䠀刀 ☀渀戀猀瀀 䌀㨀尀一吀䐀䔀吀䔀䌀吀⸀䌀伀䴀㰀戀爀㸀ഀഀ ASHR   C:\ntldr
਍䄀匀䠀 ☀渀戀猀瀀  䌀㨀尀瀀愀最攀昀椀氀攀⸀猀礀猀㰀戀爀㸀ഀഀ
਍匀漀Ⰰ 椀渀 琀栀椀猀 攀砀愀洀瀀氀攀Ⰰ 琀栀攀 昀椀氀攀 ∀渀琀氀搀爀∀ 栀愀猀 愀氀氀 㐀 愀琀琀爀椀戀甀琀攀猀 䄀匀䠀刀 ∀猀攀琀∀Ⰰ 洀攀愀渀椀渀最 琀栀愀琀 琀栀攀礀 愀爀攀 ∀⬀∀ ⠀漀爀 ∀椀渀 瀀氀愀挀攀∀⤀⸀㰀戀爀㸀ഀഀ So, to mark or unmark a file as "read-only" or "system" or "hidden", use the attrib command like in the following examples:
਍㰀戀爀㸀ഀഀ - To unset (or tear down) the +r, +s, +h attributes on "mytestfile", in order to make it "not a systemfile",
਍愀渀搀 ∀渀漀琀 爀攀愀搀 漀渀氀礀∀ 愀渀搀 ∀渀漀琀 栀椀搀搀攀渀∀Ⰰ 甀猀攀㨀㰀戀爀㸀ഀഀ
਍䌀㨀尀吀䔀匀吀㸀 愀琀琀爀椀戀 ⴀ爀 ⴀ栀 ⴀ猀 洀礀琀攀猀琀昀椀氀攀㰀戀爀㸀ഀഀ
਍ⴀ 吀漀 甀渀猀攀琀 ⠀漀爀 琀攀愀爀 搀漀眀渀⤀ 漀渀氀礀 琀栀攀 ⬀爀 愀琀琀爀椀戀甀琀攀 漀渀 ∀洀礀琀攀猀琀昀椀氀攀∀Ⰰ 椀渀 漀爀搀攀爀 琀漀 洀愀欀攀 椀琀 爀攀愀搀⼀眀爀椀琀攀Ⰰ 甀猀攀㨀㰀戀爀㸀ഀഀ
਍䌀㨀尀吀䔀匀吀㸀 愀琀琀爀椀戀 ⴀ爀 洀礀琀攀猀琀昀椀氀攀㰀戀爀㸀ഀഀ
਍ⴀ 吀漀 洀愀欀攀 愀 昀椀氀攀 䠀椀搀搀攀渀 愀渀搀 爀攀愀搀ⴀ漀渀氀礀Ⰰ 甀猀攀㨀㰀戀爀㸀ഀഀ
਍䌀㨀尀吀䔀匀吀㸀 愀琀琀爀椀戀 ⬀爀 ⬀栀 洀礀琀攀猀琀昀椀氀攀㰀戀爀㸀ഀഀ
਍匀漀洀攀琀椀洀攀猀Ⰰ 椀昀 礀漀甀 栀愀瘀攀 挀漀瀀椀攀搀 愀 䌀䐀 漀爀 䐀嘀䐀 琀漀 礀漀甀爀 栀愀爀搀搀椀猀欀Ⰰ 琀栀漀猀攀 昀椀氀攀猀 洀椀最栀琀 戀攀 洀愀爀欀攀搀 愀猀 ∀爀攀愀搀ⴀ漀渀氀礀∀⸀㰀戀爀㸀ഀഀ Fortunately, you can use wildcards (*, or *.*) with the attrib command,
਍愀渀搀 琀栀攀 猀眀椀琀挀栀 ∀⼀猀∀ 洀愀欀攀猀 猀甀爀攀 琀栀愀琀 愀氀氀 猀甀戀搀椀爀猀 愀爀攀 瀀愀爀猀攀搀 愀猀 眀攀氀氀⸀ 䘀漀爀 攀砀愀洀瀀氀攀㨀㰀戀爀㸀ഀഀ
਍䌀㨀尀䌀伀倀䤀䔀䐀开䘀刀伀䴀开䌀䐀㸀 愀琀琀爀椀戀 ⴀ爀 ⨀⸀⨀ ⼀猀㰀戀爀㸀ഀഀ
਍㰀䈀㸀㄀㜀⸀㐀 吀栀攀 ∀砀挀漀瀀礀∀ 挀漀洀洀愀渀搀 琀漀 挀爀攀愀琀攀 戀愀挀欀甀瀀猀 ⠀漀爀 挀漀瀀椀攀猀 漀昀 昀椀氀攀猀 愀渀搀 琀爀攀攀猀 漀昀 搀椀爀攀挀琀漀爀椀攀猀⤀㨀㰀⼀䈀㸀㰀戀爀㸀ഀഀ
਍䤀昀 礀漀甀 渀攀攀搀 琀漀 挀爀攀愀琀攀 愀 挀漀瀀礀 漀昀 昀椀氀攀猀 愀渀搀 猀甀戀搀椀爀攀挀琀漀爀椀攀猀 漀渀 琀栀攀 猀愀洀攀 搀椀猀欀Ⰰ 漀爀 琀漀 愀渀漀琀栀攀爀 搀椀猀欀Ⰰ 漀爀 琀漀 愀 猀栀愀爀攀Ⰰ㰀戀爀㸀ഀഀ or to a mountpoint etc.., you can use the "xcopy" command.
਍㰀戀爀㸀ഀഀ One advantage of the regular xcopy command is, thats its available on all Windows versions.
਍䄀挀琀甀愀氀氀礀Ⰰ 椀琀猀 愀 瘀攀爀礀 瀀漀眀攀爀昀甀氀 挀漀洀洀愀渀搀Ⰰ 愀渀搀 礀漀甀 挀愀渀 甀猀攀 洀愀渀礀 猀眀椀琀挀栀攀猀 椀渀 漀爀搀攀爀 琀漀 挀爀攀愀琀攀 最漀漀搀 甀猀攀爀 搀愀琀愀 戀愀挀欀甀瀀猀⸀㰀戀爀㸀ഀഀ
਍㰀䈀㸀ⴀ 䠀漀眀 琀漀 挀漀瀀礀 愀 琀爀攀攀 漀昀 愀氀氀 猀甀戀搀椀爀攀挀琀漀爀椀攀猀 愀渀搀 昀椀氀攀猀㨀㰀⼀䈀㸀㰀戀爀㸀ഀഀ
਍䔀砀愀洀瀀氀攀㨀㰀戀爀㸀ഀഀ
਍匀甀瀀瀀漀猀攀 漀渀 愀 圀椀渀㈀䬀砀 匀攀爀瘀攀爀Ⰰ 礀漀甀 栀愀瘀攀 愀 搀椀爀攀挀琀漀爀礀 ∀䌀㨀尀搀愀琀愀∀ 眀栀椀挀栀 栀愀猀 甀渀搀攀爀 椀琀 愀 戀椀最 琀爀攀攀 漀昀 猀甀戀搀椀爀攀挀琀漀爀椀攀猀㰀戀爀㸀ഀഀ with other data directories (like c:\data\user1, c:\data\user2 etc..).
਍㰀戀爀㸀ഀഀ Now you want to copy this complete tree to another drive, say drive M:, included with all subdirectories, all files,
਍愀渀搀 椀渀昀漀爀洀愀琀椀漀渀 漀昀 琀栀攀 伀眀渀攀爀 愀渀搀 䄀䌀䰀됀猀⸀㰀戀爀㸀ഀഀ
਍吀栀攀 昀漀氀氀漀眀椀渀最 攀砀愀洀瀀氀攀 猀栀漀眀猀 栀漀眀 礀漀甀 洀椀最栀琀 搀漀 琀栀椀猀㨀㰀戀爀㸀ഀഀ
਍㰀䈀㸀䌀㨀尀搀愀琀愀㸀 砀挀漀瀀礀 ⨀⸀⨀ 洀㨀尀搀愀琀愀 ⼀匀 ⼀䌀 ⼀伀 ⼀䠀 ⼀夀㰀⼀䈀㸀㰀戀爀㸀ഀഀ
਍圀栀攀爀攀 琀栀攀 猀眀椀琀挀栀攀猀 洀攀愀渀㨀㰀戀爀㸀ഀഀ
਍⼀匀㨀 挀漀瀀椀攀猀 猀甀戀搀椀爀攀挀琀漀爀椀攀猀 愀氀猀漀㰀戀爀㸀ഀഀ /C: copy the files even if an error shows up (like the file is in use)
਍⼀伀㨀 椀渀挀氀甀搀攀猀 愀氀猀漀 漀眀渀攀爀猀栀椀瀀 愀渀搀 䄀挀挀攀猀猀 䌀漀渀琀爀漀氀 䰀椀猀琀猀 椀渀昀漀爀洀愀琀椀漀渀⸀㰀戀爀㸀ഀഀ /H: includes also all hidden and system files
਍⼀夀㨀 猀甀瀀瀀爀攀猀猀攀猀 琀栀攀 挀漀渀昀椀爀洀愀琀椀漀渀 椀昀 礀漀甀 愀爀攀 愀戀漀甀琀 琀漀 漀瘀攀爀眀爀椀琀攀 昀椀氀攀猀㰀戀爀㸀ഀഀ
਍伀昀挀漀甀爀猀攀Ⰰ 琀栀攀 挀漀洀洀愀渀搀 砀挀漀瀀礀 ⼀㼀  眀椀氀氀 猀栀漀眀 礀漀甀 愀氀氀 猀眀椀琀挀栀攀猀⸀㰀戀爀㸀ഀഀ
਍㰀䈀㸀ⴀ 䠀漀眀 琀漀 挀漀瀀礀 昀椀氀攀猀 挀爀攀愀琀攀搀 漀爀 洀漀搀椀昀椀攀搀 愀昀琀攀爀 愀 挀攀爀琀愀椀渀 搀愀琀攀㨀㰀⼀䈀㸀㰀戀爀㸀ഀഀ
਍䤀渀 琀栀椀猀 挀愀猀攀Ⰰ 甀猀攀 琀栀攀 ∀⼀䐀∀ 猀眀椀琀挀栀⸀㰀戀爀㸀ഀഀ
਍䔀砀愀洀瀀氀攀㨀㰀戀爀㸀ഀഀ
਍㰀䈀㸀䌀㨀尀搀愀琀愀尀攀砀挀攀氀㸀 砀挀漀瀀礀 ⨀⸀⨀ ⼀䐀㨀 ㄀ⴀ㄀㌀ⴀ㈀  㤀 昀㨀尀戀愀挀欀甀瀀㰀⼀䈀㸀㰀戀爀㸀ഀഀ
਍伀昀挀漀甀爀猀攀Ⰰ 栀攀爀攀 礀漀甀 挀愀渀 甀猀攀 琀栀攀 漀琀栀攀爀 猀眀椀琀挀栀攀猀 琀漀漀⸀㰀戀爀㸀ഀഀ
਍ഀഀ

18. The "forfiles" command.

਍ഀഀ Often, especially on Server systems, all kinds of log files are created.
਍䄀氀猀漀Ⰰ 焀甀椀琀攀 漀昀琀攀渀Ⰰ 琀栀漀猀攀 昀椀氀攀猀 樀甀猀琀 瀀椀氀攀猀 甀瀀Ⰰ 愀渀搀 愀猀 愀 挀漀渀猀攀焀攀渀挀攀Ⰰ 礀漀甀爀 搀椀猀欀⠀猀⤀ 洀椀最栀琀 爀甀渀 漀甀琀 漀昀 猀瀀愀挀攀⸀㰀戀爀㸀ഀഀ
਍吀礀瀀椀挀愀氀氀礀Ⰰ 礀漀甀 漀渀氀礀 眀愀渀琀 琀栀攀 氀愀猀琀 挀漀甀瀀氀攀 漀昀 搀愀礀猀Ⰰ 漀爀 眀攀攀欀猀Ⰰ 漀昀 琀栀漀猀攀 氀漀最猀 欀攀瀀琀 漀渀氀椀渀攀 漀渀 琀栀攀 搀椀猀欀⸀㰀戀爀㸀ഀഀ The older files then, can be deleted.
਍㰀戀爀㸀ഀഀ It's quite easy to create a scheduled batch script, that will do this, using traditional dos commands.
਍㰀戀爀㸀ഀഀ However, the "forfiles" command is very suited to for this kind of actions.
਍䤀琀 猀栀漀甀氀搀 戀攀 愀瘀愀椀氀愀戀氀攀 ⠀愀猀 愀 猀琀愀渀搀愀爀搀 挀漀洀洀愀渀搀⤀ 漀渀 琀栀攀 氀愀琀攀猀琀 圀椀渀搀漀眀猀 瘀攀爀猀椀漀渀猀 氀椀欀攀 嘀椀猀琀愀Ⰰ 眀椀渀㜀Ⰰ 圀椀渀㈀䬀㌀Ⰰ 圀椀渀㈀䬀㠀⸀㰀戀爀㸀ഀഀ But it's around for quite some time, like for example as a Resource kit tool for Win2000.
਍㰀戀爀㸀ഀഀ Syntax:
਍㰀戀爀㸀ഀഀ forfiles [-p ] [-m SearchMask] [-s] [-c "command"] [-d [{+|-}][{Date|Days}]]
਍㰀戀爀㸀ഀഀ Where:
਍㰀戀爀㸀ഀഀ Path: is just the directory where the forfiles command must perform it's work.
਍匀攀愀爀挀栀洀愀猀欀㨀 愀 ∀洀愀猀欀∀ 琀栀愀琀 猀瀀攀挀椀昀椀攀猀 琀栀攀 挀爀椀琀攀爀椀愀 琀漀 猀攀氀攀挀琀 昀椀氀攀猀Ⰰ 氀椀欀攀 㰀䈀㸀⨀⸀氀漀最㰀⼀䈀㸀Ⰰ 漀爀 㰀䈀㸀⨀⸀琀爀挀㰀⼀䈀㸀 攀琀挀⸀⸀㰀戀爀㸀ഀഀ /s: if this parameter is used, subdirectories (with respect to "path") will be processed also.
਍⼀搀㨀 甀猀攀 椀琀 氀椀欀攀 昀漀爀 攀砀愀洀瀀氀攀 ⴀ㔀Ⰰ 洀攀愀渀椀渀最 愀 挀爀椀琀攀爀椀愀 ∀漀氀搀攀爀 琀栀愀渀 㔀 搀愀礀猀∀⸀㰀戀爀㸀ഀഀ
਍ഀഀ Note: if you have difficulties to let the command work, take a look at this:
਍ⴀ 吀栀攀 漀氀搀攀爀 瘀攀爀猀椀漀渀猀 眀愀渀琀 礀漀甀 琀漀 甀猀攀 愀 猀礀渀琀愀砀 氀椀欀攀 ∀ⴀ瀀䔀㨀尀氀漀最猀∀Ⰰ 眀栀椀氀攀 渀攀眀攀爀 瘀攀爀猀椀漀渀猀 氀椀欀攀 ∀ⴀ瀀 䔀㨀尀氀漀最猀∀㰀戀爀㸀ഀഀ - Sometimes the "-" parameter mark does not seem to work, while the "/" does.
਍㰀戀爀㸀ഀഀ So, it's likely that you need to do a few "experiments" with this command syntax.
਍㰀戀爀㸀ഀഀ How it works:
਍吀栀攀 昀漀爀昀椀氀攀猀 挀漀洀洀愀渀搀 猀攀愀爀挀栀攀猀 琀栀攀 搀椀爀攀挀琀漀爀礀 ⠀漀瀀琀椀漀渀愀氀氀礀 猀甀戀搀椀爀猀 琀漀漀⤀ 昀漀爀 昀椀氀攀猀 眀栀椀挀栀 挀漀渀昀漀爀洀 琀漀 琀栀攀㰀戀爀㸀ഀഀ "searchmask" (like *.log), and which conform to the date citeria (like older than 7 days).
਍吀栀攀渀 愀 氀椀猀琀 眀椀氀氀 戀攀 挀爀攀愀琀攀搀⸀ 吀栀攀渀 琀栀攀 ∀挀漀洀洀愀渀搀∀ ⠀氀椀欀攀 ∀搀攀氀∀⤀ 眀椀氀氀 漀瀀攀爀愀琀攀 漀渀 琀栀攀 氀椀猀琀⸀ 䤀渀 猀甀挀栀 愀 挀愀猀攀Ⰰ㰀戀爀㸀ഀഀ a variable will be used (per default it is @FILE) which takes on the values of the list, one after the other.
਍吀栀攀 爀攀猀甀氀琀 挀漀洀洀愀渀搀 椀猀 琀栀攀渀 ∀搀攀氀 䀀䘀䤀䰀䔀∀Ⰰ 眀栀攀爀攀 䀀䘀䤀䰀䔀 眀椀氀氀 戀攀 琀栀攀 昀椀氀攀渀愀洀攀猀 昀爀漀洀 漀昀 琀栀攀 氀椀猀琀Ⰰ 昀爀漀洀 猀琀愀爀琀 琀漀 昀椀渀椀猀栀⸀㰀戀爀㸀ഀഀ Thats why we often will see a @FILE variable in the commandline.
਍㰀戀爀㸀ഀഀ Here are a few examples:
਍㰀戀爀㸀ഀഀ ਍䌀㨀尀㸀 昀漀爀昀椀氀攀猀 ⴀ瀀挀㨀尀琀攀洀瀀 ⴀ洀⨀⸀⨀ ⴀ猀 ⴀ搀ⴀ 㐀 ㈀㄀㄀ ⴀ挀∀䌀䴀䐀 ⼀䌀 䔀挀栀漀 䀀䘀䤀䰀䔀 椀猀 焀甀椀琀攀 漀氀搀℀∀㰀戀爀㸀ഀഀ ਍㰀戀爀㸀ഀഀ ਍䌀㨀尀㸀 昀漀爀昀椀氀攀猀 ⼀倀 䌀㨀尀眀攀戀猀攀爀瘀攀爀尀氀漀最猀 ⼀匀 ⼀䴀 ⨀⸀氀漀最 ⼀䐀 ⴀ㌀  ⼀䌀 ∀挀洀搀 ⼀挀 搀攀氀 䀀䘀䤀䰀䔀∀㰀戀爀㸀ഀഀ ਍㰀戀爀㸀ഀഀ The first example will echo "filename is quite old" for all files in c:\temp, which are older than 04/02/11.
਍吀栀攀 猀攀挀漀渀搀 攀砀愀洀瀀氀攀 眀椀氀氀 搀攀氀攀琀攀 愀氀氀 ⨀⸀氀漀最 昀椀氀攀猀 椀渀 琀栀攀 挀㨀尀眀攀戀猀攀爀瘀攀爀尀氀漀最猀 搀椀爀攀挀琀漀爀礀Ⰰ 眀栀椀挀栀 愀爀攀 漀氀搀攀爀 琀栀愀渀 ㌀  搀愀礀猀⸀㰀戀爀㸀ഀഀ
਍㰀栀㌀ 椀搀㴀∀猀攀挀琀椀漀渀㄀㤀∀㸀㄀㤀⸀ 吀栀攀 ∀渀攀琀∀ 挀漀洀洀愀渀搀⸀㰀⼀栀㌀㸀ഀഀ ਍䤀渀 猀攀挀琀椀漀渀 ㄀Ⰰ 眀攀 琀愀氀欀攀搀 愀戀漀甀琀 琀栀攀 ∀猀挀∀ 挀漀洀洀愀渀搀Ⰰ 眀栀椀挀栀 愀氀氀漀眀猀 礀漀甀 琀漀 挀漀渀琀爀漀氀 猀攀爀瘀椀挀攀猀⸀㰀戀爀㸀ഀഀ Also, you can also easily just view all services with "sc" command from the prompt.
਍㰀戀爀㸀ഀഀ As an alternative, in the same section, we said that the "net" command could also be used to view running services,
਍愀渀搀 礀漀甀 栀愀瘀攀 猀漀洀攀 搀攀最爀攀攀 漀昀 挀漀渀琀爀漀氀 愀猀 眀攀氀氀Ⰰ 戀攀挀愀甀猀攀 琀栀攀 渀攀琀 挀漀洀洀愀渀搀 愀氀氀漀眀猀 礀漀甀 琀漀 猀琀漀瀀 愀渀搀 猀琀愀爀琀 愀 猀攀爀瘀椀挀攀⸀㰀戀爀㸀ഀഀ
਍䔀砀愀洀瀀氀攀猀㨀㰀戀爀㸀ഀഀ
਍㰀䈀㸀嘀椀攀眀椀渀最 猀攀爀瘀椀挀攀猀㨀㰀⼀䈀㸀㰀戀爀㸀ഀഀ
਍ⴀⴀ 吀漀 漀戀琀愀椀渀 愀 氀椀猀琀 漀昀 㰀䤀㸀爀甀渀渀椀渀最㰀⼀䤀㸀 猀攀爀瘀椀挀攀猀 漀渀 礀漀甀爀 猀挀爀攀攀渀㨀㰀戀爀㸀ഀഀ
਍䌀㨀尀㸀 渀攀琀 猀琀愀爀琀㰀戀爀㸀ഀഀ
਍ⴀⴀ 吀漀 漀戀琀愀椀渀 愀 氀椀猀琀 漀昀 㰀䤀㸀爀甀渀渀椀渀最㰀⼀䤀㸀 猀攀爀瘀椀挀攀猀 愀渀搀 瀀愀甀猀椀渀最 琀栀攀 漀甀琀瀀甀琀 琀漀 猀挀爀攀攀渀 ⠀瀀爀攀猀猀椀渀最 愀 欀攀礀 琀漀 挀漀渀琀椀渀甀攀⤀㨀㰀戀爀㸀ഀഀ
਍䌀㨀尀㸀 渀攀琀 猀琀愀爀琀 簀 洀漀爀攀㰀戀爀㸀ഀഀ
਍ⴀⴀ 吀漀 瀀甀琀 愀 氀椀猀琀 漀昀 㰀䤀㸀爀甀渀渀椀渀最㰀⼀䤀㸀 猀攀爀瘀椀挀攀猀 椀渀琀漀 琀栀攀 琀攀砀琀昀椀氀攀 ∀挀㨀尀琀攀洀瀀尀猀攀爀瘀椀挀攀猀⸀琀砀琀∀㨀㰀戀爀㸀ഀഀ
਍䌀㨀尀㸀 渀攀琀 猀琀愀爀琀 㸀 挀㨀尀琀攀洀瀀尀猀攀爀瘀椀挀攀猀⸀琀砀琀㰀戀爀㸀ഀഀ
਍ⴀⴀ 吀漀 昀椀氀琀攀爀 琀栀攀 氀椀猀琀 漀昀 猀攀爀瘀椀挀攀猀 ⠀琀漀 礀漀甀爀 猀挀爀攀攀渀⤀ 眀栀椀挀栀 栀愀瘀攀 琀栀攀 猀琀爀椀渀最 ∀匀儀䰀∀ 椀渀 琀栀攀椀爀 猀攀爀瘀椀挀攀 渀愀洀攀㨀㰀戀爀㸀ഀഀ
਍䌀㨀尀㸀 渀攀琀 猀琀愀爀琀 簀 昀椀渀搀 ∀匀儀䰀∀ 㰀戀爀㸀ഀഀ
਍㰀䈀㸀匀琀愀爀琀椀渀最 愀渀搀 猀琀漀瀀瀀椀渀最 猀攀爀瘀椀挀攀猀㨀㰀⼀䈀㸀㰀戀爀㸀ഀഀ
਍ⴀⴀ 吀漀 猀琀漀瀀 ⠀昀漀爀 攀砀愀洀瀀氀攀⤀ 琀栀攀 ∀䴀匀匀儀䰀匀䔀刀嘀䔀刀∀ 猀攀爀瘀椀挀攀㨀㰀戀爀㸀ഀഀ
਍䌀㨀尀㸀 渀攀琀 猀琀漀瀀 ∀䴀匀匀儀䰀匀䔀刀嘀䔀刀∀ 㰀戀爀㸀ഀഀ
਍ⴀⴀ 吀漀 猀琀愀爀琀 ⠀昀漀爀 攀砀愀洀瀀氀攀⤀ 琀栀攀 ∀䴀匀匀儀䰀匀䔀刀嘀䔀刀∀ 猀攀爀瘀椀挀攀㨀㰀戀爀㸀ഀഀ
਍䌀㨀尀㸀 渀攀琀 猀琀愀爀琀 ∀䴀匀匀儀䰀匀䔀刀嘀䔀刀∀ 㰀戀爀㸀ഀഀ
਍䈀甀琀 琀栀攀 ∀渀攀琀∀ 挀漀洀洀愀渀搀 栀愀猀 洀甀挀栀 洀漀爀攀 琀漀 漀昀昀攀爀℀ 䄀挀琀甀愀氀氀礀Ⰰ 椀琀 ⠀漀渀挀攀⤀ 眀愀猀 㰀䤀㸀琀栀攀㰀⼀䤀㸀 圀椀渀搀漀眀猀 挀漀洀洀愀渀搀 琀漀 挀漀渀琀爀漀氀㰀戀爀㸀ഀഀ network functionality, and even control user account information for the local machine's SAM database.
਍圀椀琀栀 爀攀最愀爀搀猀 琀漀 愀挀挀漀甀渀琀 椀渀昀漀爀洀愀琀椀漀渀Ⰰ 漀渀 洀漀搀攀爀渀 䐀漀洀愀椀渀 䌀漀渀琀爀漀氀氀攀爀猀Ⰰ 愀 渀甀洀戀攀爀 漀昀 漀琀栀攀爀㰀戀爀㸀ഀഀ user account and network services commands are availble.
਍㰀戀爀㸀ഀഀ Task: If you like to know what you still can do with user accounts, using the net command,
਍最漀漀最氀攀 漀渀 ∀渀攀琀 愀挀挀漀甀渀琀猀∀ 愀渀搀 ∀渀攀琀 甀猀攀爀∀㰀戀爀㸀ഀഀ
਍㰀䈀㸀匀漀洀攀 伀琀栀攀爀 最爀攀愀琀 昀甀渀挀琀椀漀渀愀氀椀琀礀 漀昀 琀栀攀 ∀渀攀琀∀ 挀漀洀洀愀渀搀㨀㰀⼀䈀㸀㰀戀爀㸀ഀഀ
਍ⴀⴀ 伀戀琀愀椀渀椀渀最 猀漀洀攀 猀琀愀琀猀 漀昀 礀漀甀爀 ⠀匀䴀䈀⤀ ∀匀攀爀瘀攀爀∀ 愀渀搀 ∀圀漀爀欀猀琀愀琀椀漀渀∀ ⠀爀攀搀椀爀攀挀琀漀爀⤀ 猀攀爀瘀椀挀攀猀㨀㰀戀爀㸀ഀഀ
਍䌀㨀尀㸀 渀攀琀 猀琀愀琀椀猀琀椀挀猀 猀攀爀瘀攀爀㰀戀爀㸀ഀഀ
਍䌀㨀尀㸀 渀攀琀 猀琀愀琀椀猀琀椀挀猀 眀漀爀欀猀琀愀琀椀漀渀㰀戀爀㸀ഀഀ
਍ⴀⴀ 伀戀琀愀椀渀椀渀最 愀 氀椀猀琀椀渀最 漀昀 猀栀愀爀攀猀 漀渀 礀漀甀爀 匀攀爀瘀攀爀㨀㰀戀爀㸀ഀഀ
਍䌀㨀尀㸀 渀攀琀 猀栀愀爀攀㰀戀爀㸀ഀഀ
਍ⴀⴀ 伀戀琀愀椀渀椀渀最 愀 氀椀猀琀 漀昀 漀瀀攀渀 猀栀愀爀攀搀 昀椀氀攀猀 漀渀 礀漀甀爀 匀攀爀瘀攀爀㨀㰀戀爀㸀ഀഀ
਍䌀㨀尀㸀 渀攀琀 昀椀氀攀㰀戀爀㸀ഀഀ
਍ⴀⴀ 吀漀 挀氀漀猀攀 愀 挀攀爀琀愀椀渀 漀瀀攀渀 昀椀氀攀 ⠀眀椀琀栀 愀渀 䤀䐀 昀漀甀渀搀 眀椀琀栀 琀栀攀 愀戀漀瘀攀 挀漀洀洀愀渀搀⤀㨀㰀戀爀㸀ഀഀ
਍䌀㨀尀㸀 渀攀琀 昀椀氀攀 䤀䐀 ⼀挀氀漀猀攀㰀戀爀㸀ഀഀ
਍ⴀⴀ 吀漀 瘀椀攀眀 愀 氀椀猀琀 漀昀 匀攀爀瘀攀爀猀 漀渀 礀漀甀爀 猀甀戀渀攀琀 ⠀愀搀瘀攀爀琀椀猀椀渀最 匀䴀䈀 猀攀爀瘀攀爀 猀攀爀瘀椀挀攀⤀㨀㰀戀爀㸀ഀഀ
਍䌀㨀尀㸀 渀攀琀 瘀椀攀眀㰀戀爀㸀ഀഀ
਍ⴀⴀ 吀漀 ∀洀漀甀渀琀∀ 愀 ⠀氀漀挀愀氀⤀ 䐀爀椀瘀攀氀攀琀琀攀爀 ⠀氀椀欀攀 䘀㨀⤀ 琀漀 猀漀洀攀 爀攀洀漀琀攀 渀攀琀眀漀爀欀猀栀愀爀攀㨀㰀戀爀㸀ഀഀ
਍䌀㨀尀㸀 渀攀琀 甀猀攀 䘀㨀 尀尀猀攀爀瘀攀爀渀愀洀攀尀猀栀愀爀攀渀愀洀攀㰀戀爀㸀ഀഀ
਍ⴀⴀ 吀漀 ∀洀漀甀渀琀∀ 琀栀攀 渀攀砀琀 愀瘀愀椀氀愀戀氀攀 ⠀氀漀挀愀氀⤀ 䐀爀椀瘀攀氀攀琀琀攀爀 琀漀 猀漀洀攀 爀攀洀漀琀攀 渀攀琀眀漀爀欀猀栀愀爀攀㨀㰀戀爀㸀ഀഀ
਍䌀㨀尀㸀 渀攀琀 甀猀攀 ⨀ 尀尀猀攀爀瘀攀爀渀愀洀攀尀猀栀愀爀攀渀愀洀攀㰀戀爀㸀ഀഀ
਍ⴀⴀ 吀漀 ∀洀漀甀渀琀∀ 琀栀攀 愀 ⠀氀漀挀愀氀⤀ 䐀爀椀瘀攀氀攀琀琀攀爀 ⠀氀椀欀攀 䘀㨀⤀ 琀漀 猀漀洀攀 爀攀洀漀琀攀 渀攀琀眀漀爀欀猀栀愀爀攀Ⰰ 愀渀搀 瀀愀猀猀椀渀最 挀爀攀搀攀渀琀椀愀氀猀 愀氀漀渀最㨀㰀戀爀㸀ഀഀ
਍䌀㨀尀㸀 渀攀琀 甀猀攀 䘀㨀 尀尀猀攀爀瘀攀爀渀愀洀攀尀猀栀愀爀攀渀愀洀攀 ⼀甀猀攀爀㨀䐀漀洀愀椀渀开渀愀洀攀尀甀猀攀爀开渀愀洀攀㰀戀爀㸀ഀഀ
਍䄀氀琀栀漀甀最栀 椀琀 猀攀攀洀猀 最爀攀愀琀 琀漀 洀愀瀀 愀 搀爀椀瘀攀氀攀琀琀攀爀 琀栀椀猀 眀愀礀Ⰰ 椀琀✀猀 渀漀琀 愀氀眀愀礀猀 琀栀攀 戀攀猀琀 猀漀氀甀琀椀漀渀 昀漀爀 猀挀爀椀瀀琀猀㨀㰀戀爀㸀ഀഀ Maybe not on all machines, at all times, the same letter is available.
਍匀漀Ⰰ 礀漀甀 洀椀最栀琀 樀甀猀琀 甀猀攀 琀栀攀 ∀甀爀氀∀ 漀爀 ∀甀渀挀∀ 搀椀爀攀挀琀氀礀 椀渀 猀挀爀椀瀀琀猀Ⰰ 愀猀 椀渀 昀漀爀 攀砀愀洀瀀氀攀㰀戀爀㸀ഀഀ "copy myfile.txt \\servername\sharename" (ofcourse you need permissions on that share)
਍ഀഀ ਍㰀戀爀㸀ഀഀ

20. Determining "svchost" sessions.

਍ഀഀ ਍䤀渀 琀栀攀 圀椀渀搀漀眀猀 琀愀猀欀氀椀猀琀Ⰰ 礀漀甀 洀椀最栀琀 猀攀攀 漀渀攀 漀爀 洀漀爀攀 ∀猀瘀挀栀漀猀琀∀ 瀀爀漀挀攀猀猀攀猀⸀ 吀礀瀀椀挀愀氀氀礀Ⰰ 礀漀甀 眀椀氀氀 猀攀攀 洀甀氀琀椀瀀氀攀 瀀爀漀挀攀猀猀攀猀⸀㰀戀爀㸀ഀഀ Svchost is used to run services which are coded in (for example) .dll libraries.
਍㰀戀爀㸀ഀഀ It's not very likely that you will run (or need to run) the command yourself, in some customized way.
਍㰀戀爀㸀ഀഀ It's even possible, that a certain svchost process, supports (runs) more than one service.
਍㰀戀爀㸀ഀഀ If you are interested, you might take a look at the Registry key
਍㰀戀爀㸀ഀഀ HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\Svchost
਍㰀戀爀㸀ഀഀ where each value represents a "svc group", containing one or more services.
਍㰀戀爀㸀ഀഀ If you want a simple list of svchost processes, and what exactly they are running, then use the following command:
਍㰀戀爀㸀ഀഀ C:\> tasklist /svc | find "svchost"
਍㰀戀爀㸀ഀഀ ਍㰀栀㌀ 椀搀㴀∀猀攀挀琀椀漀渀㈀㄀∀㸀㈀㄀⸀ 吀栀攀 ∀爀甀渀搀氀氀㌀㈀∀ 挀漀洀洀愀渀搀⸀㰀⼀栀㌀㸀ഀഀ ਍䴀愀渀礀 挀漀搀攀 椀猀 椀洀瀀氀攀洀攀渀琀攀搀 椀渀 ⸀搀氀氀 昀椀氀攀猀Ⰰ 愀渀搀 礀漀甀 挀愀渀渀漀琀 爀甀渀 琀栀愀琀 ∀搀椀爀攀挀琀氀礀∀ 昀爀漀洀 琀栀攀 挀漀洀洀愀渀搀 瀀爀漀洀瀀琀⸀㰀戀爀㸀ഀഀ However, the "rundll32" commandline utility, allows you to access that code.
਍㰀戀爀㸀ഀഀ The syntax is:
਍㰀戀爀㸀ഀഀ C:\> rundll32 dllname,entrypoint [optional arguments]
਍㰀戀爀㸀ഀഀ Although rundll32 is actually not directly meant for common user access, it provides you
਍眀椀琀栀 攀渀搀氀攀猀猀 瀀漀猀猀椀戀椀氀椀琀椀攀猀 眀椀琀栀 眀漀爀欀椀渀最 漀渀 琀栀攀 挀漀洀洀愀渀搀氀椀渀攀Ⰰ 漀爀 昀爀漀洀 猀挀爀椀瀀琀猀⸀㰀戀爀㸀ഀഀ One famous example is the following command, which illustrates the power of rundll32:
਍㰀戀爀㸀ഀഀ C:\> rundll32 PRINTUI.DLL,PrintUIEntry /?
਍㰀戀爀㸀ഀഀ This will only show you the options which are possible on printer management. So, you can imaging
਍琀栀愀琀 琀栀攀爀攀 椀猀 愀 氀漀琀 洀漀爀攀 琀漀 琀栀椀猀 甀琀椀氀椀琀礀⸀㰀戀爀㸀ഀഀ ਍㰀戀爀㸀ഀഀ

22. How to determine you are running in a VM or physical machine.

਍ഀഀ Suppose you start a rdp session (mstsc, a Windows terminal) to some Windows machine (like a Win2K3 Server).
਍䠀漀眀 眀漀甀氀搀 礀漀甀 欀渀漀眀 琀栀愀琀 琀栀椀猀 愀 洀愀挀栀椀渀攀 椀猀 愀 戀愀爀攀 洀攀琀愀氀 洀愀挀栀椀渀攀 ⠀瀀栀礀猀椀挀愀氀 洀愀挀栀椀渀攀⤀Ⰰ 漀爀 愀 嘀椀爀琀甀愀氀 䴀愀挀栀椀渀攀Ⰰ㰀戀爀㸀ഀഀ like a "VMWare" virtual machine, using only prompt commands?
਍䤀琀✀猀 琀爀甀攀㨀 椀琀✀猀 愀氀洀漀猀琀 椀渀搀椀猀琀椀渀最甀椀猀栀愀戀氀攀⸀ 䈀漀琀栀 愀爀挀栀椀琀攀挀琀甀爀攀 愀爀攀 愀氀洀漀猀琀 椀渀搀攀渀琀椀挀愀氀Ⰰ 椀昀 礀漀甀 愀爀攀 眀漀爀欀椀渀最㰀戀爀㸀ഀഀ from a Windows console.
਍㰀戀爀㸀ഀഀ Still, there are a few simple tricks, only using prompt commands.
਍㰀戀爀㸀ഀഀ Method 1:
਍㰀戀爀㸀ഀഀ Using the "systeminfo" command from the prompt, you will get a lot of information from your OS and machine.
਍䤀 氀椀欀攀 椀琀 戀攀猀琀 琀漀 爀攀搀椀爀攀挀琀 琀栀攀 漀甀琀瀀甀琀 琀漀 愀 琀攀砀琀昀椀氀攀Ⰰ 猀漀 琀栀愀琀 䤀 挀愀渀 猀琀甀搀礀 琀栀攀 椀渀昀漀爀洀愀琀椀漀渀 昀爀漀洀 渀漀琀攀瀀愀搀 漀爀 猀漀⸀㰀戀爀㸀ഀഀ
਍䌀㨀尀吀䔀䴀倀㸀 猀礀猀琀攀洀椀渀昀漀 㸀 椀渀昀漀⸀琀砀琀㰀戀爀㸀ഀഀ
਍匀漀洀攀眀栀攀爀攀 椀渀 琀栀攀 漀甀琀瀀甀琀Ⰰ 礀漀甀 眀椀氀氀 猀攀攀 琀栀攀 䴀愀渀甀昀愀挀琀甀爀攀爀 愀渀搀 洀漀搀攀氀 漀昀 琀栀攀 猀礀猀琀攀洀⸀㰀戀爀㸀ഀഀ IF you see, for example:
਍㰀戀爀㸀ഀഀ System Manufacturer: FUJITSU SIEMENS
਍匀礀猀琀攀洀 䴀漀搀攀氀㨀 䄀䴀䤀䰀伀 倀爀漀 嘀㈀ 㘀 㰀戀爀㸀ഀഀ
਍吀栀攀渀 椀琀✀猀 焀甀椀琀攀 氀椀欀攀氀礀 琀栀愀琀 礀漀甀 眀漀爀欀 昀爀漀洀 愀 瀀栀礀猀椀挀愀氀 洀愀挀栀椀渀攀⸀㰀戀爀㸀ഀഀ
਍䌀漀渀琀爀愀爀礀Ⰰ 椀昀 礀漀甀 眀漀甀氀搀 昀椀渀搀 昀漀爀 攀砀愀洀瀀氀攀㨀㰀戀爀㸀ഀഀ
਍匀礀猀琀攀洀 䴀愀渀甀昀愀挀琀甀爀攀爀㨀 嘀䴀眀愀爀攀Ⰰ 䤀渀挀⸀㰀戀爀㸀ഀഀ System Model: VMware Virtual Platform
਍㰀戀爀㸀ഀഀ Then you a working from a VMWare Virtual Machine.
਍㰀戀爀㸀ഀഀ Method 2:
਍㰀戀爀㸀ഀഀ Many WMIC commands will reveal that you are actually working on a Windows Virtual Machine, or physical machine.
਍䘀漀爀 攀砀愀洀瀀氀攀㨀㰀戀爀㸀ഀഀ
਍䌀㨀尀吀䔀䴀倀㸀 眀洀椀挀 挀漀洀瀀甀琀攀爀猀礀猀琀攀洀 㸀 椀渀昀漀⸀琀砀琀㰀戀爀㸀ഀഀ
਍䤀渀 琀栀攀 爀攀猀甀氀琀昀椀氀攀Ⰰ 䤀昀 礀漀甀 愀爀攀 眀漀爀欀椀渀最 昀爀漀洀 愀 嘀椀爀琀甀愀氀 䴀愀挀栀椀渀攀Ⰰ 氀椀欀攀 嘀䴀圀愀爀攀Ⰰ 礀漀甀 眀漀甀氀搀 猀攀攀 琀栀愀琀 渀愀洀攀㰀戀爀㸀ഀഀ in quite a few places. If it's a physical machine, like a Dell or so, you would see that name instead.
਍㰀戀爀㸀ഀഀ Note: you can use many other wmic parameters as well. Just try "wmic /?" and experiment a bit.
਍㰀戀爀㸀ഀഀ Method 3: some other clues
਍㰀戀爀㸀ഀഀ -The following is not garanteed to work, but with some Virtualization manufacturers, you might
਍栀愀瘀攀 愀 爀攀最椀猀琀爀礀 欀攀礀Ⰰ 眀栀椀挀栀 爀攀瘀攀愀氀猀 琀栀攀 瀀栀礀猀椀挀愀氀 栀漀猀琀 琀栀愀琀 猀甀瀀瀀漀爀琀猀 琀栀攀 嘀䴀✀猀⸀㰀戀爀㸀ഀഀ You might try to take a look at:
਍㰀戀爀㸀ഀഀ HKEY_LOCAL_MACHINE\Software\Microsoft\Virtual Machine (if present)
਍㰀戀爀㸀ഀഀ By the way, if it is indeed a VM, like a VMWare VM, in the Registry, you would find that name all over the place.
਍㰀戀爀㸀ഀഀ -The following is not garanteed to work, but with some Virtualization manufacturers, you might
਍昀椀渀搀 愀 搀椀爀攀挀琀漀爀礀Ⰰ 挀愀爀爀礀椀渀最 琀栀攀 䴀愀渀甀昀愀挀琀甀爀攀爀✀猀 渀愀洀攀Ⰰ 椀渀 ─匀夀匀吀䔀䴀刀伀伀吀─Ⰰ 漀爀 ─匀夀匀吀䔀䴀刀伀伀吀─尀猀礀猀琀攀洀㌀㈀⸀㰀戀爀㸀ഀഀ
਍ⴀ吀栀攀 昀漀氀氀漀眀椀渀最 椀猀 㰀䈀㸀挀攀爀琀愀椀渀氀礀㰀⼀䈀㸀 渀漀琀 最愀爀愀渀琀攀攀搀 琀漀 眀漀爀欀Ⰰ 戀甀琀 眀椀琀栀 猀漀洀攀 嘀椀爀琀甀愀氀椀稀愀琀椀漀渀 洀愀渀甀昀愀挀琀甀爀攀爀猀Ⰰ 琀栀攀 䴀䄀䌀 愀搀搀爀攀猀猀㰀戀爀㸀ഀഀ of the virtual adapter starts with "00", like in for example "00:05:69:0e:51:95"
਍吀栀椀猀 挀漀甀氀搀 戀攀 猀漀 戀攀挀愀甀猀攀 琀栀攀礀 甀猀攀 愀渀 愀氀最漀氀爀椀琀栀洀 甀猀椀渀最 琀栀攀 䤀倀 愀搀搀爀攀猀猀 愀渀搀 猀漀洀攀 栀愀猀栀椀渀最Ⰰ 琀栀愀琀 漀昀琀攀渀 爀攀琀甀爀渀猀 ∀  㨀攀琀挀⸀⸀∀㰀戀爀㸀ഀഀ But keep in mind that this method is very weak because also true physical adapters could use a MAC starting with "00"
਍ഀഀ
਍㰀栀㌀ 椀搀㴀∀猀攀挀琀椀漀渀㈀㌀∀㸀㈀㌀⸀ 匀漀洀攀 ∀琀爀愀搀椀琀椀漀渀愀氀∀ 戀愀琀挀栀 猀琀甀昀昀⸀㰀⼀栀㌀㸀ഀഀ ਍䤀昀 礀漀甀 氀椀欀攀 漀氀搀 搀漀猀 猀琀礀氀攀 戀愀琀挀栀 猀挀爀椀瀀琀椀渀最Ⰰ 洀愀礀戀攀 礀漀甀 氀椀欀攀 琀栀攀 昀漀氀氀漀眀椀渀最 ⸀琀砀琀 搀漀挀甀洀攀渀琀⠀猀⤀㨀㰀戀爀㸀ഀഀ
਍ഀഀ Some "traditional" batch stuff (1) (cmdshell.txt)
਍ഀഀ ਍㰀戀爀㸀ഀഀ
਍ഀഀ ਍㰀⼀栀琀洀氀㸀�