Win版SSH

Windowsでlinuxコマンドを使う

最近、PowerShellを使う機会があり、マイクロソフトらしくないな、と感じたばかりでしたが、Windows10では、ssh が使えることを知りました。

WindowsとLinuxの混在環境が標準で扱いやすく――Windows 10のLinuxサポート最新情報

普段、派遣先で使っているパソコンは、Windows7 pro なので、残念ながら入ってません。しかし、Windows10をインストールしたパソコンで試したところ、確かに使えました。

このsshはプロ用かな

昔のマイクロソフト製品には、telnetが入っていて、たまに、DOS窓でSolarisに接続したりしてたのですが、ここ数年はできなくなっていました。sshが使えるようになったので、また、DOS窓でlinuxに接続できる、ということでしょう。

そういえば、CentOSやUbuntuにも、telnetは入っておらず、sshを使ってます。linuxサポートというより、最近の傾向にあわせただけとも思えますが。しかし、GUIが基本のWindowsで、DOS窓で使うコマンドは目立たないだけに、プロ用、ということでしょうね。

AccessのVBAは難しい

1. Accessは使ってない

私自身、Excelはかなり使える、と思っていますが、Accessはいまいちです。SQLをある程度使えるので、クエリーをSQLで考えられる分、幅は広いとは思いますが、フォームやレポートを使っている訳ではありません。

Excelは、経理に近い仕事や、その仕事でサーバーのDBのメンテをやったことで鍛えれらましたが、Accessは経験がありませんでした。

2. VBAも抵抗感が

ExcelでVBAを初めて使ったのは、2000年問題で騒がれていた時期だったと思います。それ以来、いろいろと使ってきました。あれは、単純な操作をボタン1つでできるようにする機能として、重宝させてもらいました。

Accessでも、同じようにVBAが使えます。というか、Webページのようなフォームを作ろうとしたら、VBAなしでは組めません。よく後輩には、ボタン1つで済むようなインターフェースを、なんて言ってたので、
Accessのフォームでもそう言った覚えがあります。同じものを自分で作ろうとして、大変だ、と思ったのは後輩に秘密にしてました。

標準の機能でできそうでできない、フォームのあのインターフェースはなんとかしほしい。今でも、どう作ると短時間で済むのかわからない。

3.今回はなんとか

今回、AccessのVBAを使って、フォームを作成しました。指定のIDのデータを一式表示するボタンと、そのフラグをFalseからTrueにするボタンの2つ、といういたってシンプルなものです。

このボタン、VBA以外は関連付けできそうにありませんでした。ということで、コードを書き始めたのですが、問題が、

xxxx = rs!金額(税込み).value 

が書けない。
つまり、Recordsetでデータベースから取得してデータの要素の1つ「金額(税込み)」は、指定できませんでした。指定すると、全角の「)」が、半角の「)」に自動変換されます。同様に、全角の数字が付いているものもダメでした。

VBAの良さは、漢字でいろいろ書ける点ですが、この辺は難しい。いろいろと調べたところ、配列に入れることで解決できました。

4.結論

やっぱり、Accessは難しい。

派遣会社からの連絡

派遣会社からの連絡

ずっと前に登録して、すっかり忘れていた派遣会社から、最近、仕事の案内の連絡が入りました。エンジニアとして、派遣を受けてみませんか、という内容です。私にそんな話が回ってくるとは、世の中、よっぽど人手不足なのかも。

この派遣会社に登録した際、スキルに、C言語を書いてしまったのが、ちょっと悔やまれます。今回は、これを見て、連絡してきた、とのことでした。

C言語の仕事

たぶん、C言語は今でも組めると思いますが、今どきC言語と言ったら、Objective-C、C#。それは使えません。そんな話をしていたら、組み込みのプログラム開発の仕事だそうです。そういえば、そっちの分野もあったんですね。時々、ハローワークの求人でも見かけます。

この組み込み系は、難しい割りに給料が安い、という仕事の典型です。若い人は、敬遠するでしょうね。昔いっしょに働いたエンジニアは、C言語で作ったプログラムをアセンブリにして解析し、デジタルカウンターで測定して最適化していました。1チップマイコンのインターフェースは独特のスキルが必要です。

給料が安いといえば

最近知ったのですが、スキルさえあれば、今、東京では月60万円(フリーランスなのでボーナスなし)で働けるそうです。そんな時代に、月20万円でプログラマーをやる若い人はいないでしょう。

ちなみに、山形市内のプログラマーの求人票には、15万円から25万円というのもありました。
月15万円でプログラマーとして働く人がほんとうにいたら、こんな先輩ですが、ぜひ転職を勧めたい。

