Windows管理者にスクリプトの作成を促す方法 [閉まっている]


26

最初の仕事で管理者として働いていたとき、Windowsサーバーでの管理プロセスが一連のポイントアンドクリックであることに不満を感じました。多くの作業を自動化するシェルスクリプトのグループを備えたUnixサーバーと効率のレベルを一致させることはできませんでした。すぐにWSHとADSIについて読み、スクリプティングでどれだけの自動化を達成できたかを学ぶ時間を無駄にしませんでした。

しかし、大きな問題がありました-Windowsの同僚の誰も、スクリプトの学習に本当に興味がありませんでした。彼らは、手動でマウスをクリックする雑用に満足しているように見え、スクリプトを使用して自分の代わりに作業を行うという見通しに興奮していませんでした。効率が明らかに向上したにもかかわらず、スクリプトスキルを習得するように説得するのに苦労しました。その後、フルタイムのソフトウェア開発のキャリアを追求してその仕事を辞めました。

さまざまな環境とさまざまな顧客での作業に約10年かかりましたが、Windowsの管理者は、スクリプトをできる限り回避する一般的な「気分」を主に持っています。アクセシビリティのレベルが向上しているにもかかわらず、Windowsサーバーテクノロジはスクリプト作成と自動化を可能にします。ほとんどすべての管理者が管理者であることはほぼ確実です。なぜなら、彼らはあらゆる種類のプログラミング義務を絶対に嫌うからです。スクリプト長期的には本当に役立つと管理者を励まし、やる気にさせるいくつかの手段は何ですか?

回答:


21

多くの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は、それらの内部を、それを見つけたい人からも積極的に隠すために邪魔にならないようです。


16
逆に、WTFはこれですか? ls -1 *old* | awk '{print "mv "$1" "$1}' | sed s/old/new/2 | sh
squillman

4
Windowsスクリプティング、特にVBは、理解し始めるまで非常に厄介です。方法-よく、PowerShellは管理者にとって使いやすくするために長い道のりを歩んできました。VBSよりもBashスクリプトに近いです。
ザイファー

2
ところで、悪魔の擁護者を演じているだけです:) WMIはisいです...
squillman

1
笑。まず、一体誰がそうするのでしょうか?第二に、管理者は少なくともすでにに精通していlsます。第三に、私は比較的高度であると考えてsedおり、私がawk話しているWindows APIと同じ領域にいることは確かです。3番目と半分、いくつかの(多くの)Unixスクリプトコマンドは複雑ですが、そこから開始する必要はありません— —に精通しているコマンドのリストを単に持っているなどの簡単なことを行うことができます。一方、Windowsで実質的に何でもしたい場合は、最初にスケーリングするこの大きな学習曲線があります。ただし、答えを更新します。
wfaulkが

3
Exchange 2007のGUIで何かをするときに、PowerShellスクリプトを生成して実行する方法が気に入っています。
リチャードガズデン

8

実際にはスクリプトを介してのみ実行できるタスクを与えます。たとえば、一度に何百ものフォルダーの作成と各フォルダーのカスタムアクセス許可をスクリプト化する必要があり、毎日更新する必要がありました。彼らがこれを手動で行う場合、それは彼らの唯一の仕事でしょう。区切られたテキストファイルの出力に基づいてアクセス許可をリセットするためにとりわけCACLSを使用したスクリプトは、1日で完了しました(基本的なスクリプトは約1時間で完了しました)。

スクリプティングで何ができるかを見始めたら、それは大きな勝利になるでしょう。


+1すばらしい点です。ポイントしてクリックするだけではできないことがあります。
squillman

はい、当時私が書き戻したスクリプトは、ディレクトリ、DACLのアクセス許可、IISサイトのセットアップなどの作成を自動化しました。しかし、同僚はそれによって動機付けられていませんでした。そのうちの1つを2か月かけて、文字列形式で日付を返すスクリプト関数を作成する方法を学びました。
アイスラバ

おそらくご存知のように、PSはCACLSを使用しない、XCACLSを使用しない、またはACLの継承が壊れます。
リチャードガズデン

5

