MR2オーナー吉田貴幸のブログ

MR2(SW20)オーナー吉田貴幸のブログ。仕事はITインフラエンジニア。愛車の記事とIT関連の情報を発信しています

【Raspberry Pi】Raspbian ダウンロード リンク | 日本のミラーサイト

f:id:takayuki-yoshida:20190803123820p:plain

 

はじめに

RaspberryPiのOS「Raspbian」のダウンロードサイトの紹介です。

公式サイトからダウンロードすると時間がかかるので、ミラーサイトからダウンロードした方が早いです。

 

公式サイト

www.raspberrypi.org

 

すべてのミラーサイト

www.raspbian.org

 

日本のミラーサイト

Raspbian

  • Raspbian Buster with desktop and recommended software

f:id:takayuki-yoshida:20190803123606p:plainhttp://ftp.jaist.ac.jp/pub/raspberrypi/raspbian_full/images/

 

  • Raspbian Buster with desktop

f:id:takayuki-yoshida:20190803123606p:plainhttp://ftp.jaist.ac.jp/pub/raspberrypi/raspbian/images/

 

  • Raspbian Buster Lite

f:id:takayuki-yoshida:20190803123606p:plainhttp://ftp.jaist.ac.jp/pub/raspberrypi/raspbian_lite/images/

NOOBS

  • NOOBS

f:id:takayuki-yoshida:20190803123443p:plainhttp://ftp.jaist.ac.jp/pub/raspberrypi/NOOBS/images/

 

  • NOOBS Lite

f:id:takayuki-yoshida:20190803123443p:plain http://ftp.jaist.ac.jp/pub/raspberrypi/NOOBS_lite/images/

 

 

参考

SDカードへの書き込み Rufus (ルーファス)

RaspbianイメージファイルをSDに書き込みするソフトです。こちらのリンクも記載しておきます。

rufus.ie

【Windows】MSIインストーラーでサイレントインストール 一部のコンポーネントのみを指定する方法

 

はじめに

社内PCにソフトウェアを配布ツール(SCCM)などで展開したい場合に、MSIインストーラー(.msiファイル)にサイレントインストールオプション(/passive)をつけて実行しますが、標準ではすべてのコンポーネントがインストールされてしまいます。

そこで余計なコンポーネントをインストールせず、一部だけインストールしたい場合に使えるMSIのiインストールオプションを紹介します。

 

すべてのコンポーネントをインストールする

まずは、サイレントインストールのオプションです。こちらの説明は省略します。

  • サイレントインストール

msiexec /i "msiインストーラーファイルパス" /passive

  • サイレント&再起動なしインストール

msiexec /i "msiインストーラーファイルパス" /passive /norestart

 

 

一部のコンポーネントのみをインストールする

続いて、一部のコンポーネントのみを指定してインストールする場合は、以下のインストールオプションを指定します。

サイレント&再起動なし(ADDLOCALオプション)

msiexec /i "msiインストーラーファイルパス" ADDLOCAL="インストールしたいコンポーネント名" /passive /norestart

 

ADDLOCALオプションで指定したインストールしたいコンポーネント名のみがインストールされます。指定しなかったコンポーネントはインストールされません。

さて、このインストールしたいコンポーネント名がわからない場合どうしたらよいか調べ方をご紹介します。

 

インストールしたいコンポーネント名の調べ方(Orca)

Windowsインストーラーの作成、変更を行う開発ツール「Orca」を使用してコンポーネント名を調べます。 

Orcaのインストール

Orcaは、windowsアプリ開発ツール「Windows 10 SDK」内に含まれますので、以下のサイトからダウンロードします。

Windows 10 SDK – Windows アプリ開発

 

ダウンロードしたインストーラーファイル(winsdksetup.exe)を実行します。画面の指示にしてがってインストールを完了してください。なお、winsdksetup.exeは、SDK群をダウンロードして「Windows Kits」フォルダに保存するのみです。

 

次に、インストール先の下記のフォルダに移動します。

(インストール先)Windows Kits\10\WindowsSDK\Installers

このフォルダの中に、「orca.msi」ファイルがありますので、これをインストールします。

 

Orcaでコンポーネント名を調べる 

インストールが完了したらorcaを起動します。起動後に、msiインストーラーをドラッグアンドドロップしてインストーラーファイルを読み込んでください。

 

