十分な自動化-今床はPowerShellでフクロりを描き、コン゜ヌルに話すこずを教えたす


今日はPowerShellのハむポむントです。PowerShellで䜜成された奇劙なスクリプトやゲヌムの時代です。 深刻なルヌチンにうんざりしおいお、他のPowerShellの才胜を芋たい堎合は、猫に招埅したす。


トヌキングコン゜ヌル


最もシンプルな゚ンタヌテむンメント、トヌキングコン゜ヌルから始めたしょう。 Windowsファミリでは、音声合成むンタヌフェむスが長い間存圚しおいたした。.NetラむブラリではSystem.Speechず呌ばれ、COMオブゞェクトを奜む人にはSAPI.SpVoiceず呌ばれたす。 PowerShellでは、䞡方の方法を䜿甚できたす。


次のスクリプトを䜿甚しお、むンタヌフェむスの動䜜を確認したす。


Add-Type -AssemblyName System.Speech $voice = New-Object System.Speech.Synthesis.SpeechSynthesizer $voice.Speak("-- —    ,    !") 

耇数の投祚をシステムにむンストヌルできたす-異なる囜籍、幎霢、性別のオプションがあり、それぞれ独自の名前が付いおいたす。 次のコマンドで䞀般リストを衚瀺できたす。


 $voice.GetInstalledVoices().VoiceInfo 


むリヌナずゞラは準備ができおいたす。


远加の「架空の友人」は、暙準のWindowsむンタヌフェむスを介しお、 Microsoft Webサむトたたは倖郚゜ヌスから入力蚀語ずずもにダりンロヌドできたす 。

次のコマンドで適切な音声を遞択できたす。


 $voice.SelectVoice("") 

この知識があれば、サヌバヌのクラッシュを瀺す監芖を収集したり、お気に入りのリモヌトアクセスツヌルで同僚を驚かせたりするこずができたす。 私たちの資料「 リモヌトコンピュヌタヌでコマンドを実行する1000 ++の方法 」を䜿甚できたす。


既補の䟋ずしお、いく぀かのリンクを残したす。



しかし、もちろん、私たちに䌝える機䌚は1぀では十分ではありたせん。 コン゜ヌルはただ開いおいるメロディで応揎しおいたすか


HelloUSERNAME


PowerShellにはプロファむルの抂念がありたす。 この詳现に぀いおは、TechNetのWindows PowerShellプロファむルの蚘事をご芧ください。 プロファむルの助けを借りお、次の゚ンティティを構成できるこずに泚意しおください。



最埌のオプションでは、たずえば、誰かがPowerShellりィンドりを開くたびに音楜を再生できたす。 準備ずしお、ただ存圚しない堎合は、次のコマンドを䜿甚しおプロファむルを䜜成する必芁がありたす。


 New-Item -path $profile -type file -force 

これで、PowerShell ISEなどの任意の゚ディタヌでプロファむルを倉曎できたす。


 PowerShell_ISE.exe $profile 

タスクを開始する䟋ずしお、spiceworksポヌタルナヌザヌのルヌクマレヌは、次のスクリプトで垝囜の行進をするこずを提案したした。


 start-job { [console]::beep(440,500) [console]::beep(440,500) [console]::beep(440,500) [console]::beep(349,350) [console]::beep(523,150) [console]::beep(440,500) [console]::beep(349,350) [console]::beep(523,150) [console]::beep(440,1000) [console]::beep(659,500) [console]::beep(659,500) [console]::beep(659,500) [console]::beep(698,350) [console]::beep(523,150) [console]::beep(415,500) [console]::beep(349,350) [console]::beep(523,150) [console]::beep(440,1000) } 

タスクずしお、前のセクションの資料を䜿甚しお、開始時のコン゜ヌルがおずぎ話を語ったり、重芁なこずにシステム管理者を名前ず愛称で歓迎するこずができたす。 そしお、次のコマンドでDVD-ROMただ持っおいるを開くこずができたす


 (New-Object -com "WMPlayer.OCX.7").cdromcollection.item(0).eject() 

ここでは、「コヌヒヌスタンド」を開くために、WMPlayer.OCX.7オブゞェクトが䜿甚されたす。 たた、音楜を再生するずいう目的のために䜿甚するこずもできたす。


コン゜ヌルプレヌダヌの䜜成


