2020年3月25日水曜日

Windows10Homeでローカルグループポリシーエディター

何かとイラッとさせるWindowsの設定、迷惑でしかない設定を変更しようと思いグループポリシーエディター(gpedit.msc)を起動させようとしたところ・・・・ない。

どうやらWindows10Homeエディションはそのままでは使えないらしい。

調べてみると比較的簡単に有効にできることが判明※参考にさせたいただいたページを読んでいるとこの操作をすると元に戻せないらしい。

1.適当なフォルダに任意のファイル名でbatファイルを作成

2.下記のコードを記述し保存

@echo off
dir /b %SystemRoot%\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientExtensions-Package~3*.mum >List.txt
dir /b %SystemRoot%\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientTools-Package~3*.mum >>List.txt
for /f %%i in ('findstr /i . List.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"
pause

3.上記バッチファイルを管理者権限で実行

4.とくにエラーが表示しなければ完了

5.ファイル名を指定して実行からgpedit.mscを実行し起動すれば成功(※管理者権限で実行しなくても平気なのかな?)

これでレジストリを直接操作する回数が減らせられる。

2020年3月18日水曜日

MacからWindows10にリモートデスクトップ接続

Windows10 Homeにも無事RDP Wrapperをインストールしてリモートデスクトップ接続出来るようになったので普段使用しているMacからも接続してみることに。

嬉しいことにApp StoreでMicrosoft Remote Desktopが公開されているのであっさりインストール完了。2020/3/18時点ではVersion 10.3.8(1747)

MacはmacOS Mojave 10.14.6 MacBook Pro Late 2016

とりあえずMicrosoft Remote Desktopを起動して接続させたいPCの接続情報を登録、全てデフォルトでも普通に接続できるけれど使用しているMacはRetinaディスプレイでかつ接続先がWindows10なのでDhisplay設定のOptimize for Retina displaysにチェックをいれると高解像度で綺麗に表示できるらしい

気になっていたキーボードレイアウトの違いと日本語入力についてはほぼ違和感がなく使用可能(MacとWindowsのキーボード設定によって違いはあるかも)

Windowsボタンはcommandボタン
ctl+ボタンはcommandボタン+ボタン (コピー&ペーストならcommand+c、command+v)
日本語切り替えはかなボタン
右クリックは二本指クリック
deleteボタンはfn+BS

かなり嬉しいのがファイルのコピー&ペーストでMac←→Windows間で可能だったこと

(参考)
Microsoft macOSクライアントの概要

これで自宅にいる時はWindows PCの操作が楽になる。

2020年3月14日土曜日

Windows10 Home にリモートデスクトップ 接続

たまたまもらったWindows10端末、モバイル端末のため出先では重宝するはずだけれど家で使う際は小さくて疲れる。

家の中では別のPC(Mac)からリモートデスクトップ接続して使おうと思ったら設定がない・・・調べてみるとHomeエディションにはリモートデスクトップ接続出来ない(サービスが提供されていない)事が判明。

調べて見るとRDP Wrapper Libraryなるソフトをインストールすれば可能なことが判明したので早速インストール。ところがこのソフトはWindowsの更新プログラムでOSバージョンが上がると使用できなくことがありその都度アップデート等が必要で安定した接続を求めるならHomeエディションからProfessionalエディションに変更した方がいいかもしれない。

端末のWindowsバージョンを確認してみるとMicrosoft Windows10 Home 10.0.18362 64bit

使用したRDP Wrapper Libraryは
RDPWrap-v1.6.2.zipとrdpwrap_ini_updater_.02_August_2019.zip

RDP Wrapper Libraryのインストール情報をインターネットで検索して色々試し結果的には接続出来たけれど正しい手順かは不明

1.インストールフォルダの作成
インストールbatファイルにパスの記述があるので任意なフォルダにせずC:¥Program Files¥RDP Wrapperにする。

2.ウイルス対策ソフトに例外設定追加
install.batから起動されるRDPWInst.exeをウイルスと判断して削除されてしまうため例外設定を追加。
ちょうど邪魔なNORTON360をアンインストールした直後だったのでMicrosoft標準のウイルス対策ソフト(Windows Dfender)が有効な状態だったので設定→更新とセキュリティ→Windowsセキュリティ→ウイルスと脅威の防止→ウイルスと防止の設定 設定の管理→除外 除外の追加または削除→除隊の追加でC:¥Program Files¥RDP Wrapperを追加

4.ダウンロードと解凍

上記リンク先からダウンロードして解凍したファイルをC:¥Program Files¥RDP Wrapperフォルダにコピー

5.rdpwrap_ini_updater.batの修正
インストールしても上手く動作しない状況だったので調べて見るとrdpwrap_ini_updater.batを修正

色々試して動作していない状況でRDPConf.exeを起動した結果

Lister stateでNot listening、[not suppoerted]は正常な状態ではなく、サイトのissuesを見ているとrdpwrap.iniを修正するといいみたいなのでrdpwrap_ini_updater.batを修正

rdpwrap_ini_updater.batファイル内の:start_updateセクションの最後(52行目あたり)に

findstr /x /c:"[10.0.18362.657]" %rdpwrap_ini% >nul || call :Update_10_0_18362_657
を追記

rdpwrap_ini_updater.batファイル内の最終行に以下を追記

:Update_10_0_18362_657
set updated=1
echo [+] add support for termsrv.dll v.10.0.18362.657
(
echo.
echo [10.0.18362.657]
echo LocalOnlyPatch.x64=1
echo LocalOnlyOffset.x64=82FB5
echo LocalOnlyCode.x64=jmpshort
echo SingleUserPatch.x64=1
echo SingleUserOffset.x64=0DBFC
echo SingleUserCode.x64=Zero
echo DefPolicyPatch.x64=1
echo DefPolicyOffset.x64=1FE15
echo DefPolicyCode.x64=CDefPolicy_Query_eax_rcx
echo SLInitHook.x64=1
echo SLInitOffset.x64=22DDC
echo SLInitFunc.x64=New_CSLQuery_Initialize
echo.
echo [10.0.18362.657-SLInit]
echo bInitialized.x64 =F6A8C
echo bServerSku.x64 =F6A90
echo lMaxUserSessions.x64 =F6A94
echo bAppServerAllowed.x64 =F6A9C
echo bRemoteConnAllowed.x64=F6AA0
echo bMultimonAllowed.x64 =F6AA4
echo ulMaxDebugSessions.x64=F6AA8
echo bFUSEnabled.x64 =F6AAC
) >> %rdpwrap_ini%
goto :eof
6.インストール
自分の場合は既に失敗したインストール状態で、re-install.batを管理者権限で実行

以下実行ログ

RDP Wrapper Library v1.6.2
Installer v2.5
Copyright (C) Stas'M Corp. 2017
[*] Uninstalling...
[+] TermService found (pid 7624).
[*] No shared services found.
[*] Resetting service library...
[*] Terminating service...
[*] Removing files...
[+] Removed file: C:\Program Files\RDP Wrapper\rdpwrap.ini
[+] Removed file: C:\Program Files\RDP Wrapper\rdpwrap.dll
[-] RemoveDirectory error (code 32).
[*] Starting TermService...
[-] StartService error (code 1056).
[*] Configuring registry...
[*] Configuring firewall...
1 規則を削除しました。
OK
[+] Successfully uninstalled.
RDP Wrapper Library v1.6.2
Installer v2.5
Copyright (C) Stas'M Corp. 2017
[*] Notice to user:
  - By using all or any portion of this software, you are agreeing
  to be bound by all the terms and conditions of the license agreement.
  - To read the license agreement, run the installer with -l parameter.
  - If you do not agree to any terms of the license agreement,
  do not use the software.
[*] Installing...
[*] Terminal Services version: 10.0.18362.657
[-] This version of Terminal Services is not supported.
Try running "update.bat" or "RDPWInst -w" to download latest INI file.
If it doesn't help, send your termsrv.dll to project developer for support.
[+] TermService found (pid 2712).
[*] No shared services found.
[*] Extracting files...
[*] Downloading latest INI file...
[+] Latest INI file -> C:\Program Files\RDP Wrapper\rdpwrap.ini
[+] Extracted rdpw64 -> C:\Program Files\RDP Wrapper\rdpwrap.dll
[*] Configuring service library...
[*] Checking dependencies...
[*] Checking CertPropSvc...
[*] Checking SessionEnv...
[*] Terminating service...
[*] Starting TermService...
[*] Configuring registry...
[*] Configuring firewall...
OK
[+] Successfully installed.
______________________________________________________________
[02 August 2019]
RDP Wrapper Library Updater
---------------------------
<Add support of new termsrv.dll versions in rdpwrap.ini>

[+] add support for termsrv.dll v.10.0.17134.706
[+] add support for termsrv.dll v.10.0.17763.165 x64
[+] add support for termsrv.dll v.10.0.17763.292
[+] add support for termsrv.dll v.10.0.17763.379
[+] add support for termsrv.dll v.10.0.17763.437
[+] add support for termsrv.dll v.10.0.18362.1
[+] add support for termsrv.dll v.10.0.18362.53
[+] add support for termsrv.dll v.10.0.18362.267
[+] add support for termsrv.dll v.10.0.18362.657
[~] restart the RDP Wrapper to accept the new ini updates ...
RDP Wrapper Library v1.6.2
Installer v2.5
Copyright (C) Stas'M Corp. 2017
[*] Restarting...
[+] TermService found (pid 11940).
[*] No shared services found.
[*] Terminating service...
[*] Starting TermService...
[-] StartService error (code 1056).
[+] Done.
続行するには何かキーを押してください . . .
7.実行状態の確認
RDPConf.exeを管理者権限で実行し以下の状態であれば正常動作しているらしい

8.接続確認
RDPCheck.exeを管理者権限で実行しログイン画面が表示すれば接続可能な状態らしい。

9.その他
インストール時は念のためにファイアウォールを停止していてインストール後に起動させてみたところ特に設定作業は不要で接続でした。(※ネットワークの種類はプライベートネットワーク)

次はMacから実際接続してみよう。


2020年2月22日土曜日

Python for Win32 Extensions(Pywin32)でイベントログ(Eventlog)アクセス

イベントログを取得する用件がありPythonで処理してみることに。

WEBで検索してみると意外に容易にできそうな感じでPython for Win32 Extensions(Pywin32)のwin32evtlogモジュールのReadEventLogメソッドを使用。ただ思ったほど情報は多くないけれどサンプルソースからなんとか。。。

ReadEventLogメソッドの戻り値(PyEventLogRecordオブジェクト)のプロパティからイベントビューアーにあるレベルに該当するものを探してみると同じ名前のものはなくそれらしいのはEventTypeぐらい。

ただ、調べてみると値が微妙に違う・・・

EventTypeイベントビューアーのレベルEVENTCREATEコマンドの種類(/T)
0:成功情報 Level:0SUCCESS
1:エラーエラー Level:2ERROR
2:警告警告 Level:3WARNING
4:情報情報 Level:4INFORMATION

win32evtlogの定数をDIR関数で調べてみるとEventTypeに使えそうなものが以下の様な感じかも。


  • EVENTLOG_ERROR_TYPE : 1
  • EVENTLOG_WARNING_TYPE : 2
  • EVENTLOG_INFORMATION_TYPE : 4
  • EVENTLOG_AUDIT_SUCCESS : 8
  • EVENTLOG_AUDIT_FAILURE : 16
ついでに気になったこと(上手く実装できなかった箇所)
  • win32evtlogutil.SafeFormatMessageでイベントビューアーに表示しているメッセージを取得できないイベントが存在した。
  • イベントビューアーに表示しているイベントID(EventId)とは異なっていた。



2020年1月22日水曜日

XPSファイルを選択して後悔

メールの電子ファイルとして保存する方法としてPDFではなくOS(Windows7)標準機能で提供されているXPS形式を使用していたらWindows10のあるバージョンからはXPSビューアーが標準インストールされなくった・・・。

今のところは追加インストールすることは可能らしいけれどインターネット接続環境が前提でオフラインインストールは不可能な模様。(そのうちしれっとXPSなんてなかったことにする気なのかな)

広く普及しているPDFではなくOS標準で追加インストールなく使用できると思っていたらこんな簡単に切り捨てるなってさすがMicrosoft。

Microsoftは容赦ないことは分かっていたのに・・・自分に腹が立つ。

仕方ないのでせっせとPDFに変換中

2019年12月3日火曜日

ORA-12518: TNS: リスナーはクライアント接続をハンドオフできませんでした

Oracle12cでリスナー経由で接続しようとしたところ以下のメッセージが出力されて接続できないとの質問された時の備忘録

ORA-12518: TNS: リスナーはクライアント接続をハンドオフできませんでした

リスナー(listener)は正常に動作しているようなのでlistener.logを確認してみると上記メッセージ以外に

TNS-12560: TNS: プロトコル・アダプタ・エラー
TNS-00534: 接続所有権の子への権限付与に失敗しました。
64-bit Windows Error: 10022: Unknown error

ORA-12518で調べるとメモリやらセッション数等に係わる情報があるものの今回の事象に該当しなさそう、他のエラーで気になった所有権・権限付与が気になりOracle関連の実行ユーザグループを稼働中の別のサーバを確認してみると実行ユーザにはORA_INSTALLとORA_OraDB12home1_DBAセキュリティグループのメンバーになっているのに今回のサーバにはORA_OraDB12home1_DBAセキュリティグループにしか属していない・・・。

ORA_INSTALLグループにも属した上でサービスを再起動(実際はOSごと再起動)させて接続してみたところ見事解決!!

Oracleサービスの実行ユーザはインストール途中の画面で作成することも出来るはずだが今回はインストールした人が事前に手動で作成した際に属するグループが不足していたのかな???

2019年11月14日木曜日

SCHEDULER-320 Could not send mail

とりあえずJobScheduler1.13の基本的な使い方が分かってきたので特定のジョブ実行時にメールを送信するように設定してみたところ送信エラー

「SCHEDULER-320 Could not send mail」

メールサーバ側の問題かと思いTELNETで接続してメール送信テストも問題なく行えたのでJobSchedulerの問題は確定。

一番気になったのメールの設定情報が記述されてているfactory.ini

一通り確認しても原因となりそうな設定はない・・・ただ一カ所を除いて

「mail_queue_dir = ${SCHEDULER_DATA}/mail」

メールのキューが保存されると思われる上記設定のフォルダーがない??

フォルダーを手動で作ってみると無事送信成功!!インストールでは作成されないうえに送信時になければ自動的にフォルダーを作成もしてくれないらしい。

もしかするとインストール時はメールを送信する設定にしなかったからかな・・・。