ラベル script の投稿を表示しています。 すべての投稿を表示
ラベル script の投稿を表示しています。 すべての投稿を表示

2022/04/28

[Sample Script]スケジュールされたタスクをコマンドラインから即時実行して終わるまで待つ

「準備完了」状態のタスクを即時実行して、完了するまで待つPowerShell スクリプトを作ってみた。 「キューに挿入されました」状態も即時実行。「実行中」の場合は、完了するまで待つ。「無効」のときは何にもしない。タスクスケジューラ(taskschd.msc)でタスクを右クリックして「実行する」をクリックして、終わるまで待っているのと同じことをする。

使い方:

.\runtask.ps1 "タスク名" "タスクパス"

※タスクパスは(半角の)¥終わりで。ルートは"¥" 


2018/12/13

Windows Scripting: Windows Update をスクリプトから(WindowsUpdateProvider 版)

(12/14 追記:より改善したコード SearchAndInstallUpdate.ps1 を TechNet スクリプト センターに公開しました。一番下の 12/14 の追記を参照↓)

Windows Server 2019 (LTSC) の Server Core および Windows Server, Semi-Annual Channel (SAC、ver 1709 以降)での利用を想定した、Windows Update スクリプト CheckandInstallUpdates.ps1 を作成してみました。Sconfig (サーバー構成ユーティリティ)の「6) 更新プログラムのダウンロードとインストール」は進捗状況がわかりにくかったので。加えて、書籍「IT プロフェッショナル向け Windows トラブル解決コマンド&テクニック集」の訂正も。

8 年以上前に Windows Update をスクリプト(VBScript や PowerShell)から実行するスクリプトを紹介しましたが...

2018/08/06

インストール済みの Office 2013/2016 を識別できるかもしれないスクリプト(注:テストは不十分)

インストールされている Office 2013 および Office 2016 を検出しようと思って作ったスクリプト「OfficeMsiOrC2r.ps1」。

(こ、こいつ動くぞ→)

クイック実行(Click To Run、C2R)かWindowsインストーラー(MSI)か、32 ビット Office か 64 ビット Office かを識別しようとがんばったもの)。

ちゃんと動かないかもしれないので、あくまでも参考として。無保証。

2018/08/01

インストール済みの .NET Framework バージョンを識別するスクリプト (v2)

(※8/2 追記:適当に書いたやつを ScriptCenterにアップしたので、その後、もろもろの修正版 Version 2.1 に差し替えました)

以下のドキュメントに説明されていることを、PowerShell スクリプト(get-dotnetver.ps1)にしてみた。.NET Framework 4.5 以降の出力結果の表現は、以下のドキュメントのママ。.NET Framework 1.0 はどうなっているのかよくわからないので省略。

How to: Determine which .NET Framework versions are installed
 [URL] https://docs.microsoft.com/en-us/dotnet/framework/migration-guide/how-to-determine-which-versions-are-installed 

Get-DotNetVer.ps1 (8/2 Version 2.1)のダウンロードはこちらから。

TechNet Script Center > Determine which .NET Framework versions are installed by PowerShell (※08/02 に修正版 v2.0 に更新)


.NET Framework のサポートのライフサイクルについてはこちらで確認。
Lifecycle FAQ -- .NET Framework 
[URL] https://support.microsoft.com/en-us/help/17455/  

8/2 追記)
.NET Framework 4.5 以降がインストールされているときの .NET Framework 2-4 のバージョン 4 の出力は意味がないので、これを消すように修正版 v2.1 を ScriptCenter にアップしました。

注:.NET Framework 4.0 と .NET Framework 1.0/1.1 の PC でどうなるかテストしてません。いずれもサポート終了バージョンなので、知りません。


2015/06/30

Windows Update の年間スケジュールを取得するスクリプト

毎月恒例の Windows Update は、日本時間では第二火曜日(Patch Tuesday)の翌日。


これをスクリプトで取得するとしたら...

2014/07/03

メモ: Windows のコマンド プロンプトで wget のようなこと (ツール不使用)

Windows のコマンド プロンプトしか利用できない環境でインターネットからバイナリ ファイルをダウンロードする方法のメモ。自分用のメモですが、参考になれば...

要は、Server Core や Hyper-V Server、システム回復環境(Windows RE)、Windows PEなどで、特別なツールは使用せずに UNIX や Linux の wget のようなことをしたいってこと。※本当は、Windows RE や Windows PE (カスタマイズなしの) でやりたかったんですけど、そちらは断念。

Windows PowerShell が利用できる場合...

2011/02/08

バックアップを開始したはいいけど、眠くなってしまったら...

先日、久しぶりにメインの Windows 7マシンのフル バックアップを実行しました。夕食時にバックアップを開始しましたが、なかなか終わる気配はありません。もう眠くなってきました。でも、このまま放っておくと、電気代がもったいないです。そこで、いそいでスクリプトを作成し、バックアップが終了したらシャットダウンするように仕込んでみました。

