Surface Laptop Go
Surface Laptop Goを買ってもらいました。
゚☆+.゚☆+ヤッタヽ(●´∀`)人(´∀`○)ノヤッタ+.☆゚+.☆
今まで使用していたのはVAIO、
薄くて小さくて軽くてほんと使い勝手のいい子でしたが、
さすがに7年経ち、Windows7からの無償アップグレードWindows10だったので、
新しいものを買ってもらえることに。
Surface Laptop Goのスペックは、Intel Corei5、SSD256GB、メモリ8GB、
Office2019STD付。申し分ないです。
ひとつ気になることがあるとすれば、アイスブルーを購入したのですが、
シルバーにしか見えないってことくらい。
最初のセットアップでChromeをインストールしようとしたら、
Sモードだからインストールできないとのエラー!!!
しかも一度Sモードを解除したら二度と戻せないけどいいの?という警告すらある。
いやいやいや!いいですいいです。
ChromeすらインストールできないようなPC困るもの。
Sモード解除することによるできることできないことが説明されています。
さらっと読みつつ「入手」をクリック。
あっという間に完了しました。
もちろんSモードを解除したからといって、
ストアからインストールができなくなるわけではないです。
むしろSモードでできていたことは、解除しても全部でき、
よりできることが拡がる感じです。
ただしストア以外からアプリをインストールできるようになるから
危ないよ!っていうだけ。
20H2(1909)になったらネットワークが地球儀マークになっちゃった
おうち時間を楽しもうとボードゲームに手を出して
うっかりカルカソンヌにハマってしまいました。
カルカソンナーさくり爆誕!!!
20H2(1909でも同事象が発生するようです)になったら、
たまにネットワークマークが地球儀マークなってしまうようになった。
「インターネットアクセスなし」と表示されるものの、
普通にネットは使える感じ。でもなんか気持ち悪い。
そこで調べたところこんな記事を発見!
1909以降、かつプロキシサーバーを利用されている環境で発生する傾向が多いとのこと。
jpwinsup.github.io
レジストリをいじるのは怖いので、
グループポリシーを変更したところ、ちゃんと電波マークに戻りました!
グループポリシーの変更方法はコチラ!
①Windowsの検索欄に「gpedit.msc」と入力してEnter。
②コンピューターの構成 > 管理用テンプレート > ネットワーク > ネットワーク接続状態インジケーター > グローバルDNSの指定 をダブルクリック。
③下記の通り設定し、OKボタンをクリック。
設定値 : 有効
グローバル DNS を使用する : チェックあり
WSUSで大型Updateが配信されない (テンプレート更新)
さて、コロナ禍ですが、いかがお過ごしでしょうか。
さくりはほぼ100%テレワークとなりました。
結構会社に行くのが好きなので、週1くらいは出社したいものの、
やっぱりコロナ怖いので引きこもっております。
テレワークだと意外と残業しちゃってよくないなぁって思う今日この頃。
業務においては相変わらずですが、
大型Update(20H2)をWSUSで配信しようとしたところ、なぜか配信されない事件発生。
調べても、調べても、絶対設定は間違ってない・・・はず・・・
ということで、もしや?と思いグループポリシーのテンプレートを更新してみたところ、
これがビンゴ!!!!配信されるようになりました。
恐らく20H2用の新しい設定があるんでしょうね。
大型Update(20H2)をWSUSで配信がうまくいかないときは、
管理テンプレートを更新すべし!!!!!!!
管理テンプレートの更新方法はコチラ。
①下記のサイトにアクセス。
Create and manage Central Store - Windows Client | Microsoft Docs
②必要なテンプレート(今回は20H2)をクリック。
※サイトもインストーラも英語だけど、ちゃんと日本語になるので安心して。
③「Download」をクリック。
④ADサーバに置いて、右クリックして「インストール」を選択。
※インストールって言っても実際には展開されるだけ。
⑤「Next」をクリック。
⑥チェックを入れて、「Next」をクリック。
⑦「Next」をクリック。
⑧「Install」をクリック。
⑨「Finish」をクリック。
⑩下記の場所にテンプレートが展開される。
C:\Program Files (x86)\Microsoft Group Policy\Windows 10 October 2020 Update (20H2)
その中にある「PolicyDefinitions」フォルダが管理テンプレート。
これを・・・
⑪下記のフォルダ
C:\Windows\SYSVOL\domain\Policies または
C:\Windows\SYSVOL_DFSR\domain\Policies の中にある「PolicyDefinitions」に
ぐいっとドラッグ&ドロップで上書き。
※置き換えはNG。必ず上書きで。
複数ADサーバがある場合でも、自動で他のADサーバにレプリケーションされるよ。
このあと、何もしてないのにしゅるるるって20H2が配信されて
一日中どや顔になっちゃいました。
WSUS(WindowsServerUpdateService)が接続エラーとなってKBが表示できない!
だいぶ遅くなってしまいましたが、あけましておめでとうございます。
本年もどうぞよろしくお願いします。
新年早々…というか実は年末からなんですけど、
WSUS(WindowsServerUpdateService)の調子が悪い(;´д`)
うちはこんな感じで更新プログラムを配信してるんだけど、
・更新プログラムが公表されたら、システム部全員に配信する。
・2週間ほどシステム部全員が問題なければ、全ユーザに配信する。
[すべての更新プログラム]で[承認済み]を[すべて]表示させようとすると、
こんな感じで[エラー:接続エラー]となってしまって表示できない。
何度やってもダメ。
どうやら更新プログラムが多すぎて表示させるのにタイムアウトになってるっぽい。
35,000件くらいでそれってどうなんだろう。
だが、いきなり全ユーザに更新プログラムは配信したくない。
(正直更新プログラムにバグが多すぎて信じられないのです。)
な、なんとかしなくては…
だって、実は12月の更新プログラム当ててないんだもの。
対応策としては順番的にこんな感じです。
①もう使用しない累積更新を削除
下記サイトの「A. 過去の「IE の累積的なセキュリティ更新プログラム」を WSUS 上で拒否済みに設定」を実施。
「IE の累積的なセキュリティ更新プログラム」が承認されていると、更新プログラムの検出処理時に WSUS クライアントの CPU 使用率が高くなる - Japan WSUS Support Team Blog - Site Home - TechNet Blogs
だってもうIE6とかIE7とかの更新はいらないもんね。
もう少ししたら、IE8とかWindowsXPとかの更新も拒否できる!!!
②クリーンアップウィザードの実行
正直これは毎月実施した方がいいと思う。
たまれば溜まる程、時間がかかるし、タイムアウトで何もできなくなる可能性がある。
1.サーバーマネージャーより[役割]-[WindowsServerUpdateServices]-[UpdateServices]-[オプション]を選択し、[サーバークリーンアップウィザード]をクリックする。
2.全✔のまま[次へ]
※当ててない更新とかがあっても大丈夫!消えたりしないよ!
③インデックスの更新
詳細はコチラ。
WSUS DB インデックスの再構成の手順について - Japan WSUS Support Team Blog - Site Home - TechNet Blogs
1.UAC(ユーザー アカウント制御)をOFFにしないと絶対エラーになるので注意!
UACをOFFにするには、コンパネで「UAC」と検索して、OFFに。
2.「SQL Server Management Studio Express」をインストール。
Download Microsoft SQL Server Management Studio Express from Official Microsoft Download Center
3.SQL Server Management Studio Expressをクリック。
4.サーバー名は下記をコピペして、認証:[Windows 認証]を選択し、[接続]ボタンをクリックする。
\\.\pipe\mssql$microsoft##ssee\sql\query
5.[データベース]-[SUSDB]を右クリックし、[新しいクエリ]を選択する。
6.右の欄に下記のテキストを貼りつけて、[実行]ボタンをクリックする。
※実行時間は2分くらい?
/****************************************************************************** This sample T-SQL script performs basic maintenance tasks on SUSDB 1. Identifies indexes that are fragmented and defragments them. For certain tables, a fill-factor is set in order to improve insert performance. Based on MSDN sample at http://msdn2.microsoft.com/en-us/library/ms188917.aspx and tailored for SUSDB requirements 2. Updates potentially out-of-date table statistics. ******************************************************************************/ USE SUSDB; GO SET NOCOUNT ON; -- Rebuild or reorganize indexes based on their fragmentation levels DECLARE @work_to_do TABLE ( objectid int , indexid int , pagedensity float , fragmentation float , numrows int ) DECLARE @objectid int; DECLARE @indexid int; DECLARE @schemaname nvarchar(130); DECLARE @objectname nvarchar(130); DECLARE @indexname nvarchar(130); DECLARE @numrows int DECLARE @density float; DECLARE @fragmentation float; DECLARE @command nvarchar(4000); DECLARE @fillfactorset bit DECLARE @numpages int -- Select indexes that need to be defragmented based on the following -- * Page density is low -- * External fragmentation is high in relation to index size PRINT 'Estimating fragmentation: Begin. ' + convert(nvarchar, getdate(), 121) INSERT @work_to_do SELECT f.object_id , index_id , avg_page_space_used_in_percent , avg_fragmentation_in_percent , record_count FROM sys.dm_db_index_physical_stats (DB_ID(), NULL, NULL , NULL, 'SAMPLED') AS f WHERE (f.avg_page_space_used_in_percent < 85.0 and f.avg_page_space_used_in_percent/100.0 * page_count < page_count - 1) or (f.page_count > 50 and f.avg_fragmentation_in_percent > 15.0) or (f.page_count > 10 and f.avg_fragmentation_in_percent > 80.0) PRINT 'Number of indexes to rebuild: ' + cast(@@ROWCOUNT as nvarchar(20)) PRINT 'Estimating fragmentation: End. ' + convert(nvarchar, getdate(), 121) SELECT @numpages = sum(ps.used_page_count) FROM @work_to_do AS fi INNER JOIN sys.indexes AS i ON fi.objectid = i.object_id and fi.indexid = i.index_id INNER JOIN sys.dm_db_partition_stats AS ps on i.object_id = ps.object_id and i.index_id = ps.index_id -- Declare the cursor for the list of indexes to be processed. DECLARE curIndexes CURSOR FOR SELECT * FROM @work_to_do -- Open the cursor. OPEN curIndexes -- Loop through the indexes WHILE (1=1) BEGIN FETCH NEXT FROM curIndexes INTO @objectid, @indexid, @density, @fragmentation, @numrows; IF @@FETCH_STATUS < 0 BREAK; SELECT @objectname = QUOTENAME(o.name) , @schemaname = QUOTENAME(s.name) FROM sys.objects AS o INNER JOIN sys.schemas as s ON s.schema_id = o.schema_id WHERE o.object_id = @objectid; SELECT @indexname = QUOTENAME(name) , @fillfactorset = CASE fill_factor WHEN 0 THEN 0 ELSE 1 END FROM sys.indexes WHERE object_id = @objectid AND index_id = @indexid; IF ((@density BETWEEN 75.0 AND 85.0) AND @fillfactorset = 1) OR (@fragmentation < 30.0) SET @command = N'ALTER INDEX ' + @indexname + N' ON ' + @schemaname + N'.' + @objectname + N' REORGANIZE'; ELSE IF @numrows >= 5000 AND @fillfactorset = 0 SET @command = N'ALTER INDEX ' + @indexname + N' ON ' + @schemaname + N'.' + @objectname + N' REBUILD WITH (FILLFACTOR = 90)'; ELSE SET @command = N'ALTER INDEX ' + @indexname + N' ON ' + @schemaname + N'.' + @objectname + N' REBUILD'; PRINT convert(nvarchar, getdate(), 121) + N' Executing: ' + @command; EXEC (@command); PRINT convert(nvarchar, getdate(), 121) + N' Done.'; END -- Close and deallocate the cursor. CLOSE curIndexes; DEALLOCATE curIndexes; IF EXISTS (SELECT * FROM @work_to_do) BEGIN PRINT 'Estimated number of pages in fragmented indexes: ' + cast(@numpages as nvarchar(20)) SELECT @numpages = @numpages - sum(ps.used_page_count) FROM @work_to_do AS fi INNER JOIN sys.indexes AS i ON fi.objectid = i.object_id and fi.indexid = i.index_id INNER JOIN sys.dm_db_partition_stats AS ps on i.object_id = ps.object_id and i.index_id = ps.index_id PRINT 'Estimated number of pages freed: ' + cast(@numpages as nvarchar(20)) END GO --Update all statistics PRINT 'Updating all statistics.' + convert(nvarchar, getdate(), 121) EXEC sp_updatestats PRINT 'Done updating statistics.' + convert(nvarchar, getdate(), 121) GO
7.下記メッセージが出たらOK。画面を全て閉じる。
とりあえず、これでなんとか解決。
WSUSって意外にチャチいし、お守りがめんどくさいのよね。。。
WindowsUpdateが急に失敗する?! KB2687455
お久しぶりです!
死の淵から這い上がりつつあります。さくりです。
すごい仕事が忙しいのに加え、組合が…すごい…・゚・(。✖д✖。)・゚・
本社近くに組合本部があるんだけど、
そこで平日に1泊2日で今年何やるか…とか打合せするの。
地方の支店の方たちが泊まりなのはわかるけど、
自宅まで40分の私まで宿泊要請がきて参った…。
宿泊を断ると、「これだから本社は…」とか
「親睦を深めようとする気がない」とか超詰られるヽ( ε∀ε )ノえぇぇえ!?
でも宿泊は断固拒否しました。(おうち大好き💛)
さて、本題です。
10/28あたりからWindowsUpdateが失敗している人いませんか?
自宅のPCは大丈夫なのに、なぜか会社のPCは軒並みWindowsUpdateが失敗する…
と調査したところ、どうやらMicrosoftのバグのようです。
Windows32bitOSで、Office2010がインストールされているPCに対し、
何故かOffice2010 64bit用のWindowsUpdateが検出されるようになってる!
\\٩(๑`ȏ´๑)۶// 激オコ!
そりゃ失敗するわ…
ちなみに下記3件。
「KB2687413」・・・何故かインストール成功
「KB2837582」・・・何故かインストール成功
「KB2687455」・・・インストール失敗
ネット経由でWindowsUpdateしている方も、WSUS(WindowsServerUpdateService)でも同様の事象。
毎日毎日「更新をインストールしてシャットダウン」が表示されてうざい。
もう!どうしたらいいの?と思ったら非表示にできました。
「1個の重要な更新プログラムが利用可能です」をクリックする。
もし、この表示がない場合は、[更新プログラムの確認」をクリックすると出てくるはず。
更新プログラムを右クリックして、[更新プログラムの非表示]を選択し、[OK]ボタンをクリックする。
緑になればOK
ちなみにインストール成功しちゃってるUpdateは特に削除したりしなくても問題ないみたい。
Microsoftからもチラ記事ながら出ました。blogs.technet.com
【2015/11/03 追記】
どうやら不具合は解消した模様です。
が、ちょっと腑に落ちないのは非表示にしたはずのKBが跡形もなく消え去っていること。
どうやったんだろう???
これって、Microsoftやりすぎじゃない?!
と思うのは私だけかな…。
VBScriptでERRのログファイルがあったらメールに添付して送信する
一般職のお姉さんがどう見ても高校生にしか見えないので、
「いくつなんですか?」と超上から目線で伺ったところ、
34歳という回答で心底驚きました。
まさか年上だったなんて…(° ꈊ °|||)
2年目くらいだと思ってたよ…。
なんとお子さんもいました( ⓛ ω ⓛ *)
失礼ついでに「旦那さんはロリコンなんですか?」とも聞いておいたヽ(≝∀≝)ノ
今日は「エラーログが出たらメールで送信されるようにして」と
いうことで朝からプログラミングなう。
こういうゴミプログラ…便利ツールを作るのが私のお仕事。
魔法使いだからね!
初めてVBScriptを使ってみたけど、ExcelのVBAとほとんど同じなんだね。
宣言のところで、型を指定できないのにちょっとハマッたけど…。
あと、ファイルの存在チェックをするために、
FileSystemObjectのFileExists()を使おうと思ったんだけど、
ワイルドカードが使えなくて困った。
CopyFile()、MoveFile()、DeleteFile()ではワイルドカード使えるのに何で?
そんなときに下記サイト様に神的なFunctionが置かれていたので、
お借りします(*`・ω・)ゞ
FileExists()でワイルドカードが使えない。その代替方法: Windows Script Programming
' ********************************************** ' *** ログファイルを送付する ' *** ' *** 作成者: SAKURI ' *** 作成日: 2015/09/17 ' *** ' ********************************************** Dim myAttachment Dim objFileSys Dim strScriptPath Dim strBadFile Dim numFlg Dim fnameArrayList Dim objFolder Set objNetwork = WScript.CreateObject("WScript.Network") Set oMsg = CreateObject("CDO.Message") '送り主 oMsg.From = "xxxx@sample.com" '宛先 oMsg.To = "xxxx@sample.com; xxxx@sample.co.jp " 'ログファイルの存在チェック Set objFileSys = CreateObject("Scripting.FileSystemObject") If FileExists("c:\sakuri\LOG\ERR*.log") = True Then 'メールタイトル oMsg.Subject = "ログファイル送信【" & Now & "】" 'メール本文 oMsg.TextBody = "自動配信メールです。" & vbCrLf & _ "-------------------------" & vbCrLf & _ Now & vbCrLf & _ "-------------------------" & vbCrLf & _ "添付のログファイルを確認してください。" '添付ファイル Set objFolder = objFileSys.GetFolder("c:\sakuri\LOG\ERR") For Each objItem In objFolder.Files If mid(objItem.Name,1,3) = "ERR" Then oMsg.AddAttachment("c:\sakuri\LOG\ERR\" & objItem.Name) End if Next Else 'メールタイトル oMsg.Subject = "データは正常に処理されました。【" & Now & "】" 'メール本文 oMsg.TextBody = "自動配信メールです。" & vbCrLf & _ "-------------------------" & vbCrLf & _ Now & vbCrLf & _ "-------------------------" & vbCrLf & _ "データは正常に処理されました。" End If Set objFileSys = Nothing 'SMTPサーバ設定 oMsg.Configuration.Fields.Item _ ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 oMsg.Configuration.Fields.Item _ ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "XXX.XXX.XXX.XXX" oMsg.Configuration.Fields.Item _ ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25 oMsg.Configuration.Fields.Update oMsg.Send Function FileExists(Spec) Dim fso Dim ParentFolderName Set fso=CreateObject("Scripting.FileSystemObject") ParentFolderName=fso.GetParentFolderName(Spec) If ParentFolderName="" Then ParentFolderName="." On Error Resume Next fso.CopyFile Spec,ParentFolderName FileExists=Err.Number<>53 End Function