私はかつて「プログラミング」を一切拒否したシステム管理者を雇いました。彼から抜け出すことができたのは、既存のコードを使用し、変数の割り当てやホスト名などを変更することでした。仕事を終わらせるために。プログラミングに煩わ​​されていない人もいるので、それらの障壁を低くする必要があります。

Microsoftはこれに取り組んでいます。SQL Serverでは、しばらくの間、Management Studio GUIの項目をクリックして、実行した内容のt-sqlスクリプトをダンプすることが可能になりました。これは、特にプログラミングが難しいWindowsシステム管理者にとっては素晴らしいことです。

System Center Virtual Machine Managerには、PowerShellスクリプトをダンプする以外は同じビュースクリプト機能があることに気付きました。他の多くの製品ラインもこれを導入していると思います。

管理者をスクリプティングに動機付ける方法は?タフな呼び出し、良い管理者は怠け者の管理者であり、それは可能な限りスクリプトを作成する管理者を意味します。物をクリックする時間がある管理者は、あまり生産的ではありません!管理者を非常に多くの作業で過負荷にして、スクリプトを作成する以外に選択肢がないようにします。


なんて怠け者って呼んでるの?ああ、待ち時間...
squillman

6
怠lazはシステム管理者の美徳です!
ニックカバディアス

うん!
squillman

2
私の経験では、ほとんどの管理者は手動のクリックで過負荷を続け、作業を完了するまでにこれまで以上に時間がかかります。:-)怠にはさまざまなカテゴリーがあると思いますが、いくつかは考えるのが面倒で、頭をひねるだけでクリックしたいです。クリックするのが面倒で、それを減らすと考える人もいます。
アイスラバ

その時点で、自分の仕事を何らかのコードに置き換える方法を示し、彼らは恥から泣き、彼らのやり方を変えます...または彼らはあなたを解雇しません。
ニックカバディアス

4

あなたの投稿に心から同意します。残念ながら、スクリプトの使用を強制する管理およびプロセスからのサポートなしでできることは多くないと思います。選択肢が与えられると、人々はいつも馴染みのあるものと簡単なものを使います。これは否定的な点のように思えるかもしれませんが、単純さと親しみやすさがプラスになる場合があります。

一方では、Windowsシステムは暗黙的に単純/簡単であることを意図していますが、Unix / Linuxシステムははるかに難しく、寛容ではありません。だから、誰が最も抵抗の少ない道をとったことで管理者を責めることができますか?あなた、または私または他の多くの人々がスクリプト作成の力を認識するかもしれませんが、人々は最終的に何らかの方法で学習します。通常、スクリプト作成に抵抗する管理者は難しい方法を学びます。私はもっ​​と賢く働きたいのですが、他の人はただ働きたいだけかもしれません。

スクリプトが長期的に彼らを本当に助けることができると管理者を奨励し、やる気にさせるいくつかの手段は何ですか

私はあなたが人々をやる気にさせることができると思っていましたが、現実はあなたが彼らを担当していない限り「成功」の成功の可能性は非常に低いです。私の最近の態度は次のとおりです。学びたい人、私は助けます。必要かどうかに関係なく、誰も望んでいない製品のセールスマンにならないでください。(何らかの理由で)やる気のある人を1人だけ助けたり教えたりすると、彼らが変化の触媒になります。あなたじゃない。ちょうど私の2セント。


1
1あなたは...水に馬をリードすることができます
squillman

2
...しかし、あなたは彼を水上スキーにすることはできません。
osij2is

@squillman:あなたはまさに私が考えていたことを言った。これに対する私の考え方は、他の人が不足しているスキルを持っている場合、それを使用して自分自身を売り込み、先に進むことです(それがあなたにとって何を意味するにせよ)。他の人が先に進むのを助けることは確かに素晴らしいことですが、あなたは彼らを蹴ったり叫んだりすることはできません。
エヴァンアンダーソン

@Evan:意欲的な学習者に教えることは、「自分を売り込んで先に進む」ことと矛盾すると思いますか?Windowsの管理者の1人が(スクリプトに関する)支援を求めた場合、私はそうすることをためらいますが、最終的にはチームワークは彼らを支援するためにさらに1マイル進むことを意味しませんか?あなたの考えを読んでみたいだけです。
osij2is

