アカウント名:
パスワード:
運用やってたときがあるんだが、VBA、PowerShellでちょいプロできるとかなりの部分が自動化できる。
・エクセルでリスト化した宛先・ファイルを自動でメール送信・数十のCSVの一部を取り出し、集計・レポート化・仮想マシンの自動デプロイ・初期設定・全ユーザの特定フォルダの監視・仮想マシンへアプリの自動インストール(vcenter経由)・ログインユーザの取得・プリンタ設定の全ユーザ一括変更
その他100個くらいスクリプト作ったな。スクリプトで効率化できたのはいいけど、運用チーム15人いたのが5人になってしまった。。
これらをLinuxでやれと言われたら無理だわーLinux好きで自宅では使ってるけど、業務に使うのは無謀だと思っている。
PowerShell、結構使ってるよ。しかし、もうVBAとか使う気にならんね。CMD.exe、VBScriptやJScriptも同様。
これらをLinuxでやれと言われたら無理だわー
いまどき、LinuxでもMacOSでもPowerShellが動く [techcrunch.com]よ。ただ、Windowsにあるほどのコマンドレットはそろってないようだけど。Windows版と同じことはできないね。
しかし、シェルスクリプトでもかなりのことはできちゃうけどな。あげられた例でいうと、Windows前提のものはできないけど、他はできるね。VMware系のものも、ESXi Shellでできちゃうでしょ。
Linux好きで自宅では使ってるけど、業務に使うのは無謀だと思っている。
クライアント系業務は、Windowsがほとんどだろうから、そうだろうね。
世の中には、Linux系がメインの業務もあるんで、「業務」一般に拡大しちゃうと、違和感があるね。
それは単に貴方のスキルが足りないからですよ。まあパワーシェルできる人のほうが多いので実際問題業務には向かないのだが。
スキルが足りないと言うのは簡単ですが、出来る!ただし開発が必要・データ形式の変更が必要・導入工数に掛かる時間は含めない物とする!みたいな理論上は出来るみたいなコメントの感じがするのですが実際どうやったら出来るの?
GNU系なら全部簡単にできると思うが、それをパワーシェルでやれって言われると結構時間かかると思う。無理とは言いたくないが。
COMあるの?
#3298329だが、Linuxでのシェルスクリプト歴の方が長いが、PowerShell触ったときは感動したぞ。あれはよくできていると思う。パイプでオブジェクトを渡せる。これできるとbashなどのシェルスクリプトはやはり時代遅れに感じるわ。習得までの時間やスクリプト作る時間はPowerShellの方が圧倒的に早かった(おれの場合)。あとVM使うことが多くなってきたが、ベンダーが用意しているAPIはPowerShellに対応したものばかり。PowerShellはこれから(もう?)必須技術になっていると思う。VBAはもう触りたくない…
PowerShell賛成派。
習得までの時間やスクリプト作る時間はPowerShellの方が圧倒的に早かった(おれの場合)。
そりゃそうだろ。低レベル言語を先にやっていれば、高レベル言語を習得するのが早いのは当たり前、とも言えるし、ある言語を習得しておけば、別の言語を習得するのは早いとも言える。
VBAはもう触りたくない…
同感。MS Officeのプラグインを書くとかじゃなきゃ、もう触らないと思う。
おお、同じ感想を持った人に出会えた。PowerShellでのオブジェクトの扱いは感動ものですよね。あと動作がある程度安定してきたあとにC#ベースのツールに書き直すのも楽だし。大量のプロパティのどれを使えばいいのかを学ぶまではちょっと大変だと思ってますが、ドキュメントはそれなりに見つかるのでまあなんとか。
PowerShellがよくできてる、ってのには80%くらい賛成するんだけど、疑問なところもあるんだよね。
たとえば…
配列をよく使う言語なのに、普通の配列操作が致命的に遅いとか。# ArrayList使えばいいけど…
コマンドラインとパイプラインの両方から受け取る引数の扱いがヘンとか。
BEGIN - PROCESS - END で書くと、全体を通した finallyが書けないとか。# trap構文でなんとかならんのか…# と思ったら、Register-EngineEventでできるのか。
でも、クラスの定義はできるようになった!Add-Member でちまちまやらなくて済むようになってよかった。
どんな言語も得意不得意があるのだからShellだって同じでしょう。pythonとかと使い分ければ良いだけ。
どんな言語も得意不得意があるのだからShellだって同じでしょう。
んー、そーゆー問題じゃないんだよな。クラスを定義できなかった問題は、まあ、PowerShellの用途から言って、そういう割り切りもあると思うんだけど、他のはもっと別に方法があっただろう、って思うんだよね。
本番投入前にはなんだかんだ安定化する必要があるのでPshellはプロトタイピングが済んだら用済み?
以前あるプロジェクトでは結果的にプロトタイピングになりましたね。管理ツールとしてではなくプロジェクト固有のデータコンバータだったのですが・急ぎ必要だったのでまずはPowerShellで書き起こし。・だいたいやるべき事落ち着いてプログラマ以外のメンバーにも配布する段階でC#使ってexe化(.NETは入れないといかんですが)・速度もう少しなんとかならんの?という要望が出た時点でひいこら言いながらC++で書き直し。てな感じでした。
単なる管理用のスクリプトとしてだけでなくプログラム言語としても面白いよねやったことない人はぜひやってみて欲しいWindowsがあれば開発環境(PowerShell ISE)はすでに用意されているんだし
PowerShellは、面白いんだけど、セキュリティ関連が安全サイドによってて、面倒だった記憶が。
デフォルトだと、ローカル実行が許可されてなくて、ローカル実行許可のポリシー設定するか、毎回パラメーターで指定しないとならないってのがあって、手軽に触れない印象がある。
後、最新版だとできる様になっているかもだけど、psスクリプトをダブルクリックで実行できないのも補助的にしか使わない原因になっているね。自分の場合は。
Set-ExecutionPolicyを、コンピュータもしくはユーザ事に一回やればいいだけでしょ?あるいは、グループポリシーでできるんじゃなかったっけ?
まあ、シェルスクリプトと比較して面倒と感じてるかもしれないけど、シェルスクリプトは普通、chmod a+xをスクリプト毎に実行するわけだから、実はPowerShellの方が手間はかからないとも言える。
psスクリプトをダブルクリックで実行できないのも補助的にしか使わない原因になっているね。自分の場合は。
どうしても、ってことなら、CMD.exeでラップすれば?
自分の場合でいえば、スクリプトをダブルクリックで実行するって感覚が、そもそも無いけどね。
コンテキストメニューから実行できるけど、なぜか気分で?ポリシーで許可されてないとかいう警告をたまに出す困ったちゃんだったりする。
batファイルからps1ファイル呼び出せば実行できるので、それで対処するとかpowershell -sta -ExecutionPolicy Unrestricted -File %0\..\powershelltest.ps1 %*
なぜか気分で?ポリシーで許可されてないとかいう警告をたまに出す困ったちゃんだったりする。
コンテキストメニューから実行することがほとんど無いんで知らないんだけど、それって本当?同じマシン・同じユーザでも警告が出たり出なかったりするの?
Set-ExecutionPolicyを実行してなかったりとか、そのスコープを理解してなかったりするだけではない?
> シェルスクリプトは普通、chmod a+xをスクリプト毎に実行するcurlからパイプでbashに流し込んだり、tarballからパーミッションごと取り出して実行したりで、実行する本人は+xしない状況も多いけどね。かと思えばバラでパーミッション設定しなきゃいかん所で横着してchmod a+x *とかやる奴も居たり。
curlからパイプでbashに流し込んだり、
ええと、話がズレてるんじゃない?PowerShellのスクリプトファイル *.ps1 は、ダブルクリックで実行できないよね、って話からの流れなので、当然 bash でいえば、bash スクリプトファイルの話をしてるつもりなんだけど。
PowerShell 触った人は、だいたい同じ感想になるよ。同じような感想持たないのは、原理主義で現実が見えないか、元環境のシェルもPowerShellもどちらも理解できてないぐらいまで低能な連中だけ。
シェルとしての使い勝手だとか構文だとか実行速度が遅すぎて辛いとかは好み(?)はあるにしても、一段階先に進んでるのは否定できないよ。
パイプでオブジェクトを渡せるのが逆にいや。何を流してるか想像できない上に、絶望的に遅い。
ここで絶賛している人たちって、大量のデータ使ったりしないのかな・・・
VBScriptの方が圧倒的に早かったし、PowerShellで書くくらいならC#で書く。どうしてもコンパイルがいやならPythonかRubyでも使えば?
想像できないのは、想像力の欠如が問題じゃね?
それはそれとして、遅いのは事実。特に、配列が遅いのは困ったもんなんだよね。でも、ArrayListを使うと若干マシになるけど、それを言語レベルでサポートできてないところがダメなんだよなあ。
ま、大量データを処理する用途に使おうと思うのが間違いなんじゃね?
どうしてもコンパイルがいやならPythonかRubyでも使えば?
Rubyはそんなに速くないだろ。それに、RubyもPythonも、Windowsに標準で入ってないのが致命的。
加えて、文字列操作も遅いんだった。スクリプト言語で文字列操作が遅いのはどうかと思うんだよね。StringBuilder を使えばマシって話はあるんだけど、言語レベルでサポートしろよ、って思う。
パイプでオブジェクトを渡せるのが逆にいや。何を流してるか想像できない
unixのシェルなら何がパイプに流れてるか想像できるとでも?
PowerShellがそんなに糞なら、天下のGoogleサマがわざわざCloud Tools for PowerShell [google.com]なんてものを作ったりするわけないんだよなぁ
Windowsを跡形もなく消し去ることができるなら余裕だよな。Windowsが残るからしんどいことになる。
WindowsでできることがLinuxでも漏れなく全部できるようになれば跡形もなく消し去るのも余裕よ。現実にはそうじゃないからしんどいだけで。
・エクセルでリスト化した宛先・ファイルを自動でメール送信 -> CSV出力されたものがあれば、Perlでもなんでもいかように対応可能。
・数十のCSVの一部を取り出し、集計・レポート化 -> これはそうだな。集計対象やレポート目的が動的に変化しないならなんとか。 Power BI をお勧めする。
・仮想マシンの自動デプロイ・初期設定 -> いかようにも対応可能
・全ユーザの特定フォルダの監視 -> Linuxでストレージを構築する場合はたとえば、NFS/CIFSマウントするならば一元的に監視可能 それ以外は、各マシンで
PowerShell一つで美しく・簡単に完結させられるってところが重要なんでしょ。可読性の悪い醜いスクリプトやらコマンドやら色々組み合わせれば他の方法でも実現できるのは馬鹿でもわかる。いちいち説明は不要。
PS使えればまだよいのに、バッチファイルをやらなければならない悲しみ仕様が複雑怪奇すぎんよ!
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
人生の大半の問題はスルー力で解決する -- スルー力研究専門家
VBA・PowerShell (スコア:0)
運用やってたときがあるんだが、VBA、PowerShellでちょいプロできるとかなりの部分が自動化できる。
・エクセルでリスト化した宛先・ファイルを自動でメール送信
・数十のCSVの一部を取り出し、集計・レポート化
・仮想マシンの自動デプロイ・初期設定
・全ユーザの特定フォルダの監視
・仮想マシンへアプリの自動インストール(vcenter経由)
・ログインユーザの取得
・プリンタ設定の全ユーザ一括変更
その他100個くらいスクリプト作ったな。
スクリプトで効率化できたのはいいけど、運用チーム15人いたのが5人になってしまった。。
これらをLinuxでやれと言われたら無理だわー
Linux好きで自宅では使ってるけど、業務に使うのは無謀だと思っている。
Re:VBA・PowerShell (スコア:1)
運用やってたときがあるんだが、VBA、PowerShellでちょいプロできるとかなりの部分が自動化できる。
PowerShell、結構使ってるよ。
しかし、もうVBAとか使う気にならんね。
CMD.exe、VBScriptやJScriptも同様。
これらをLinuxでやれと言われたら無理だわー
いまどき、LinuxでもMacOSでもPowerShellが動く [techcrunch.com]よ。
ただ、Windowsにあるほどのコマンドレットはそろってないようだけど。
Windows版と同じことはできないね。
しかし、シェルスクリプトでもかなりのことはできちゃうけどな。
あげられた例でいうと、Windows前提のものはできないけど、他はできるね。
VMware系のものも、ESXi Shellでできちゃうでしょ。
Linux好きで自宅では使ってるけど、業務に使うのは無謀だと思っている。
クライアント系業務は、Windowsがほとんどだろうから、そうだろうね。
世の中には、Linux系がメインの業務もあるんで、「業務」一般に拡大しちゃうと、違和感があるね。
Re: (スコア:0)
それは単に貴方のスキルが足りないからですよ。まあパワーシェルできる人のほうが多いので実際問題業務には向かないのだが。
Re: (スコア:0)
スキルが足りないと言うのは簡単ですが、
出来る!ただし開発が必要・データ形式の変更が必要・導入工数に掛かる時間は含めない物とする!
みたいな理論上は出来るみたいなコメントの感じがするのですが実際どうやったら出来るの?
Re: (スコア:0)
GNU系なら全部簡単にできると思うが、それをパワーシェルでやれって言われると結構時間かかると思う。無理とは言いたくないが。
Re: (スコア:0)
COMあるの?
Re: (スコア:0)
#3298329だが、Linuxでのシェルスクリプト歴の方が長いが、PowerShell触ったときは感動したぞ。
あれはよくできていると思う。
パイプでオブジェクトを渡せる。これできるとbashなどのシェルスクリプトはやはり時代遅れに感じるわ。
習得までの時間やスクリプト作る時間はPowerShellの方が圧倒的に早かった(おれの場合)。
あとVM使うことが多くなってきたが、ベンダーが用意しているAPIはPowerShellに対応したものばかり。
PowerShellはこれから(もう?)必須技術になっていると思う。
VBAはもう触りたくない…
Re:VBA・PowerShell (スコア:1)
PowerShell賛成派。
習得までの時間やスクリプト作る時間はPowerShellの方が圧倒的に早かった(おれの場合)。
そりゃそうだろ。
低レベル言語を先にやっていれば、高レベル言語を習得するのが早いのは当たり前、とも言えるし、
ある言語を習得しておけば、別の言語を習得するのは早いとも言える。
VBAはもう触りたくない…
同感。
MS Officeのプラグインを書くとかじゃなきゃ、もう触らないと思う。
Re: (スコア:0)
おお、同じ感想を持った人に出会えた。
PowerShellでのオブジェクトの扱いは感動ものですよね。
あと動作がある程度安定してきたあとにC#ベースのツールに書き直すのも楽だし。
大量のプロパティのどれを使えばいいのかを学ぶまではちょっと大変だと思ってますが、ドキュメントはそれなりに見つかるのでまあなんとか。
Re:VBA・PowerShell (スコア:1)
PowerShellがよくできてる、ってのには80%くらい賛成するんだけど、疑問なところもあるんだよね。
たとえば…
配列をよく使う言語なのに、普通の配列操作が致命的に遅いとか。
# ArrayList使えばいいけど…
コマンドラインとパイプラインの両方から受け取る引数の扱いがヘンとか。
BEGIN - PROCESS - END で書くと、全体を通した finallyが書けないとか。
# trap構文でなんとかならんのか…
# と思ったら、Register-EngineEventでできるのか。
でも、クラスの定義はできるようになった!
Add-Member でちまちまやらなくて済むようになってよかった。
Re: (スコア:0)
どんな言語も得意不得意があるのだからShellだって同じでしょう。
pythonとかと使い分ければ良いだけ。
Re:VBA・PowerShell (スコア:1)
どんな言語も得意不得意があるのだからShellだって同じでしょう。
んー、そーゆー問題じゃないんだよな。
クラスを定義できなかった問題は、まあ、PowerShellの用途から言って、そういう割り切りもあると思うんだけど、他のはもっと別に方法があっただろう、って思うんだよね。
Re: (スコア:0)
本番投入前にはなんだかんだ安定化する必要があるのでPshellはプロトタイピングが済んだら用済み?
Re: (スコア:0)
以前あるプロジェクトでは結果的にプロトタイピングになりましたね。
管理ツールとしてではなくプロジェクト固有のデータコンバータだったのですが
・急ぎ必要だったのでまずはPowerShellで書き起こし。
・だいたいやるべき事落ち着いてプログラマ以外のメンバーにも配布する段階でC#使ってexe化(.NETは入れないといかんですが)
・速度もう少しなんとかならんの?という要望が出た時点でひいこら言いながらC++で書き直し。
てな感じでした。
Re: (スコア:0)
単なる管理用のスクリプトとしてだけでなくプログラム言語としても面白いよね
やったことない人はぜひやってみて欲しい
Windowsがあれば開発環境(PowerShell ISE)はすでに用意されているんだし
Re: (スコア:0)
PowerShellは、面白いんだけど、セキュリティ関連が安全サイドによってて、面倒だった記憶が。
デフォルトだと、ローカル実行が許可されてなくて、ローカル実行許可のポリシー設定するか、毎回パラメーターで指定しないとならないってのがあって、手軽に触れない印象がある。
後、最新版だとできる様になっているかもだけど、psスクリプトをダブルクリックで実行できないのも補助的にしか使わない原因になっているね。自分の場合は。
Re:VBA・PowerShell (スコア:2)
デフォルトだと、ローカル実行が許可されてなくて、ローカル実行許可のポリシー設定するか、毎回パラメーターで指定しないとならないってのがあって、手軽に触れない印象がある。
Set-ExecutionPolicyを、コンピュータもしくはユーザ事に一回やればいいだけでしょ?
あるいは、グループポリシーでできるんじゃなかったっけ?
まあ、シェルスクリプトと比較して面倒と感じてるかもしれないけど、シェルスクリプトは普通、chmod a+xをスクリプト毎に実行するわけだから、実はPowerShellの方が手間はかからないとも言える。
psスクリプトをダブルクリックで実行できないのも補助的にしか使わない原因になっているね。自分の場合は。
どうしても、ってことなら、CMD.exeでラップすれば?
自分の場合でいえば、スクリプトをダブルクリックで実行するって感覚が、そもそも無いけどね。
Re: (スコア:0)
コンテキストメニューから実行できるけど、なぜか気分で?ポリシーで許可されてないとかいう警告をたまに出す困ったちゃんだったりする。
Re: (スコア:0)
batファイルからps1ファイル呼び出せば実行できるので、それで対処するとか
powershell -sta -ExecutionPolicy Unrestricted -File %0\..\powershelltest.ps1 %*
Re:VBA・PowerShell (スコア:1)
なぜか気分で?ポリシーで許可されてないとかいう警告をたまに出す困ったちゃんだったりする。
コンテキストメニューから実行することがほとんど無いんで知らないんだけど、それって本当?
同じマシン・同じユーザでも警告が出たり出なかったりするの?
Set-ExecutionPolicyを実行してなかったりとか、そのスコープを理解してなかったりするだけではない?
Re: (スコア:0)
> シェルスクリプトは普通、chmod a+xをスクリプト毎に実行する
curlからパイプでbashに流し込んだり、tarballからパーミッションごと取り出して実行したりで、実行する本人は+xしない状況も多いけどね。
かと思えばバラでパーミッション設定しなきゃいかん所で横着してchmod a+x *とかやる奴も居たり。
Re:VBA・PowerShell (スコア:1)
curlからパイプでbashに流し込んだり、
ええと、話がズレてるんじゃない?
PowerShellのスクリプトファイル *.ps1 は、ダブルクリックで実行できないよね、って話からの流れなので、当然 bash でいえば、bash スクリプトファイルの話をしてるつもりなんだけど。
Re: (スコア:0)
PowerShell 触った人は、だいたい同じ感想になるよ。
同じような感想持たないのは、原理主義で現実が見えないか、元環境のシェルもPowerShellもどちらも理解できてないぐらいまで低能な連中だけ。
シェルとしての使い勝手だとか構文だとか実行速度が遅すぎて辛いとかは好み(?)はあるにしても、一段階先に進んでるのは否定できないよ。
Re: (スコア:0)
パイプでオブジェクトを渡せるのが逆にいや。
何を流してるか想像できない上に、絶望的に遅い。
ここで絶賛している人たちって、大量のデータ使ったりしないのかな・・・
VBScriptの方が圧倒的に早かったし、
PowerShellで書くくらいならC#で書く。どうしてもコンパイルがいやならPythonかRubyでも使えば?
Re:VBA・PowerShell (スコア:1)
パイプでオブジェクトを渡せるのが逆にいや。
何を流してるか想像できない上に、絶望的に遅い。
想像できないのは、想像力の欠如が問題じゃね?
それはそれとして、遅いのは事実。
特に、配列が遅いのは困ったもんなんだよね。
でも、ArrayListを使うと若干マシになるけど、それを言語レベルでサポートできてないところがダメなんだよなあ。
ここで絶賛している人たちって、大量のデータ使ったりしないのかな・・・
ま、大量データを処理する用途に使おうと思うのが間違いなんじゃね?
どうしてもコンパイルがいやならPythonかRubyでも使えば?
Rubyはそんなに速くないだろ。
それに、RubyもPythonも、Windowsに標準で入ってないのが致命的。
Re:VBA・PowerShell (スコア:1)
加えて、文字列操作も遅いんだった。
スクリプト言語で文字列操作が遅いのはどうかと思うんだよね。
StringBuilder を使えばマシって話はあるんだけど、言語レベルでサポートしろよ、って思う。
Re: (スコア:0)
パイプでオブジェクトを渡せるのが逆にいや。
何を流してるか想像できない
unixのシェルなら何がパイプに流れてるか想像できるとでも?
Re: (スコア:0)
PowerShellがそんなに糞なら、天下のGoogleサマがわざわざCloud Tools for PowerShell [google.com]なんてものを作ったりするわけないんだよなぁ
Re: (スコア:0)
Windowsを跡形もなく消し去ることができるなら余裕だよな。Windowsが残るからしんどいことになる。
Re: (スコア:0)
WindowsでできることがLinuxでも漏れなく全部できるようになれば跡形もなく消し去るのも余裕よ。
現実にはそうじゃないからしんどいだけで。
Re: (スコア:0)
・エクセルでリスト化した宛先・ファイルを自動でメール送信
-> CSV出力されたものがあれば、Perlでもなんでもいかように対応可能。
・数十のCSVの一部を取り出し、集計・レポート化
-> これはそうだな。集計対象やレポート目的が動的に変化しないならなんとか。
Power BI をお勧めする。
・仮想マシンの自動デプロイ・初期設定
-> いかようにも対応可能
・全ユーザの特定フォルダの監視
-> Linuxでストレージを構築する場合はたとえば、NFS/CIFSマウントするならば一元的に監視可能
それ以外は、各マシンで
Re: (スコア:0)
PowerShell一つで美しく・簡単に完結させられるってところが重要なんでしょ。
可読性の悪い醜いスクリプトやらコマンドやら色々組み合わせれば他の方法でも実現できるのは馬鹿でもわかる。
いちいち説明は不要。
Re: (スコア:0)
PS使えればまだよいのに、バッチファイルをやらなければならない悲しみ
仕様が複雑怪奇すぎんよ!