Windows 7とWindows 8.1を、無料でWindows 10にアップグレードしてくれる親切で余計なお世話の Get Windows 10 App ですが、ついに役目を終えて更新プログラムにて削除されるようです。
・Remove software related to the Windows 10 free upgrade offer
Windows Updateを実行してオプションから選択出来ます。
更新プログラムをインストール後、コンピューターの再起動が求められます。
再起動してログオン中に”個人用設定”が少し表示されるので、このタイミングで削除しているのかと思います。
Get Windows 10 Appは「C:\Windows\System32\GWX」にインストールされており、このフォルダがなくなったことを確認すれば削除完了です。
RDP Wrapper Libraryを使用してWindows 10に複数RDPセッションで接続できるようにする
Windows 10も[システムのプロパティ]からリモートタブより設定することで、リモートデスクトップサービス(RDP)を利用して遠隔操作することが出来ます。ただしこれはクライアントOSでは1セッションのみの制限があり、2セッション目からは下記のような表示が出て最初のセッションを閉じるように促されます。
別のユーザーがサインインしています。続行すると、それらのユーザーは切断されます。サインインしますか?
この事象を回避できないか調べてみたところ、RDP Wrapper Libraryというソフトウェアを使うことで複数接続できるようになります。このラッパーライブラリはターミナルサービス(termsrv.dll)を変更することが無いのでWindows Updateなども普通に実施出来ます。
・RDP Wrapper Library by Stas’M
現在最新のRDPWrap-v1.6.1.zipをダウンローとしたところ、下記ファイルが含まれていました。
RDPWInst.exe RDPラッパーライブラリのインストール/アンインストールプログラム
RDPCheck.exe RDPチェックユーティリティ(ローカル接続をして複数つなげるか確認するクライアント)
RDPConf.exe RDPラッパー構成ユーティリティ
install.bat/uninstall.bat/update.bat クイックインストール・アンインストール・アップデートバッチファイル
ラッパーライブラリをインストールするには、install.batを右クリックして「管理者として実行」にて自動的に完了しました。RDP接続中の場合は、一旦切断されて再接続されます。
インストール完了後、RDPConf.exeを実行してDiagnostics項目内が全部緑になっているかを確認します。緑になっていれば正常に動作中です。
あとはRDPCheck.exeを使用してローカルから確認するか、外部からリモートデスクトップ接続(mstsc.exe)を複数起動して対象PCにログオンしてみればOKです。
複数接続にはリモートデスクトップサービス クライアントアクセスライセンス(RDS-CAL)が必要になりそうなので、実運用というよりは評価版を使用して使ってみるという形になるかと思います。
Windowsのeventcreateコマンドにてソースパラメーターのエラーが出たときの対処
Windowsのコマンドプロンプトにて、イベントを記録するためにeventcreateコマンドを実行したときに、すでにあるイベントソースを指定すると次のようなエラーが表示されることがあります。
eventcreate /L Application /T Information /SO "hoge" /ID 1 /D "Information write."
エラー: インストールされているアプリケーションではなく、カスタム アプリケーションまたはスクリプトを識別するためだけに、ソース パラメーターが使用されます。
これは作成されているイベントソースへ、ソースを作成したプログラムからしかアクセスできないため起きるようです。今回の場合はPowerShellにて下記コマンドでソースを作成していました。
New-EventLog -LogName Application -Source hoge
修正するには、レジストリエディタより対象ソースにCustomSourceという名前で1の値を設定すればよいようです。今回はアプリケーションイベントのhogeというソースなので下記になります。
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Application\hoge]
"CustomSource"=dword:00000001
その後、もう一度eventcreateコマンドを実行すると成功しました。
eventcreate /L Application /T Information /SO "hoge" /ID 1 /D "Information write."
成功: 種類が 'Information' のイベントが、'Application' ログ内に、'hoge' をソースとして作成されました。
イベントログのアプリケーションにPerflibエラーID:1008が記録されるときの対処
システム起動時やパフォーマンスログ取得開始時に次のようなエラーが記録されることがあります。
ログの名前: Application
ソース: Microsoft-Windows-Perflib
イベント ID: 1008
レベル: エラー
説明:
サービス "BITS" (DLL "C:\Windows\System32\bitsperf.dll") の Open プロシージャに失敗しました。このサービスのパフォーマンス データは利用できません。データ セクションの最初の 4 バイト (DWORD) に、エラー コードが含まれています。
これは、パフォーマンスモニタのカウンタ読み込みに失敗しているときに、利用できないパフォーマンスカウンタオブジェクトがある場合にエラーメッセージが発生します。
そのため、影響があるサービスのパフォーマンスモニタのカウンタをインストールまたは再インストールしてあげれば解消します。使わない場合はアンインストールもOKです。
今回の”BITS”の場合は、管理者として実行したコマンドプロンプトで下記を実行すれば直ります。
cd C:\Windows\inf\BITS\0411
lodctr bitsctrs.ini
備考:Application Center でパフォーマンス データ カウンタに関する Perflib のイベント ID 1008 エラー メッセージが表示される
https://support.microsoft.com/ja-jp/kb/299059
Windows Server 2012のXenAppやRemoteAppでテーマファイルが適用されない
Windows Server 2008や2012のローカルグループポリシーにて「特定のテーマを読み込む」を設定しても、XenAppの公開アプリケーションやRemoteAppのユーザにテーマが適用されない事象が発生します。
テーマが適用されていないユーザが、サーバにリモートデスクトップ接続(mstsc)にてログオンするとテーマファイルが適用されます。
この事象は、テーマファイルの初期化をexplorer.exeが行っているため発生します。XenAppやRemoteAppはデスクトップ表示を行う必要がなく、explorer.exeが自動起動することはありません。
explorer.exeは新しいユーザがログオンしたタイミングで、ntuser.datを作成・読み込みした後にActive Setupといわれる初期化処理を行います。
Active Setupでのテーマファイル適用は下記コマンドにより実行されています。
"C:\Windows\System32\regsvr32.exe" /s /n /i:/UserInstall C:\Windows\system32\themeui.dll
そのため、ログオンスクリプトにてコマンドを実行してあげればテーマファイルがユーザに適用されます。
コマンドプロンプトを管理者として実行して「gpedit.msc」を起動して、[ユーザーの構成]の[Windowsの設定]にある「スクリプト(ログオン/ログオフ)」の「ログオン」を開きます。
「追加」ボタンを押して、先ほどのコマンドを下記のように入れてあげれば設定完了です。
設定をすぐに反映する場合には、コマンドプロンプトを管理者として実行して「gpupdate /force」を実行してください。
・Things to do when troubleshooting Internet Explorer Terminal Server and Profiles issues.
https://blogs.msdn.microsoft.com/askie/2012/09/13/things-to-do-when-troubleshooting-internet-explorer-terminal-server-and-profiles-issues/
BlatJをWindows Server 2012で使用した時に送信時間が1時間ずれる時の対処
BlatJとは、Windows NT時代からよく使われているバッチファイルから任意のメールアドレスにメールを送ることのできる実行ファイルです。
最近はVBScriptやPowerShellにて送付することが多いと思うので出番は少ないですが、環境リプレース時にバッチファイルの改修が面倒な際にはそのまま使ってしまったりします。
BlatJはWindows Server 2008やWindows Server 2012でも動作可能ですが、メールを送ると下記のように送信時間が1時間ほどずれてしまいます。
もともとWindows NTで動作するものですので、Windowsの夏時間(サマータイム)検出がうまくいかずにこのような事象が出るようです。
対処としては、夏時間を使用しないように設定変更してあげれば可能です。
まず日本時間では夏時間は設定できないため、コントロールパネルの「日付と時刻」より「タイムゾーンの変更」を開きます。
タイムゾーンで、例えば「(UTC-08:00)太平洋標準時(米国およびカナダ)」を選択して、「自動的に夏時間の調整をする」のチェックを外して「OK」を押し設定を反映させます。
もう一度「タイムゾーンの変更」を開き、元の「(UTC+09:00)大阪、札幌、東京」へ設定を戻してあげれば完了です。
これでBlatJからメールを送信しても時間がずれなくなります。
ちなみに、タイムゾーンの一覧情報は下記のレジストリに格納されています。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones
現在設定されているタイムゾーンは下記に保存されています。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation
コマンドで「ネットワークドライブの割り当て」ダイアログを表示する
CIFS共有をドライブにマウントする際、通常はコンピューターのツールより「ネットワークドライブの割り当て」を行いますが、この操作を別の処理から呼び出すことができないか調べてみました。
まずプログラムからは、Windows APIの「WNetConnectionDialog」関数を使用すると表示できるようです。
https://msdn.microsoft.com/ja-jp/library/Cc447010.aspx
C#なら下記のようにmpr.dllを読み込んで実行すれば表示できます。
[DllImport("mpr.dll", CharSet = CharSet.Ansi)]private static extern int WNetConnectionDialog(IntPtr HWND, int dwType);
WNetConnectionDialog(this.Handle, RESOURCETYPE_DISK);
単純なプログラムやバッチファイル・VBscriptなどからは、下記コマンドを実行することで表示できます。
Windows 7のコマンドプロンプトにて確認済みです。
RUNDLL32 SHELL32.DLL,SHHelpShortcuts_RunDLL Connect