2010/12/15

昨日公開?: MVP が伝授するスクリプト作成のヒントとコツ

私のお気に入り (スクリプトのパクリ元) のマイクロソフト スクリプト センターに「MVP が伝授するスクリプト作成のヒントとコツ」というページが追加されました。こちらの投稿 (テキスト ベースのイベント ビューアー ) のスクリプト (英語版にしたやつ) が紹介されています。紹介っていっても、自薦ですけど。

2010/10/26

PowerShell Management Library for Hyper-Vのインストールメモ

CodePrexで公開されているHyper-V向けのPowerShell管理ライブラリ「PowerShell Management Library for Hyper-V」ですが、インストールに悩む人も多いかと思うので、メモっておきます。あくまでも私なりの方法です。R2 Gold (Jan 18 2010) バージョンの方法です。R2 Goldというと正式版のように見えますが、Beta 版です。もしかしたら永遠の Beta かも。

PowerShell Management Library for Hyper-V
http://pshyperv.codeplex.com/releases/view/38769

2010/10/19

Windows Virtual PC でアプリを閉じてから仮想マシンを休止するまでの時間を調整する

Windows Virtual PCの仮想マシン (Windows XP Mode など) をアプリケーション統合モードで利用している場合、ウィンドウ右上の[×]をクリックするなどしてアプリケーション ウィンドウを閉じても、仮想マシンはバックグランドで動作し続けます。再びスタートメニューから仮想マシンのアプリケーションを起動すると、仮想マシンは既に動作しているのですぐにアプリケーションも起動します。ただし、アプリケーション ウィンドウを閉じて、しばらく放っておくと、仮想マシンは勝手にというか、自動的に「休止状態」になります。

時計とにらめっこして注意深く観察してみればわかりますが、アプリケーション ウィンドウを閉じてから仮想マシンが休止状態になるまでの時間は、既定で5分 (300秒)です。この時間、調整したくないですか? あるいは、仮想マシンを休止させずに動かし続けたくはないですか? 「既定で5分」と言ったからには、この時間は調整できます。

2010/10/12

VHD オフライン パッチ スクリプト: patch2vhd.vbs

自作スクリプト patch2vhd.vbs は、Windows 7 および Windows Server 2008 R2 の標準コマンド (DISKPART および DISM) を利用して、仮想マシン (Windows 7 または Windows Server 2008 R2 ゲストのみ対応) の VHD に更新プログラムをオフラインでインストールスクリプトです。使い方など詳しくは、COMPUTERWORLD BLOG の本日の投稿をご覧ください。

なお、このスクリプトは一般向きではありません。DISKPART と DISM によるオフラインパッチを手作業で (マニュアルで) できるという人が、それを自動化したい場合に限り参考にしてください。スクリプトを眺めるだけでも、いろいろと勉強になるところがあるかもしれません (サブフォルダーのための再帰とか)。

[patch2vhd.vbs]

2010/07/28

レガシー Windows にも Fix it (KB2286198: Windows シェルの脆弱性により、リモートでコードが実行される)