迷惑メール

派遣先の大学のメール環境がOffice365に移ったのが8月なので、もうすぐ3ケ月が経とうとしています。しかし、まだまだメールについての問い合わせが来ます。大学からのメールは、学生生活に欠かせない機能なので、使えない、という訳にはいかないからでしょう。

Office365のメールには、迷惑メールを除外する機能があり、大学のように組織で登録すると、管理者が迷惑メールをチェックできます。そして、除外しなくても良いメールを除外から開放したり、メールの発信者を安全な発信者として登録できます。

ここのところずっと迷惑メールを監視しているのでが、実にたくさんの迷惑メールが届いています。特にフィッシングメールの数には驚かされます。しかも、この内容が本物と間違いそうになるくらいのクオリティ。発信元がロリポップでなければ、私でもひっかかりそうと思えるくらい。

こんなのを見ると、一年を経たずにフィッシングメールでいっぱいになりそうでプロバイダーのメールアドレスは怖くて使えません。メールアドレスは、こういった比較的安全なとこのがいいかな、なんて考えてます。

PowerShell使ってます

派遣先の大学でマイクロソフトのOffice365メールを使うことになり、その設定でowerShellを使う必要がありました。

ちなみに私は、PowerShellを使うのは、今回が初めてです。ネットで多少調べたくらいですが、DOSのバッチファイルよりも、UNIXのシェルスクリプトといったところでしょうか。マイクロソフトらしくない機能、というのが第一印象です。

なお、Office365でやっているのは、URLを指定し、そのサイトに対してコマンドを発行する機能のようで、接続に認証が必要です。当初、派遣先がサポートを依頼している会社からもらってマニュアルでは、認証はGUIなWindowからキーボードで入力が必要で不便でした。

そこで、その辺も含めてスクリプトしたいと思い、ネットで調べると簡単に見つけられます。きっと、同じことを考えているエンジニアが調べているのでしょう。このサイトで紹介されていたコマンドをそのまま使わせてもらいました。

下記のスクリプトは、Office365のアカウントに登録した監査ログ関係の設定が、正しく設定されていることをチェックするスクリプトです。

#
$Email = "<<ここにOffice365のメールアドレスを記載>>"
#
Write-Host "監査ログの設定 ($Eail)確認"
#$UserCredential = Get-Credential
$password = ConvertTo-SecureString "<<認証アカウントのパスワード>>" -asplaintext -force
$UserCredential = New-Object System.Management.Automation.PsCredential "<<認証に使うアカウント>>",$password
$Session = New-PSSession  -ConfigurationName  Microsoft.Exchange  -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection
Import-PSSession $Session
#Get-Mailbox $Email -Filter {RecipientTypeDetails -eq "UserMailbox"} | Set-Mailbox -AuditEnabled $true
#
#Get-Mailbox $Email -Filter {RecipientTypeDetails -eq "UserMailbox"} | Set-Mailbox -AuditOwner @{Add="MailboxLogin","HardDelete","SoftDelete","Create","MoveToDeletedItems","Move","Update"}
#
Get-Mailbox $Email -Filter {RecipientTypeDetails -eq "UserMailbox"} | Export-csv -path <>
Write-Host "CSVファイルを出力しました"

今どきのWindows Server 管理者や、Azureの保守担当者は、こういったスクリプトで仕事をやっているそうです。LinuxというかUNIXのやり方に寄ってきた、というのか、それともGUIの管理ツールを作るのが面倒になったのか。

PowerShellによる管理って…

派遣先の大学でOffice365のメールに移行してから、新規に登録するアカウントの設定にPowerShellを使うことになりました。

初めて使った時は、コマンドプロンプトに似たPowerShellの画面に全て打ち込んだので大変だったのですが、次からはスクリプトに組んで実行しているので、それほどではありません。面倒に思っていた認証のためのパスワードも、今日、スクリプトに埋め込んだので、次からはもっと簡単になる予定です。

このPowerShellですが、Microsoftらしくないなと感じてます。昔は、UNIXはターミナルから操作するのが基本で、各種設定をスクリプトで用意するのが一般的でした。それに対してMicrosoftのサーバーは、GUIから設定するのがほとんどでした。

それが数年前には、Linuxの設定のほとんどがGUIからできるようになり、便利になったと思っていました。そうしたら、Microsoftがこんなコマンドベースの管理ツールを準備してくるとは。

まあ、GUIの管理ツールが増えたとはいえ、Linuxのサーバー管理は、CUIが基本なので、管理者としてはCUIなアプリの方が使いやすいのかな。