Command Line Makes Comeback

執筆者
Jason Brooks
Jason Brooks
Published: Jan 29, 2007
Updated: Feb 2, 2021
3 minute read
eWeek のコンテンツおよび製品のおすすめは、編集上の独立性を保っています。パートナーへのリンクをクリックすると、当社が報酬を得る場合があります。 詳細を見る

Once upon a time, when DOS walked the Earth, the command line was the primary user interface for most of our computers. Then, Windows came along, and Microsoft seemed set on leaving the command prompt to dry up and wither into obscurity. Fortunately, Microsoft has again turned its attention to the command line and, in so doing, has produced one of the most compelling new Windows features eWeek Labs has ever had the pleasure to test: Windows PowerShell.

PowerShell 1.0, which was formerly known by the code name Monad, extends to administrators, developers and enthusiasts a powerful new interface for their Windows machines thats based on stringing together small, well-defined applications into pipelines—a handy capability on which Linux and Unix administrators have long relied.

However, unlike Linux and Unix shells such as bash or korn, in which strung-together applications pass data to each other as raw text, PowerShell boasts an object-based approach that enables elements to communicate more intelligently with each other.

For instance, in both the bash shell (the default for most Linux distributions) and in PowerShell, you can sort items in a folder by size by piping the output of a “list items” command to a “sort” command. With bash, however, the fact that piped commands pass their output as raw text means that you have to pay attention to text formatting on both ends of the pipeline. If you run the command “ls” without the “-l” argument, the command wont spit out file sizes, so “sort” wont be able to sort by file size. On the other end, “sort” needs to be told to sort by the fifth column from the left and to treat that column as numerical data.

With PowerShell, the built-in command (or cmdlet, in PowerShell parlance) that corresponds to “ls” is an object, and “length” is one of its properties. When you pipe the output of this cmdlet (called Get-ChildItem) to the cmdlet Sort-Object, you can tell it how to sort by file length appending the word length. While it happens that file length is one of the properties that Get-ChildItem outputs by default, you can just as easily sort by other, hidden-by-default properties, such as LastAccessTime.

One great thing about PowerShells object-based approach is that it reduces the need to learn application-specific arguments and quirks in favor of learning habits and syntax that apply to many different commands and operations. We also appreciated that Power-Shell ships with a large set of predefined aliases for its cmdlets that make the products learning curve less steep.

Probably the best usability/

Advertisement

discoverability attribute of PowerShell, however, is the Get-Member cmdlet, which fetches all the properties and methods available for a given object. We used Get-Member quite a bit while poking around PowerShell and figuring out what we could do with it. We expect that PowerShell will become a major productivity boon for Windows administrators as Microsoft expands the objects through which Power-Shell users may control Windows.

In the meantime, we could use PowerShell cmdlets to manipulate services and proc-esses and to fetch WMI (Windows Management Instrumentation) data. We also could browse the system registry through an ingenious PowerShell capability that exposes registry hives as if they were disk drives, and we could use PowerShell to take control of Windows COM (Component Object Model) objects.

As with other shells, Power–Shell is intended to serve as an environment for scripting, but, for security reasons, it is configured by default to be used only interactively, from its command line.

PowerShell can be in–stalled using three execution policies: RemoteSigned runs unsigned local scripts and requires a digital signature for scripts marked as downloaded from the network, AllSigned requires a digital signature for any script, and Unrestricted runs scripts without digital signing restrictions. As a further safeguard, PowerShell scripts cannot be run by double-clicking on them.

PowerShell, which de–pends on .Net Framework 2.0, is freely available for download at microsoft.com/powershell in versions for Windows XP SP2 and Windows Server 2003 (for the x86, x64 and Itanium platforms). At press time, PowerShell wasnt yet available for the RTM (released to manufacturing) version of Vista.

We managed to install PowerShell on an RTM Vista box following directions we found at gaurhothw.spaces.live.com/blog/s!52B0837064D0B275!106.entry. We recommend, however, sticking to Windows XP or Windows Server 2003 for PowerShell testing until the Vista installer ships.

Advanced Technologies Analyst Jason Brooks can be reached at jason_brooks@ziffdavis.com .

Jason Brooks

Jason Brooks

Content Writer

As Editor in Chief of eWEEK Labs, Jason Brooks manages the Labs team and is responsible for eWEEK's print edition. Brooks joined eWEEK in 1999, and has covered wireless networking, office productivity suites, mobile devices, Windows, virtualization, and desktops and notebooks. Jason's coverage is currently focused on Linux and Unix operating systems, open-source software and licensing, cloud computing and Software as a Service.

eWeek Logo

eWeek has the latest technology news and analysis, buying guides, and product reviews for IT professionals and technology buyers. The site's focus is on innovative solutions and covering in-depth technical content. eWeek stays on the cutting edge of technology news and IT trends through interviews and expert analysis. Gain insight from top innovators and thought leaders in the fields of IT, business, enterprise software, startups, and more.

TechnologyAdvice が所有・運営しています。 © 2026 TechnologyAdvice. 無断転載を禁じます

広告主に関する開示:このサイトに掲載されている製品の一部は、TechnologyAdvice が報酬を受け取っている企業のものです。この報酬は、製品がこのサイトのどこにどのように表示されるか(表示される順序など)に影響する場合があります。TechnologyAdvice は、市場で入手可能なすべての企業やすべての種類の製品を掲載しているわけではありません。