(Fix It を適用した Windows XP SP3 のスタート メニュー)
マイクロソフトが 7 月 17 日に公開した「マイクロソフト セキュリティ アドバイザリ (2286198) - Windows シェルの脆弱性により、リモートでコードが実行される (http://www.microsoft.com/japan/technet/security/advisory/2286198.mspx)」は、パッチが未提供のため、回避策を実施しないとゼロデイ攻撃を受ける危険があります。既に攻撃の実証コードも公開されていることから、セキュリティ パッチが提供されるまで待っていられない状況かもしれません。Windows Update の次の定例更新 (日本時間の 11 ) に間に合うかどうかわかりませんが、日本においてはお盆休みの時期が近づいていることも気になります。

2010/07/08

Hyper-V & Windows Update 自動化スクリプトのまとめ (+α)

一連の Windows Update および Hyper-V スクリプト シリーズをまとめておきます。

  1. Hyper-V Scripting: テキスト ベースの Hyper-V マネージャー http://yamanxworld.blogspot.com/2010/06/hyper-v-server-core.html
  2. Hyper-V Scripting: “実行中”の仮想マシン=ゲスト OS が“実行中”ではないhttp://yamanxworld.blogspot.com/2010/07/hyper-v-scripting-os.html
  3. Windows Scripting: Windows Update をスクリプトから ( WindowsUpdate.vbs ) http://yamanxworld.blogspot.com/2010/07/windows-scripting-windows-update.html
  4. Windows Scripting: Windows Update をスクリプトから ( WindowsUpdate.ps1 ) http://yamanxworld.blogspot.com/2010/07/windows-scripting-windows-update_05.html
  5. Windows Scripting: Windows Update をリモートから ( PowerShell Remoting は NG ) http://yamanxworld.blogspot.com/2010/07/windows-scripting-windows-update_06.html
  6. Windows Scripting: Windows Update をリモートから ( WinRM/WinRS も NG )http://yamanxworld.blogspot.com/2010/07/windows-scripting-windows-update_592.html
  7. Windows & Hyper-V Scripting: Windows Update をスクリプトから ( ゲスト OS のスタートアップに仕込む) http://yamanxworld.blogspot.com/2010/07/windows-hyper-v-scripting-windows_07.html
  8. Windows & Hyper-V Scripting: Windows Update スクリプトのバリエーションhttp://yamanxworld.blogspot.com/2010/07/windows-hyper-v-scripting-windows.html
とりあえず、7 で当初の目的 (めったに起動しない仮想マシンの更新を自動化する) は達成できたわけですが、Windows Update による更新で問題があった場合の対処も考えておく必要がありそうです。たとえば、Windows Update 後に起動できなくなる、再起動を繰り返すなどの問題が出た場合です。物理マシンの場合は、トラブルシューティングは面倒ですが、仮想マシンの場合、スナップショットという便利な機能を利用できます。

2010/07/07

Windows & Hyper-V Scripting: Windows Update スクリプトのバリエーション

WindowsUpdate.vbs (PowerShell がお好きな場合は WindowsUpdate.ps1) をコンピューターのスタートアップ スクリプトに仕込む方法は、仮想マシンに限らず、物理マシンでも、Windows を最新状態に維持する手っ取り早い方法として、いろいろ応用できそうです。

Windows & Hyper-V Scripting: Windows Update をスクリプトから ( ゲスト OS のスタートアップに仕込む)

Windows Update Agent (WUA) API は、リモートはお嫌いのようなので、初心(!?)に返って、昔ながらの手法でやってみようと思います。仮想マシンのコンピューターのスタートアップ スクリプトに WindowsUpdate.vbs (WindowsUpdate.vbs 内のシャットダウンや再起動コードは削除) を仕込んでおき、ローカルで実行させる方法です。

2010/07/06

Windows Scripting: Windows Update をリモートから ( WinRM/WinRS も NG )

PowerShell Remoting が失敗したので、もう一度、WSH スクリプトの WindowsUpdate.vbs に戻り、今度は Windows リモート シェル (WinRS) で試してみます。

Windows Scripting: Windows Update をリモートから ( PowerShell Remoting は NG )

前回、PowerShell で動く Windows Update スクリプト (WindowsUpdate.ps1) を紹介しました。今回は、これを PowerShell 2.0 の新機能である PowerShell Remoting と組み合わせてみます。これが成功すれば、Hyper-V ホストの仮想マシンを起動して、更新し、シャットダウンまたは保存するというタスクをホスト側からスクリプトで自動化できます。しかし、結論から言うと、挫折しました。

2010/07/05

Windows Scripting: Windows Update をスクリプトから ( WindowsUpdate.ps1 )

今回は、前回の Windows Update 用 WSH スクリプト WindowsUpdate.vbs の、PowerShell スクリプト版 Windows Update.ps1 です。

2010/07/02

Windows Scripting: Windows Update をスクリプトから ( WindowsUpdate.vbs )

最近、久しぶりにスクリプトづいています。なぜかというと、やりたいことがあるからです。

今抱えている課題は、テストや評価のために Hyper-V ホスト上に作成した多数の仮想マシンの更新 (Windows Update) を自動化できないかということ。前回の投稿でゲスト OS の起動完了をホスト側からスクリプトで監視することも、この課題に関係しています。

仮想マシン A を開始 → Windows Update 実行 → ゲスト OS 再起動 → 仮想マシン A をシャットダウン → 仮想マシン B を開始 → Windows Update を実行...

という一連の作業 (現在は手作業) をスクリプトで自動化したいと考えています。うまくいったら、COMPUTERWORLD.JP のブログでまとめるつもり。(←大人の事情でもう存在しません) こちらのブログでは、試行錯誤の痕跡を残しておきます。

2010/07/01

Hyper-V Scripting: “実行中”の仮想マシン=ゲスト OS が“実行中”ではない

ここ最近、Hyper-V の仮想マシンのゲスト OS が立ち上がっているかどうかをどうやって調べればよいか悩んでいます。仮想マシンを起動すると、状態が“実行中”になります。この仮想マシンの状態は前回の投稿で紹介したスクリプトのように、Hyper-V WMI Provider (http://msdn.microsoft.com/en-us/library/cc136992(VS.85).aspxhttps://docs.microsoft.com/ja-jp/previous-versions/windows/desktop/virtual/windows-virtualization-portal) の Msvm_ComputerSystem クラスにある EnabledState プロパティで取得できます。しかし、EnabledState プロパティでは、仮想マシンがオンであることがわかっても、ゲスト OS の状態まではわかりません。たとえば、OS なしの仮想マシンや起動障害のある仮想マシンが途中で止まっていたとしても、 EnabledState プロパティは実行中 (2) を示します。