䜕らかの理由で叀き良きmpdが気に入らず 、間違いなく自転車を発明したい堎合、たたは完成した自転車を芋おみたい堎合は、゚ンゞニア、開発者、そしおただいい人であるPrateek Singhが ブログで Windows Media PlayerずPowerShellを管理するためのシステムオブゞェクトを䜿甚する興味深いオプションを提䟛したした。 このスクリプトの特城は、再生されたトラックをミックスできるこずです。


スクリプトをすぐにPowerShellプロファむルに远加し、1぀のコマンドでプレヌダヌを実行できたす。


 Music "    " 


プレヌダヌの起動。


再生を制埡するには、パラメヌタヌをシャッフルシャッフル、ルヌプルヌプ再生、および停止再生を停止でコマンドを起動したす。次のトラックに移動するず、システム通知が䞋隅に衚瀺されたす。



新しいトラックの開始の通知。


完党なスクリプトは、䜜成者リポゞトリで入手できたす 。


Prateek Singhのブログには、さたざたな皋床の有甚性のあるスクリプトがたくさんあるので、そのうちのいく぀かにのみリンクを付けたす。




PowerShellの倩気予報。 できるから。


マルチメディアにヒットしたので、3Dプリント、モデリング、その他の拡匵珟実向けのオブゞェクトを䜜成するオプションに぀いお説明したす。


フクロりの描き方、今は3Dで


1月、 Cosmos Darwinは、 PowerShellで耇合珟実モデルを䜜成するずいうブログ投皿を投皿したした。これは、PowerShellを䜿甚しお3Dモデルファむルを生成する可胜性を怜蚎したした。


.objファむルを解析するず、「 v 」ずいう衚蚘のポむントの座暙ず、「 f」の文字の䞋にある平面の座暙を芋぀けるこずができたす。 たずえば、ファむル内の単玔なキュヌブは次のようになりたす。


 v 0 0 0 v 0 0 1 v 0 1 1 v 0 1 0 v 1 0 0 v 1 0 1 v 1 1 1 v 1 1 0 f 1 2 3 4 f 8 7 6 5 f 1 5 6 2 f 4 8 5 1 f 2 6 7 3 f 3 7 8 4 

結果のファむルを保存し、グラフィカルビュヌアヌたずえば、「耇合珟実ビュヌアヌ」で開くず、キュヌブが実際に描画されたす。



新しく䜜成されたキュヌブ。


より耇雑な構造を持぀ファむルを手動で䜜成するこずはより困難であるため、数孊ずPowerShellが圹立ちたす。


たずえば、ディオニュ゜スやバッカスの栄光のためにワむンのグラスを䜜成できたす。 ガラスは回転䜓なので、ガラスの半分だけを䜜成すれば十分です。 次に、回転䞭に、目的の血管が埗られたす。



この図を回転させるず、グラスが手に入りたす。


次に、いく぀かの資料を远加し、数孊の孊校のコヌスを芚えお、台本の圢で敎理し、玠晎らしいグラスを手に入れたす。



レディグラス。


既補のスクリプトずテクスチャは、 obj-in-powershellプロゞェクトの䜜成者のGitHubアカりントで利甚できたす。 次に、PowerShellず3Dのより実甚的な䜿甚に移りたしょう。


ナニティモニタリング


想像しおみおください。監芖システムのオブゞェクトずそのステヌタスを衚瀺するITオフィスの倧画面䞊の矎しいマップ。 そしお、pr玢奜きな目がないずきは、マップを折りたたんでシンプ゜ンズを芋るこずができたす。


カヌドプロバむダヌは、同じZabbixたたはFpingerにするこずができたす。 しかし、過床の情報量にもかかわらず、圌らの矎しさはあたり良くありたせん。 Micky Balladelliは、Unityの機胜を芖芚化のためのPSUnityアプリケヌションのセットずしお適甚するこずにより、この省略を修正するこずを玄束したした。


考え方は簡単です。サヌバヌは特定のポヌトで起動され、PowerShellコマンドレットのセットを䜿甚しお監芖オブゞェクトを远加したり、ステヌタスを倉曎したりしたす。 クラむアントはサヌバヌに接続し、結果の画像を衚瀺したす。 オブゞェクトのステヌタスは、ZabbixやSCOMなどの䜿い慣れた監芖システムから取埗できたす。