1
@ osij2is:私は「意欲的な学習者」を過度に支援する罪を犯しているので、より多くの時間を請求し、より多くのお金を稼ぐなどの「機会」を間違いなく浪費しました。最終的には誰かの生活を良くするようなコンピューターの使用。誰かが学びたいという切実な願望を持って私のところに来たら、私ができることは何でも伝えて幸せです。そうは言っても、知識の移転を伴わない「修正」が望まれるのであれば、私もそれをすることができます。時にはそれが「魚に男を教える」ことができるようにしないように私は悲しくなりますが、それは...のためにどのような状況の呼び出しだ場合
エヴァンアンダーソン

2

私が通うマントラは、「より賢く、難しくはない」です。プロセスを数回以上実行するということは、通常、マウスクリック、bashスクリプト、またはその他の方法で自動的に実行されるようにスクリプト化する方法があることを意味します。私の見方では、これはシステム管理の「手作業」ではない、より重要なタスクを個人的に自由に行えるようにします。

スクリプティングを避けたい人は、頭の中にいくつかのことを実行しているかもしれません。おそらく彼らはGUIインターフェースを楽しんでいて、コマンドラインやプログラミングを学びたくないでしょう。たぶん、彼らは何かをスクリプト化することによって、基本的に自分自身の重要性を減らしていると思うでしょう。いずれにせよ、これは私が望んでいる種類の従業員ではなく、どんな種類のスクリプティングもするのをためらうことは、彼らがどんな種類の労働者であるかを示しています。「ダム」システム管理者ではなく、問題解決者が欲しいです。

彼らを励まし、意欲を与える限り、あなたがやっているようにやることだけで、生産性の向上とそれが彼らの仕事をより簡単にする方法を示したいと思います。一部の人にとっては、Windowsシステム管理者は単なる小切手であり、過去10年間働いてきたポイントアンドクリックの考え方を超えて動機付けるのは難しいでしょう。


「問題ソルバー」に関する良い思い出。私が会う多くの人々は、考えられるすべての問題に対して何をすべきかを彼らに伝える指示小冊子が欲しいだけです。彼らは何が起こっているのか考えたくない。この問題を解決するには、ステップ1から23までを行ってください。
アイスラバ

著名な将来のブルーカラー労働者ジョージ・ジェットソンのように、私はそれらの人々を「ボタン押し」と呼ぶ傾向がある。
wfaulk

2

あなたが克服しなければならないいくつかの問題があります、あなたが1つ言及したように、多くの管理者は、スクリプト作成のように低レベルでさえ、プログラミングに関与したくありません。もう1つはこれに関連しており、これは制御の問題です。管理者が手動でタスクを実行している場合、各段階で何が起こっているかを正確に把握しています。多くの管理者は、これをスクリプトに置き換えることにより、特にスクリプトを理解しておらず、スクリプトを記述しなかった(および記述したくない)プロセスの制御が失われていると感じるかもしれません。

スクリプトは長い間Unix管理の大部分を占めており、一般的にUnix管理者は最初から、Windows管理として、そしてその固有のGUI-ネスはより手作業のプロセスにつながり、スクリプトは不自然に見える場合があります。

残念ながら、このこぶを介して開発者を取得するのは難しい戦いです。管理者が自分がコントロールしていると感じるには、スクリプトが何をしているのかを理解する必要があるため、スクリプトの作成方法を本当に理解し、学ぶ必要があります。スクリプトが彼らに何ができるかを本当に理解している

それは物事をより速くし、人生を楽にするなどと言っていますが、彼らにそれを証明できますか?彼らが嫌いで、定期的にやらなければならないタスクを見つけて、それを自動化してみてください。この恐ろしいタスクを取り、それをシングルクリックスクリプトにすることができれば、彼らはあなたを愛しますが、もっと重要なのは、スクリプトを使用することの利点を理解することです。


良いフィードバックでスクリプトを作成し、おそらくいくつかのマイナーなインタラクティブコントロール-ユーザーフレンドリーなもの^^
Oskar Duveborn

1
特にひどく長く厄介な日常業務を引き受け、それを自動化できることに気づくとすぐに、perlを学び始めました。それ以来振り返っていない。
トウィリム2009年

私のポイントは、これらすべての「恐ろしいタスク」であり、それでも手動で実行することです。:-)
アイスラバ2009年