次にOrcaの左側に表示されているTablesからFeatureを選択してください。すると右画面にコンポーネントの一覧が表示されます。

「Title」が手動でインストールしたときに表示されるコンポート名になります。

サイレントインストールで指定するのは「Feature」列に表示されている方になります。

(例)7zipインストーラーの場合

f:id:takayuki-yoshida:20190721122231p:plain

(例)この「Program」を指定した場合、LanguageFiles(表示名Location files)はインストールされません。

msiexec /i "msiインストーラーファイルパス" ADDLOCAL="Program" /passive /norestart

 

MST(Transformation Files)を使用したインストール

もう一つの方法をご紹介します。

Orcaを使用するとmsiファイルの修正が行えます。インストールオプションの値を直接修正してもよいのですが、パッケージソフトなどいろいろな事で修正するのが難しい場合があります。その場合は、msiインストーラーファイルは修正せず、インストールオプションの差分ファイルを作成して、これを指定してインストールすることで、コンポーネントの指定が出来ます。

 

MSTファイルの作成 

Orcaを起動して、msiインストーラーをドラッグアンドドロップしてインストーラーファイルを読み込んでください。

次にメニュー「Transform」-「New Transform」を選択します。

(例)7zipインストーラーの場合

f:id:takayuki-yoshida:20190721124507p:plain

 

 次にインストールコンポーネントの指定を行います。Orcaの左側に表示されているTablesからFeatureを選択します。

インストールしないコンポーネントを選択して、「Level」の値を「1」→「2」にします。

(例)7zipインストーラーの場合

f:id:takayuki-yoshida:20190721124934p:plain

次にメニュー「Transform」-「Generate Transform」を選択して、mstファイルを保存します。

(例)7zipインストーラーの場合

f:id:takayuki-yoshida:20190721125037p:plain

 

MSTファイルを指定したインストール方法 

ここで作成したMSTファイルを指定してインストールする場合は、以下のオプションを使用します

  • サイレント&再起動なしインストール(TRANSFORMSオプション)

msiexec /i "msiインストーラーファイルパス" TRANSFORMS="作成したmstファイルのパス" /passive /norestart

 

以上になります。

 

参考

Orca.exe - Windows applications | Microsoft Docs

Feature Table - Windows applications | Microsoft Docs

Windows 10 SDK – Windows アプリ開発

 

 

【Windows】Windowsのスクリプト学習は、スクリプトセンターを活用しよう!

 

はじめに

 

初めてシステム管理者になって、Windowsでスクリプトを使って自動化したい!スクリプトでPC管理を楽にしたい!と思って勉強する方々、結構いると思います。

最初にVBScriptで「Hello, World!」を表示とかで、サンプルコードを実行してみるとか、プログラミングの知識がなくても、なんとなく出来るんですよね。ですが、いまはネットに情報が多くて、何を信じてよいのか、ここから先、何をどうやって覚えていけばいいか分からなくなってしまい、挫折してしまうこともあるかと思います。そこで、ぜひ見ていただきたいサイトのご紹介です。

 

スクリプトセンター

私自身もどうやってスクリプトを勉強していったかと振り返ると、マイクロソフトの「スクリプトセンター」を見て、サンプルスクリプトを探してきて、トライアンドエラーで、サンプルコートを実行して、デバックして、カスタマイズしてを繰り返して覚えてきました。情報がカテゴリーから検索できるので、探しやすくてためになるサイトです。このサイトは今後も残してほしい!(マイクロソフトさんへ)

 

IT プロフェッショナル向けスクリプト リソース

こちらがスクリプトセンターの検索ページのリンクです。

gallery.technet.microsoft.com

 

このページから、「カテゴリー」で検索範囲をフィルターできて、ユースケースで検索が出来るので、システム管理者が知りたい、やりたいことから探しやすくなっています。しかも日本語化されています。

ぜひ、こちらのサイトを活用してWindows管理の自動化、業務の効率化にお役立てください。

 

あ、話がそれますが。スクリプトセンターによく出てくる、このキャラクターはすごく昔からいるんですよね。

 f:id:takayuki-yoshida:20190719150428g:plain

Dr. Scripto

 

 その他リンク

@ScriptingGuys さんのTwitterアカウントもあります。

twitter.com

 

スクリプトセンタートップページ

devblogs.microsoft.com

 

 

 

 

【Windows】[バッチ] ファイル名に日付/時刻を使用する

 