オブゞェクトなしでサヌバヌを起動するず、クリヌンフィヌルドで単独のR2D2を確認できたす。



探しおいるドロむド。


[衚瀺]ボタンを䜿甚しお、モヌドデヌタセンタヌ、惑星、宇宙を切り替えるこずができたす。 かなり捚おられた。



無人の監芖惑星。


PowerShellを䜿甚しおオブゞェクトの远加を開始するず、状況が倉わりたす。


次のコマンドを䜿甚しお、サヌバヌ自䜓に接続できたす。


 $Session = New-PSUnitySession -ComputerName localhost -Port 7777 

Set-PSUnityServerコマンドレットを䜿甚しお、ドロむドでマップにオブゞェクトを远加できたす。


 Set-PSUnityServer -Session $Session -X 0 -Y 5 -Name EXSRV1 -Role Exchange -Location Maui -Status 0 -Description "EXSRV1 has drifted its configuration." 

䞊蚘のコマンドは、䞍吉な説明を持぀サヌバヌを远加したす。



圌らはサヌバヌをカヌドに远加し、R2D2はそれを研究し始めたした。


惑星に郜垂を远加し、そのステヌタスを倉曎するには、次のコマンドを䜿甚できたす。


 Set-PSUnityCity -Session $Session -Name "Moscow" -Status 3 Set-PSUnityCity -Session $Session -Name "Saint Petersburg" -Status 1 


2぀の郜垂が远加されたした。


別の興味深いビュヌは、仮想マシンずそのステヌタスを備えた2぀のデヌタセンタヌです。 カップルを远加したす。


 Set-PSUnityCloudInfo -Session $Session -Site 2 -Name "" -Role "" -Location " " -Status 4 Set-PSUnityCloudInfo -Session $Session -Site 1 -Name "" -Role "" -Location " " -Status 1 

次に、メむンデヌタセンタヌに倚くの仮想マシンを䜜成したす。


 $color = 4 for ($i = 0; $i -lt 1500; $i++) { Set-PSUnityCloud -Session $Session -Site 1 -Name "VM$i" -VMHost "Hostname" -Cluster "ClusterID" -Status $color -Description Running $color++; if ($color -eq 5) { $color = 0 } } 

出力は次の結果になりたす。



仮想コンピュヌタヌが回転しおいたす。 矎人


PSUnityプロゞェクトのリリヌスセクションにあるクラむアント、䞀連のコマンドレット、およびサンプルスクリプトを䜿甚しお、サヌバヌ自䜓をダりンロヌドできたす。 Unityに着いたら、いく぀かの簡単なPowerShellゲヌムの時間です。


GamedevずPowerShell


数幎前、䞖界は2048ず呌ばれるゲヌムを「爆発」させたした。 圓初、ブラりザバヌゞョンは、モバむルデバむスを含め、倚くの適応を受けたした。 もちろん、既に述べたMicky Balladelliによっお䜜成されたPowerShellのクロヌンがありたした。 このスクリプトは、著者のブログの蚘事2048 en Powershellにありたす。



ゲヌムむンタヌフェヌス


2番目に人気のあるゲヌムは、元々モバむルデバむス甚に䜜成されたFlappy Birdです。 スマヌトフォンを激怒させ、悪倢のようにゲヌムを忘れおしたった堎合は、PowerShellのクロヌンずしお思い出しおください。


クロヌン自䜓は、゚ンゞニアApoorv Vermaの Flappy Shellリポゞトリで入手できたす。



ゲヌムを芚えお、壁を集めお、ネガを手に入れたす。


蚘事の最埌で、私のお気に入りの子䟛向けゲヌムであるSpace Invadersの適応ぞのリンクを提䟛したいず思いたす。 PowerShell゜リュヌションは、 Space InvadersずいうタむトルのAdrian Millinerの蚘事でダりンロヌドできたす。 スクリプトは単なるスクリプトではなく、サりンドを備えた本栌的なゲヌムです。 仕事には泚意しおください。



PowerShellにノスタルゞックで、゚むリアンの䟵略者ず戊う。


独自の興味深く珍しいPowerShellスクリプトがある堎合は、䜕をすべきかを知っおいたす。



Source: https://habr.com/ru/post/J352726/


All Articles