それらの多くを解任し、それらをuber-scripterである単一の管理者に置き換えます。安くなります
ニックカバディアス2009年

2

[ため息]これは、Windowsの世界ではあまりにも広まっていますが、多くの人がポニーを上げてスクリプトを学びたくないというあなたの声明に疑問を呈します。私のシステム管理者としてのキャリアでこれまでにやってきた絶対最大のことは、VBとPerlを学ぶことでした。

それらを表示するだけでは動機付けにならない場合、私が使用したいトリックの1つは、経営陣の前で微妙なステートメントを捨てることです。意思決定者に利点を示してください。多くの場合、それはグループ全体に広がり始めます。しかし、それについて気を悪くしないでください。

もっと微妙な注意として、誰かを変えることは(不可能ではないにしても)難しいです。例でリード!


5
「あなたは何を知っている、私はそれをスクリプト化できると確信しているので、それを実行するために継続的な人材を費やす必要はない」経営陣の前での強力な言葉:)
トウィリム2009年

1
私は、Windowsの世界でのみ、プログラミングの知識がまったくない自分を管理者と呼ぶことができると信じてきました。あなたがドロップできる別のコメントは、「なぜあなたはそれを手動でやっているのですか?それは私たちがコンピュータを持っているものです」。
ジョンガーデニアーズ

残念ながら、私は長い間開発とコンサルティングのキャリアを積んできたため、現在出会う管理者は主に顧客の管理者です。経営陣やITリーダーの前で彼らを悪く見せる機会が常にあるとは限りません:-)
icelava

1

この質問は非常に主観的です。スクリプティングが提供する効率と制御の向上には同意しますが、なぜそれが義務付けられているのですか?使用したいという理由だけで、人々にスクリプトの使用を促す必要があるのはなぜですか?人々が好きで好むツールを使用することを選択してみませんか?

この質問は、ITの世界に存在する一般的なバイアスも示しています。スクリプトを作成しない場合、スクリプトを実行する人ほど頭が良くないか、優秀ではないということです。私よりも優れたスクリプトを作成できる人はたくさんいますが、命を救うためにサブネット化したり、ネットワークトレースの実行方法を見つけたり、AWEを使用するようにSQLサーバーを構成したり、ブートがわからなかったりしました。 iniファイルは、などのためでした。


2
実証済みのベストプラクティスであるため、スクリプトを推奨する必要があります(それが委任であることについては何も言及されていませんでしたし、暗示されたとは思いません)。正直言って、「あなたはそれほど賢くない」というバイアスは見ていませんが、それが存在することを疑いません。私は簡単に...愚か者としてそれらの人々を却下う
squillman

2
どのように主観的ですか?あなたが言ったように、スクリプトは効率を改善します。効率を高めるツールまたはプロセスを義務付けるビジネスには何の問題もありません。同僚がシステム管理者をより良くするスキルを開発するように他の人を励ますことは、間違いなく間違いありません。
ブライアン

3
@squillman、彼はそれがベストプラクティスであり、それ自体が主観的ではないと言っています。私にとってベストプラクティスはあなたのためではないかもしれません。90%の企業がスクリプト作成をベストプラクティスと見なしているという研究があります。@ブライアン:誰がそれが彼らをより良いシステム管理者にすると言うのですか?同僚はスクリプトを作成できますが、サブネット化はできませんが、サブネット化はできますが、スクリプトは作成できません。ここでは悪魔の擁護者を演じるだけで、攻撃は意図されていません。
joeqwerty

3
@Joeqwerty:ポイントアンドクリックに比べてスクリプトは強力です。スクリプトは(正確に)少ない人間が手動で行うよりも短時間でより正確に多くのタスクを実行できるためです。おそらく句は次のようになります。「スクリプトは、より良い練習」。あなたの(悪魔の擁護者)主張は、主張自体よりも主観的です。「私にとってベストプラクティスはあなたに向かないかもしれません。」それは本当かもしれないが、それはそれはだという意味ではありませんではないのベストプラクティス。それはあなたが意味するかもしれないことはできません方法がわからない、それを行うには。それはそれ自体が別の問題です。
osij2is