はじめに

バッチ(.bat)で、ログの出力先などリダイレクト先に「日付」や「時刻」をつけて保存したいときに使えるサンプルコートです。

いまさらですが、よく使うのでブログに乗せておきます。

 

説明はサンプルコート内にコメントしていますので、バッチファイルの書き方などは、こちらのページを参照ください。

www.atmarkit.co.jp

 

サンプルコード

@echo off
REM 日付の取得
REM 年
set yyyy=%date:~0,4%
REM 月
set mm=%date:~5,2%
REM 日
set dd=%date:~8,2%

REM 時刻の取得
set time_wk=%time: =0%
REM 時
set hh=%time_wk:~0,2%
REM 分
set mn=%time_wk:~3,2%
REM 秒
set ss=%time_wk:~6,2%


REM 日付の表示
REM 「yyyymmdd」で表示
Echo %yyyy%%mm%%dd%

REM 「yyyymmddhhmmss」で表示
echo %yyyy%%mm%%dd%%hh%%mn%%ss%

REM 「yyyymmdd_hhmmss」で表示
echo %yyyy%%mm%%dd%_%hh%%mn%%ss%

 

【システム管理】 グローバルIPアドレス確認ページ

 

はじめに

インターネットアクセスに使用するグローバルIPアドレスが確認できるページを作りました。確認くんなどありますが、自分もよく使うので学習もかねて作成しました。Amazon Lightsailで動作しています。

 

URL

IP確認: http://access.startpassion.life

 

項目説明

  • REMOTE_ADDR アクセス元IPアドレス(あなたのグローバルIPアドレスです)
  • REMOTE_PORT アクセス元のポート番号
  • SERVER_NAME アクセス先のサーバ名
  • SERVER_PORT アクセス先のポート番号
  • SERVER_PROTOCOL プロトコル名とバージョン
  • HTTP_USER_AGENT ユーザエージェント情報

f:id:takayuki-yoshida:20190701005240p:plain

 

【Windows】[VBScript] WQL (WMI Query Language) は ODRY BY が使えない。ADOを使って解決しましょう。

 

はじめに

VBScriptから、WQL (WMI Query Language) を使用した際、結果の並び順をソートしたいので、SQL分に 'oder by' をつけて実行すると、エラーになってしまいます。
なんと、WQLでは'oder by'がサポートされていないんです。
結果を並び替えるこなんて普通にあると思うのですが、すごく使いずらい。

そこで、ADO(ActiveX Data Objects)を使用したソートのサンプルを掲載します。

また、フィルターのサンプルも掲載します。
WQLで'WHERE'条件を指定せず、あとからADOでフィルターすることが出来るので、if文を多用したり、再度WQLを実行せず条件抽出が可能です。

  • WQLで使用できるキーワードはこちら

docs.microsoft.com

 

ADOを使用して、WQLの結果をソートする

拡張子に「.vbs」つけて下記のコードを保存してください。
使い方は、ソースにコメントを記載しているので、そちらを参照してください。

'//変数宣言
Option Explicit

Dim oClassSet
Dim oClass
Dim oLocator
Dim oService
Dim sMesStr
Dim oDataset

'////////////////////////////////////////////////////////////////////////////
'//WQLサンプルコード
'//こちらのサイトを使用させていただきました → http://www.wmifun.net/sample/win32_useraccount.html

'ローカルコンピュータに接続する。
Set oLocator = WScript.CreateObject("WbemScripting.SWbemLocator")
Set oService = oLocator.ConnectServer
'クエリー条件を WQL にて指定する。
Set oClassSet = oService.ExecQuery("Select * From Win32_UserAccount")

