Microsoft曰く、そう簡単にWindowsからコマンドプロンプトはなくならない 99
ストーリー by headless
不滅 部門より
不滅 部門より
Windows 10 Insider Previewでは、ビルド14971以降で標準のコマンドシェルがコマンドプロンプト(cmd.exe)からWindows PowerShellに変更されているが、それでもコマンドプロンプトがなくならない理由をMicrosoftのRich Turner氏が解説している(Windows Command Line Tools For Developersの記事、
OnMSFTの記事)。
これはComputerworldによる2本の記事「Say goodbye to the MS-DOS command prompt」「Follow-up: MS-DOS lives on after all」に反論するものだ。この記事はBusiness InsiderやLifehackerなどでも取り上げられ、コマンドプロンプトが利用できなくなることを懸念する多くの声が寄せられたそうだ。
Turner氏はこれらの記事が事実ではないとして、Cmdは近い将来にも遠い将来にもWindowsから削除されることはないと述べている。実際のところ、MicrosoftではWindowsのビルドやテストを自動化するシステムで長年にわたり作成した多数のCmdスクリプトを使用しており、CmdがなければWindowsをビルドできないという。
また、CmdはWindows上でファイルエクスプローラーやEdge、Internet Explorerと並ぶ最も実行頻度の高い実行ファイルである点や、多くのカスタマーやパートナーがCmdに完全に依存している点も挙げている。そのため、Cmdスクリプトやツールを使用する人がほぼ完全にいなくならない限り、CmdはWindowsに残っていくとのこと。
これはComputerworldによる2本の記事「Say goodbye to the MS-DOS command prompt」「Follow-up: MS-DOS lives on after all」に反論するものだ。この記事はBusiness InsiderやLifehackerなどでも取り上げられ、コマンドプロンプトが利用できなくなることを懸念する多くの声が寄せられたそうだ。
Turner氏はこれらの記事が事実ではないとして、Cmdは近い将来にも遠い将来にもWindowsから削除されることはないと述べている。実際のところ、MicrosoftではWindowsのビルドやテストを自動化するシステムで長年にわたり作成した多数のCmdスクリプトを使用しており、CmdがなければWindowsをビルドできないという。
また、CmdはWindows上でファイルエクスプローラーやEdge、Internet Explorerと並ぶ最も実行頻度の高い実行ファイルである点や、多くのカスタマーやパートナーがCmdに完全に依存している点も挙げている。そのため、Cmdスクリプトやツールを使用する人がほぼ完全にいなくならない限り、CmdはWindowsに残っていくとのこと。
Turner氏はComputerworldの記事の間違いも指摘している。一つはビルド14971のリリースノートにある、PowerShellがWin+Xメニューのコマンドプロンプトを置き換えるという「It replaces Command Prompt (aka, “cmd.exe”) in the WIN + X menu」部分だ。これを引用したComputerworldの記事では「「It replaces Command Prompt (aka, “cmd.exe”).」となっており、まるでコマンドプロンプトが削除されるような記述に変えられていた。また、CmdをMS-DOSと同一視していることについても誤りであると述べている。
当分Cmdがなくなることはないにもかかわらず、デフォルトのコマンドシェルを置き換えた理由としては、PowerShellのようなパワフルなシェルをCmdでは実現できないためだという。Cmdスクリプトやツールはレガシーな機能や挙動に依存するため、下手に機能を拡張したりすれば困る人が出てくる。一方のPowerShellは高度な拡張性や柔軟性を持っており、昨年オープンソース化されたことでWindows以外のプラットフォームでも利用可能となっている。
この虚偽報道、BusinessNewsline の誇張だと思ってた (スコア:3, 参考になる)
Microsoft: 最新のWindows 10リリースで「コマンドプロンプト」を削除 - BusinessNewsline [newsln.jp]
今見ると、読みづらい小さな文字で言い訳が展開されている。
Re: (スコア:0)
エッジが標準になってIEが隅に追いやられたからってIEがなくなるわけではないのと同じことですな。
IEもcmdもいつかなくなりそうだが当分問題あるまい。
Re: (スコア:0)
謝ったら負けってのはこういうメディアでも常識なんでしょうか。
Re:この虚偽報道、BusinessNewsline の誇張だと思ってた (スコア:1)
BusinessNewslineって言ったら海外ニュースを「リライト」するだけの「キュレーション」メディアでっせ。つまり基本的に記事はゴミ。例の騒動は海外ニュースをソースにしているところまでは飛び火しなかったようで。
Re: (スコア:0)
Googleニュースにも出てくるけどまとめサイトレベルの糞サイトよな
GUIが売りのOSでこれはどうなんだ (スコア:1)
>CmdはWindows上でファイルエクスプローラーやEdge、Internet Explorerと並ぶ最も実行頻度の高い実行ファイルである
開発者としては、どういう局面で使われてるのか検証して、わざわざコマンドプロンプト呼び出さなくてもいいようにするのが先だとは思わないのか?
まあ「開発室内に置いて実行頻度が高い」ということなのかもしれないが、それにしても、なぁ。
Re:GUIが売りのOSでこれはどうなんだ (スコア:1)
×置いて
開発者としては、世の中のCUIツールすべてにGUIを強制するのが先だとは思わないなあ。
Re:GUIが売りのOSでこれはどうなんだ (スコア:1)
バッチ処理なんかで、一般ユーザーが気が付きもしない形で使われているのも実行頻度に含めているんじゃないか。
前にいた大企業のイントラでも、ログイン時の処理の一部として毎回cmdスクリプトを走らせていた。
(一瞬cmd.exeのウィンドウが出てきてすぐ消えるので分かる。中身は見なかったが、ネットワークの設定とかやっていたんだろう。)
Re: (スコア:0)
うちの会社もログインする毎にcmdプロンプトでバッチを走らせて社内の伝票処理プログラムのアップデートをしているなぁ。
Re:GUIが売りのOSでこれはどうなんだ (スコア:2)
それって潜在的な脆弱性なんじゃないかと思う。
スクリプトの書き込み権限が不適切だったり誰でも書き込める場所にある実行ファイルが実行されるようになっている系の権限昇格攻撃はあんまり出てこない。
Re: (スコア:0)
普通は、わざわざGUIで操作したくないものに利用しているのに、なぜ逆に不便な方向に持って行く必要があるのでしょうか?
Re: (スコア:0)
そうでもないぞ。
強制されなければGUIを使いたい人は勝手に使えばいいだけのこと。彼らにとっては不便にならん。
CUIを外すのは、それとは関係無い話だから。
自分でも普通はって書いてるように、むしろ
「普通じゃない環境で便利なものを、無理に外して不便を強制する話」
と言った方が分かりやすいか?
Re: (スコア:0)
処理をGUIで入力して自動化できるようになったらいいのかなと思うときはある。思うときはあるが多分誰も使わないんだろうなとエクセルの利用状況を見て思う。
VBAのような機能に一般ユーザーを誘導するというのはそれはそれでありだと思う。
ただ開発者が設定を起動するたびシャットダウンするたびにリセットするような目的で使っていることも考えられるわけでそういう用途にGUIを強制されるのは鬱陶しい。
根本的にはcmd.exe用の*.batをどう巻き取るかという問題で現実的にはA,ユーザが他で動くようにスクリプトを書き換える。時期を見てcmd.exeは廃止。B,cmd.exeは機能の追加を行う行わないは別として維持する。C,cmd.exe互換のなんかを用意するなりpowershellかBoW(Bio Organic Weaponではない)でコマンドプロンプトのスクリプトを実行できるようにする。あたりが考えられてマイクロソフトは一番楽なBを選んでるってだけ。
Re: (スコア:0)
>処理をGUIで入力して自動化できるようになったらいいのかなと思うときはある。
それって、「グラフィカルなプログラミング言語を作れ」って話と等価だと思う。
そしてそれは素人の妄想にすぎず、常に失敗の歴史だった。
たかが条件分岐やループさえも、グラフィカルに表記してもわかりやすくなどならんし、
Excelのセルの指定方法ですら、相対的にするか絶対的に指定するかで、お手上げの初心者はいるのだもの。
まして遙かに複雑な処理をGUIでの入力を強制されるくらいなら、
Emacsみたいな普通のテキストエディタで書かせろよってなるでしょ。
Re: (スコア:0)
Emacsみたいな普通のテキストエディタで書かせろよってなるでしょ。
Emacsとかviは普通じゃないと思う。古臭い。モードの切り替えはいいとしてカーソル移動が古臭い。カーソル移動はゲームと一緒だよって言われても最近のおっさんですら普通ゲームはwasdでしょうとこうなる。
Re: (スコア:0)
そんなあなたにMS純正の操作記録ツール「ステップ記録ツール」!
.
.
.
# なお、操作の再生はできません
Re: (スコア:0)
Windows ServerではGUI無しにできますけど。Nano ServerインストールならCUIも無しに。
Re: (スコア:0)
アプリからも呼び出せるるので、どういう局面かを把握するにはあらゆるアプリを検証する必要があるでしょう
インストーラーで使ってることもあるので、削除してしまうとアプリがインストールできなくなってユーザは大変です
これだけでもう削除は無理って思えますよね?
Re: (スコア:0)
ここ数年の傾向としてはGUIが売りってわけでもない。PowerShellのコマンドレットとしては提供してるけどGUIでは用意していない設定・機能なんてザラだし。
サーバー版の方もGUI排除の流れが加速しているし。
Re: (スコア:0)
全部の操作をGUIで出来たらいいなーと思うような人の中には
操作説明もGUIでされないと分からない人も意外といるので
教える立場になる人からしたらCUIでも出来る事ならばCUIで実行出来る方法も残してくれ!となります
Re: (スコア:0)
そういうGUIのツールの実態はCUIコードを生成して shell に投げるだけ
Re: (スコア:0)
コマンドプロンプトから起動できるようなプログラムですと、
他のプログラムからの操作もしやすいので、
人間がいちいち操作しなくてもいい、というメリットがあります。
(例: 定期的にビルド、テストして結果を報告する)
GUIでもできなくはないでしょうが、めんどうすぎる。
64-bit化されてるのね (スコア:1)
今調べてみて気付いた。これはまだまだ先が長そうだ。
マジかよ糞箱売ってくる (スコア:0)
実際のところ、MicrosoftではWindowsのビルドやテストを自動化するシステムで長年にわたり作成した多数のCmdスクリプトを使用しており、CmdがなければWindowsをビルドできないという。
それはWindowsのビルドに./configure的な処置が必要で、それをCMD.exeで書いてるのだろうか・・・・
それとも./configure的なものを生成する、MS謹製autotools的なものが存在し、MS内部では広く使われているのだろうか・・・・
やっぱり本家のautoconf/automakeがそうであるように、バージョン毎に非互換の依存関係作り出してるんだろうか? それこそ容易にはPowerShellで置き換えれないほどに・・・
コマンドプロンプトがなくならない理由よりも、そちらの方が非常に気になる。
Re:マジかよ糞箱売ってくる (スコア:2)
処理開始だけならPowerShellからでもいいけど、処理途中にcmdの内部コマンドとか利用で
みたいな箇所があって、とかではないかな、と思う。
しらべて改訂するには手間かかるし、依存といえば依存だし。
# がんばればそこまでじゃないにしても、ビルド環境が正常かの試験ってむずかしそうだから手を付けにくいってのはありそう
M-FalconSky (暑いか寒い)
Re: (スコア:0)
意外と普通だった。天才エンジニアでもセットアップに三ヶ月かかるシステムというからもうちょっと色々社内製のツールが乱立しているのかと思っていた。
Re: (スコア:0)
cmd.exe で問題なく動いて、社内しか使わないツールを、GUIで(新しいUIを)作り直すというのは、
車輪の再発明という意味では無駄なことなのかもしれない。
というかむしろ車輪の再発明は別に悪い事じゃないとは思うんだけど。
足すより引く方が大変だしね (スコア:0)
機能追加やちゃぶ台返しがないなら、レガシーでも枯れたコードを放置したってコストはかからんしね。
依存関係チェックして削除する方が1万倍大変。
いわゆるレガシーシステムで問題なのは、機能追加やバグフィックスや、さらにはちゃぶ台返しまでもが
日常的に起きているのに、コードや仕様がスパゲッティでメンテ不可能になってることだから。
Re: (スコア:0)
致命的セキュリティーバグが見つかれば、抹消できるのでは?
Re: (スコア:0)
なにかソフト、モジュールを取り除くということは互換性を壊すことを意味しますもんね
アップデートでそれをやったら大混乱が予想されますよね
メジャーバージョンアップで取り除くとともに周知徹底するという方法もあるんでしょうけど
多種多様なソフトの互換性に影響をおよぼしかねない点は変わらない
結局、一回入れたものは、なかなか取り除くことは難しく
使う人が少なくなって抵抗・反発・クレームの量が少なくなりそうという見通しが立つまでは維持される
という決着になるしかないのでしょう
Re: (スコア:0)
おっと、もうひとつ上にぶらさげないといけないのに
操作間違えた
Re: (スコア:0)
disabled by defaultが関の山
Re: (スコア:0)
脆弱性を修正できないから廃止ってのは多くの場合脆弱性を修正してまで維持する気がないというのをオブラートに包んだだけでは?
今でもセキュリティ上致命的なバグはウィンドウズに限らず日夜発見されていますが大抵の場合修正されますし。
枯れたコードはほっといても問題ないと思う。だって枯れてるんだから。ほっとくとまずいのは腐ったコード。
まずは主流の座を (スコア:0)
ExecutionPolicyが足枷になってつい新規のスクリプトもcmdでやってしまう。
デフォルト化をきっかけに名実ともに主流になるのが先ですね。
Re:まずは主流の座を (スコア:1)
これはこれで緩めると文句言われるからどうにもなんねえよなぁ
Re:まずは主流の座を (スコア:1)
LOVELETTERワーム [wikipedia.org]のせいで危険な機能扱いされたWSHの轍を踏みたくないんでしょう
コマンドシェルなんてどうせ素人は使わないんだし
Re: (スコア:0)
>ExecutionPolicyが足枷になって
どういうこと? 一回設定して終わりじゃん
Re: (スコア:0)
一台ならそれでいいんだけどな。
はいはいドメイン作ってグループポリシー
Re: (スコア:0)
ポリシー設定しなくても一時的に実行させたいだけなら
powershellの起動オプションでExecutionPolicy指定するだけでいいんじゃない?
恒久的ならそれこそExecutionPolicy設定するスクリプトをそれで実行してしまえば。
なんで今さら (スコア:0)
エクスプローラーから新規フォルダの作成→名前の変更をやると高確率でエクスプローラーが無反応になる現象に見舞われ
新しいフォルダの作成はcmdからmkdir~とやってるので手放せません!
Re:なんで今さら (スコア:2)
powershellのコマンドレットにもmkdirあるので手放せますね。
しかもaliasとしてmdまで登録済み!
#そーいう問題ではなくて?
Re: (スコア:0)
md や ren は日本語環境CMDに限ってはクサレだろ
ファイル名はアルファベットしか使わんとか補完は使わんとかキャレット移動なんて絶対しないてなら問題無いかもしれんが
Re: (スコア:0)
CUIにおける日本語環境が腐っているのであって別にCMDに限った話ではないと思う
Re: (スコア:0)
未L10Nプログラムに無理やり日本語食わせてる状況で表示崩れるならまだ許せるが
有償日本語OSなのに表示壊れたまま既に数世代(7辺りからだっけ?)放置
MSは日本の古参ユーザを舐めてるとしかおもえんわ
Re: (スコア:0)
> エクスプローラーが無反応に
SysInternalsのProcessMonitorでファイルIOやレジストリの様子を観察したいなあ。
シェル拡張のやつが悪さしてる事がある。
俺のAcer機のWin8.1は、エクスプローラ上のコンテキストメニューを出すのがめっちゃ遅かったんだけど
インテルのグラフィックの拡張機能も、メニューの1項目として出てくるんだけど
そいつがアイコンを表示するのに、なぜかやたらとレジストリを読みまくってた(んだったかな?もう忘れた)
グラフィックドライバの更新を当てたら治った。
言葉遊び (スコア:0)
コマンドプロンプトは滅びぬ、何度でも甦るさ!
コマンドプロンプトの力こそ人類の夢だからだ!
というムスカ大佐のセリフ(改変済)が浮かんでしまった
Re: (スコア:0)
つかもーcommand.comとcmd.exeが置き換わってても
気づいてなさそうなコメントがチラホラあるので
もう半世紀程は平気なんじゃない?
progman.exeは (スコア:0)
Explorer.exeに置き換わって6年ぐらい(XP SP2~)で使えなくなりましたが
Re: (スコア:0)
言いたいことがあるならはっきり言ったら?
Re: (スコア:0)
別にスタートメニューがあるからよいんじゃない?
というか、プログラムマネージャーを発展させてスタートメニューができたんだとおもうよ。