多くのUnixスクリプトを実行し、ほとんどWindowsスクリプトを実行しないUnixおよびWindowsの管理者として、WindowsスクリプトユーティリティとAPIの信じられないほどの厄介さと、難易度(おそらく非自明性はより良い言葉)Windowsマシンでリモートで実行すること。
つまり、WTFはこれですか?
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
問題の一部は、API があることだと思います。Unixでは、管理者は主に、すでに使用しているコマンドラインユーティリティの自動化をスクリプト化しています。Windowsでは、すべてのレベルで馴染みのないこのAPIを使用する必要があります。たとえば、「なりすまし」とはどういう意味ですか?これはUnix管理者にとってささいな概念です。Unix管理者はsudoとsuを使用し、すでにsetuidスクリプトに精通している可能性があります。しかし、Windows管理者がそのいずれかに精通していることはまずありません。「runas」(または同等のGUIオプション)については知っているかもしれませんが、何か管理が必要な場合は管理者としてログインする可能性がはるかに高くなります。
また、Windowsのスクリプトに関するドキュメントは悲惨です。一つには、スクリプトよりもはるかに「解釈された言語」です。これも、彼らが(なじみのない)APIを使用しており、既に慣れ親しんでいるコマンドではないためです。しかし、Microsoftのドキュメントで有用なものを見つけたとは思わないが、それは、私が正しい方向に向けてくれたことに既に望んでいたことに近い何かをしている人を見つけることによってもたらされなかった。できることのリストはどこにもありません。最も基本的なことを行うためには、Windowsの内部に精通している必要があります。
Unixスクリプトが回線ノイズのように見えることはあまりありません。しかし、Unix管理者は、彼が既に知っている簡単なコマンドを実行するだけのスクリプトで開始できます。(「これら3つのコマンドを常に連続して実行する必要があります。ファイルにまとめただけで、1つのコマンドで実行できるようになります!」)対照的に、管理者が「管理者としてサーバーにログインし、「スタート」→「設定」→「コントロールパネル」をクリックし、「システム」をダブルクリックし、「コンピューター名」タブをクリックする」などのスクリプトを作成する方法はありません ええ、彼が到達しようとしていたものは、おそらくどこかのAPIを介して提示されますが、彼がそれを少しずつ見つける方法はありません。
したがって、「Windows管理者にもっとスクリプトを作成させるにはどうすればよいか」という質問に答えるために、答えは、スクリプトをより異質なものにすることです。それを行う方法、私は知りません。
正直なところ、答えはマイクロソフトの手にかかっています。GUIを介して行われるすべてを実行するためのコマンドラインユーティリティを使用できない理由はありません。(実際には多くのものがありますが、宣伝されておらず、文書化が不十分であり、一貫性がありません。)GUIに何についてのヒントがないかという理由もありません。そのボタンは実際に行います。変更中のAPIオブジェクトを示すツールチップを用意してください。または、ヘルプウィンドウで文書化します。
ユーザーを内部から保護することには問題はありませんが、Windowsは、それらの内部を、それを見つけたい人からも積極的に隠すために邪魔にならないようです。
ls -1 *old* | awk '{print "mv "$1" "$1}' | sed s/old/new/2 | sh