2
しかし、あなたの意見は間違っています。;)しかし、真剣に、スクリプトを避けることは、サブネット化の方法を知ることを避けることと似ていると思います。どちらも良くありません。スクリプティングが効率と制御を向上させることに同意するなら、それを避ける人と同等に扱うべきだと主張するのはなぜですか?あなたが畑を耕すために誰かを雇うなら、あなたはむしろトラクターを持つ男または牛を持つ男を雇うでしょうか?
wfaulkが

1

正直なところ、馬を水に導くことはできますが、彼に飲ませることはできません。

私は10年ほど前に海兵隊でSysAdとして登場しました。管理者になることとコーダーになることの間には大きなギャップがあります。コーダーになるということは、通常、COのペットプロジェクトのWebサイトでの処理にこだわることを意味します(実際の仕事をほとんど行わない...)。

このため、私はコーディングの学習に抵抗しましたが、一度試してみることに決めたとき、私は急いでいました。

誰かを引き込む限り、AD / LDAPスクリプティングを使って誘ってみてください(WMIを扱うよりもアクセスしやすいと思います)。タスクの進行を割り当て、「ユーザー名とグループXYZの人々」。

指定されたグループのメンバーではないすべてのユーザーを見つけるために、次のコードを書きました:https : //github.com/gwaldo/LDAP-Inverse-Group-Membership-Report

リソースに関しては、Microsoft Scripting Guys(優れた記事とチュートリアルを持っています)とScriptomatic2をチェックしてください。WMIを掘り下げるのが大好きです。


0

次の質問:なぜスクリプトを作成する必要があるのですか?それが答えを決定します。

おそらく、スクリプトの方が効率的だからです。その場合、他のすべての人を紹介するか、システムを管理するより効率的な方法があることを経営者に指摘し、それらがコスト削減策で活用されるのを待つことができます。

権限を持っている人は、ほとんどのことを処理するためにスクリプトを配置することを要求することにより、スクリプトを義務付けることができます。これがどれだけうまく機能するかは、いくつかのことに依存します。管理者が通常どおりに作業している間、スクリプトがひどく不十分で時代遅れのままである可​​能性が高いと述べた場合。

これがあなたにどのような影響を与えているのかという問題もあります。それは単にあなたを悩ませますか、それともあなたの仲間の管理者がスクリプトを書くことであなたの人生は良くなるでしょうか?


主な効果は、管理者が複数のマシンで繰り返し手動の雑用を実行する時間を浪費することです-長いターンアラウンド-開発スケジュールに影響を与える可能性があります(常に十分ではありません)。
アイスラバ

1
手動タスクはエラーが発生しやすいことを忘れないでください。
ジョンガーデニアーズ

0

私は実際に別の考えがありました。ジュニアWindows管理者がGUIインタラクションに慣れているという事実に関連して、AutoItのようなもので、GUIインタラクションのスクリプティングを開始すれば役立つかもしれません。これにより、既存のツールを捨てて新しいツールとスクリプトを同時に学習させるのではなく、既に知っているツールを使用できるようにしつつ、スクリプト作成に関してドアに足を踏み入れることができます。

その後、一般的なスクリプティングの概念に慣れると、非GUIスクリプティングに進むことができます。ただし、そうでない場合でも、ボタンのクリックを自動化することで、時間を大幅に節約できる可能性があります。


0

スクリプトを「作業を行うドキュメント」として定義しました。

マネージャー:同僚がTask-Xをクリックしてクリックするために、1年生が理解できるドキュメントを作成するのに数え切れないほどの時間を費やしてください。

従業員:Task-Xを実行するスクリプトがあります。

マネージャー:確かに、私がちょうど求めたドキュメントを終えた後、フローチャートでスクリプトもドキュメント化してください。


0

スクリプトを「作業を行うドキュメント」として定義しました。

マネージャー:同僚がTask-Xをクリックしてクリックするために、1年生が理解できるドキュメントを作成するのに数え切れないほどの時間を費やしてください。

従業員:Task-Xを実行するスクリプトがあります。

マネージャー:確かに、私がちょうど求めたドキュメントを終えた後、フローチャートでスクリプトもドキュメント化してください。

サーバーからのドキュメントの読み取りを複雑にするために、ドキュメントはMS Wordドキュメントに含める必要があることを忘れないでください。


その要件を忘れました。
ネイサンハートリー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.