WSUSで苦しむ

WSUSサーバを移行したのですが・・・
移行も大変だったけどそのあとも大変。
クライアントからの接続がうまくいかないのだがどこが悪いかわからない。
windowsupdate.logを読みたいのだが最近のwindowsはPowerShellから翻訳しなければならない。
これもオンプレミスではたいへんなのだが苦労してログを取ると日本語は文字化け。
https://f-journey.com/it/convert_windowsupdate-log_from_etlfiles/#comment-139

からのスクリプトを少し検証して走らせるとうまく行きました。感謝です。

下のでwindows10、WS2016 では動作しました。ログの日本語を読むといろいろエラーでサーバの過負荷なのでインターネットに行かないのグループポリシーとWSUSプールのメモリー制限なしの設定でうまく行きました。

OLE DB

詳しくはわかりませんが何年か前から
Microsoft OLE DB Provider for SQL Server(SQLOLEDB) 
はもうサポートしないから新規開発に使用するのはやめてほしい
とMicrosoftがアナウンスしているが今でも使えています
でも突然消えると困るので調べてみると
代わりに
Microsoft OLE DB Driver for SQL Server(MSOLEDBSQL) 
をリリースしてるようです
問題はSQLOLEDBはOSに付属してるので何も考えずに良かったけどMSOLEDBは別途インスト必要らしいです
挙動も少し違うようで安全性は向上する、計算列の操作が今まで甘かったけど今度は厳しく行きますよ という感じのことがアナウンスされてた
今日開発機にインストして使ってみましたがaccdbは特に問題なく動きました。
OSは64bitですがAccessが32なのでx86をインストだろうと思ったらX64でした
接続文字もSQLOLEDBをMSOLEDBSQLに書き換えるだけで良いようです
アプリ配布先にはインストされてないのでパッケージ作るとき困るけどSQLOLEDB消えてから考えよう

WSUSをSSLに

wsusをSSL通信にしたのが大変難しかった

まず証明書のインスト

イントラネット用なのでADの自局証明機関で発行 登録のwebサービスを追加したら楽になった。証明書を取得しIISマネージャーで登録しようとしたら消えてしまう。原因不明、何度かやっていたらなぜか消えなくなった。フレンドリー名はサイト名と同じにしないとブラウザに別サイトだと怒られる。

IISマネージャーでサイト全体のSSL設定で必要にチェックを入れると通信できない。サイトを展開してClientWebServiceなど個別にチェックを入れる

https://docs.microsoft.com/ja-jp/security-updates/windowsupdateservices/18128236

wsusのマネージャーを見るとhttpのポートが表示されているが通信をキャプチャするとhttpsのポートでSSL通信になっているのでもうこれで良しとしたい

今日は無題

カラム数が100を超えるようなテーブルを扱う際、あるカラム名が存在するのかどうか確認するのが面倒なので

Public Function isnullColumn(paramColumnName As String, paramTableName As String) As Boolean

なるものを・・バックエンドはMSSQL

Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset

cn.ConnectionString = “接続文字列”
cn.Open
rs.Open “select column_name from DBの名前.information_schema.columns where table_name='” & paramTableName & “‘”, cn

rs.MoveFirst
  Do Until rs.EOF
If rs!column_name = paramColumnName Then
isnullColumn = False
rs.Close
cn.Close
Set rs = Nothing
Set cn = Nothing
exit function
End If
rs.MoveNext
Loop

isnullColumn = True

rs.Close
cn.Close
Set rs = Nothing
Set cn = Nothing

End Function

最初丁寧にexitでループを抜けていたがそれはここではX
罠にかけたら即終わるべし・・かな?

祝WSUS開通

1607から1703にcreators updateしたら一部のPCでダウンロード0%が続いていましたが
どうにもならないので放置
この度の5月のupdateでやっと治ったので備忘録です。

該当のPCをネットへ接続
net stop bits
net stop wuauserv
del C:\Windows\SoftwareDistribution
net start bits
net start wuauserv
繰り返すもだめで
レジストリの
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\
でwsus サーバの名前を削除
グループポリシーのwindowsupdateのwsusを未構成に変更して再度上を繰り返した後、windowsupdate
これで最新までupdateして、あらためてグループポリシーでwsusクライアント設定しなおして
wsusサーバにつなげると開通しました。

やっとです。

wordpressですが自動更新で英語版にアップグレードされます。
備忘録のブログだからどうでも良いですが・・なあんかなんかなあ

Pingとデフォルトゲートウェイ

実はヤフーブログで書こうと思ったのですがどうも落ち着かないのでwordpressで・・

VBAといいつつ最初から脱線してPingの話です

管理している小さなLANは基本は閉鎖したLANです。
なのでデフォルトゲートウェイは面倒くさいのでもう未記入にしておこう
と思ったらaccessのaccdbが起動時エラー

起動時に実行するモジュールVBAでpingを打たせているのですが
戻り値を取得できない。

cmd.exeで実際に打ってみると
ダミーのデフォルトゲートウェイを記入している場合

192.168.100.1 からの応答:宛先ホストに到達できません。

未記入の場合だと

ping:転送に失敗しました。一般エラーです。

返事が違いますね。pingは打たずにエラーを吐いている模様。
pingと命令したら必ず打つものだと思っていたので・・
恥ずかしながら知りませんでした。

ping 192.168.100.1 | find “到達できません”
if error level 0 (****

なんてバッチファイルも通用しなくなります。

うちの場合デフォルトゲートウェイは必ず記入すべし。