'////////////////////////////////////////////////////////////////////////////
'//ここからがADOを使用したソートのサンプルです
'//ADOのプロパティ '//https://docs.microsoft.com/ja-jp/sql/ado/reference/ado-api/ado-properties?view=sql-server-2017 '//DataTypeEnum '//https://docs.microsoft.com/ja-jp/sql/ado/reference/ado-api/datatypeenum?view=sql-server-2017 '//ADO定数 const adVarChar = 200
'//結果を保存するためのテーブルに、項目名、データ型を設定します '//項目名は英字のみです Set oDataset = CreateObject("ADOR.Recordset") oDataset.Fields.Append "Name",adVarChar,255 oDataset.Fields.Append "SID",adVarChar,255 oDataset.Open '//テーブルにWQL結果データをテーブルに格納 For Each oClass In oClassSet oDataset.AddNew oDataset("Name") = oClass.Name oDataset("SID") = oClass.SID oDataset.Update Next '//データの並び替え '//Sort プロパティ (ADO) '//https://docs.microsoft.com/ja-jp/office/client-developer/access/desktop-database-reference/sort-property-ado '//項目名 ASC | DESC '//SIDを降順で並び替える場合
oDataset.Sort = "SID DESC" '//データの抽出のサンプルです。これはソートとは関係ないので省略可です。 '//Filter プロパティ (ADO) '//https://docs.microsoft.com/ja-jp/office/client-developer/access/desktop-database-reference/filter-property-ado '//フィルターを解除するにはクリアする '//oDataset.Filter = ""
'//名前をワイルドカードでフィルターする場合
oDataset.Filter = "Name like 'a%'" '//結果出力
'//並び替えは終わっているので最初からレコードを取得すればOKです。
oDataset.MoveFirst Do Until oDataset.EOF WScript.Echo oDataset.Fields.Item("Name") & vbTab & _ oDataset.Fields.Item("SID") oDataset.MoveNext Loop oDataset.close '///////////////////////////////////////////////////////////////////////////// '使用した各種オブジェクトを後片付けする。 Set oClassSet = Nothing Set oClass = Nothing Set oService = Nothing Set oLocator = Nothing Set oDataset = Nothing

 

参考記事

サンプルコードの一部は、こちらのサイトから引用させていただきました。

www.wmifun.net


 

【Windows】[VBScript] CDO(Collaboration Data Objects)でメールを送信する

 

はじめに

CDO.Messageを使用して、VBScriptでメール送信を行う方法です。Windows標準機能のみでメールを送信できるので、OS環境に依存せず使用することが出来ます。

※メール送信に使用するSMTPサーバーは別途必要になります。

 

VBScriptでメールを送信する

  • mailsend.vbs
Set oMessage = CreateObject("CDO.Message")

'//差出人 oMessage.From = "username@test.com" '//宛先 複数の場合はセミコロンで区切る
oMessage.To = "username@test.com"
oMessage.CC = "username@test.com"
oMessage.BCC = "username@test.com"
'//添付ファイル
oMessage.AddAttachment = "添付するファイルをフルパスで指定"
'///件名
oMessage.Subject = "テストメールです" '//本文(テキスト形式)
oMessage.TextBody = "テストメールです。"& vbCRLF & "改行は vbCRLFを使用します"
'//メール送信設定
'//1:ローカルSMTPサービスのピックアップ・ディレクトリにメールを配置する(デフォルトの動作)
'//2:SMTPポートに接続して送信する
'//3:OLE DBを利用してローカルのExchangeに接続する oMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 '//SMTPサーバー名
oMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtpservername"
'//ポート番号
oMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
'//設定更新
oMessage.Configuration.Fields.Update

'//メールヘッダーの設定

'//設定は省略可能です。
'//メーラー
oMessage.Fields("urn:schemas:mailheader:X-Mailer") = "vbscript mail"
'//重要度
oMessage.objMail.Fields("urn:schemas:mailheader:Importance") = "High"
oMessage.objMail.Fields("urn:schemas:mailheader:Priority") = 1
oMessage.Fields("urn:schemas:mailheader:X-Priority") = 1
oMessage.Fields("urn:schemas:mailheader:X-MsMail-Priority") = "High"
oMessage.Fields.update

'//メール送信実行
oMessage.Send Set oMessage = Nothing

その他設定

添付ファイル

  • 添付ファイルは以下を追加する

'//添付ファイル
oMessage.AddAttachment "C:\Scripts\Output.txt"

 

HTML形式

  • メールをHTML形式で作成する場合は、oMessage.TextBody の部分をoMessage.HTMLBody にしてHTML形式で記載する
  • 暗号化通信(SSL)を使用する場合は、メール送信設定に以下を追加する
oMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl")  = True or Flase

 

SMTPサーバー認証

  • SMTPサーバー認証は、メール送信設定に以下を追加する
oMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1(Basic認証) or 2(NTLM認証)
oMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "ユーザー名"
oMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "パスワード"
oMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 180

 

 

参考記事

gallery.technet.microsoft.com

 

www.atmarkit.co.jp