カテゴリー: Windows

  • HPE Store Easy (Windows Storage Server 2012 R2)がディスクが読み取り専用でファイルが書き込めない

    HPE Store Easy (Windows Storage Server 2012 R2)を設定したのだが、
    共有フォルダを作成したが書き込めない状況に陥った。
    エラー情報を見ると、書き込み禁止のために書き込みに失敗するというもの。
    共有したときの権限問題かと思い、フォルダのアクセス権限を確認したが問題なし。

    いろいろと調べたところ、ディスクが読み取り専用になっていた。
    ディスクが読み取り専用になった場合は、GUIからはREAD/WRITEにはできず、
    コマンド操作で変更する必要があった。

    ディスクが読み取り専用かどうかを調べる

    1. [サーバマネージャー] を開く。
    2. [ファイル サービスと記憶域サービス] を開く。
    3. [ボリューム] から [ディスク] を選択する。
    4. 読み取り専用の項目にチェックがついていれば、そのディスクは読み取り専用となっている。

    書き込み可能にする

    1. コマンドプロンプトを起動する
    2. 「diskpart」コマンドを実行する
      C:\Users\hoge>diskpart
    3. diskpartユーティリティが立ち上がるので、「list disk」を実行する。
      DISKPART> list disk
      
        ディスク      状態           サイズ   空き   ダイナ GPT
        ###                                          ミック
        ------------  -------------  -------  -------  ---  ---
        ディスク 0    オンライン           119 GB      0 B
      
    4. 事前に確認したディスクの番号を確認する
      「ディスク 0」と表示されているところの数字が番号。
    5. 「select disik 番号」コマンドを実行する
      DISKPART> select disk 0
      
      ディスク 0 が選択されました。
      
      DISKPART> attribute disk
      現在の読み取り専用状態: はい
      読み取り専用  : いいえ
      ブート ディスク  : はい
      ページ ファイル ディスク  : はい
      休止状態ファイル ディスク  : いいえ
      クラッシュ ダンプ ディスク  : はい
      クラスター化ディスク  : いいえ
      
      DISKPART>
      
    6. 「attributes disk clear readonly」コマンドを実行し、書き込み可能にする。
      DISKPART> attributes disk clear readonly
    7. 「attributes disk」を実行し、「現在の読み取り専用状態」が「いいえ」になったことを確認する
      念のため、サーバーマネージャーからも確認するとよい。
    8. 「exit」コマンドを実行し、diskpartを終了させる。

    参考

    http://nasunoblog.blogspot.jp/2016/01/how-to-change-readonly-disk.html
    https://blogs.technet.microsoft.com/askcore/2011/06/02/my-disk-is-read-only-help/

  • RegOpenKeyExW ~がイベントに記録される

    Acronis Backup でバックアップを実行した際に、以下のエラーがイベントログに出力される。

    ボリューム シャドウ コピー サービス エラー: ルーチン RegOpenKeyExW(-2147483646,SYSTEM\CurrentControlSet\Services\VSS\Diag,...)
    の呼び出し中に予期しないエラーが発生しました。hr = 0x80070005, アクセスが拒否されました。  。   
    操作:    バックアップを初期化します
    

    原因は、DHCPサーバの機能が追加されており、DHCPサービスのアカウントが
    追加されていると SYSTEM\CurrentControlSet\Services\VSS\Diag以下の
    レジストリキーを上書きされている。
    そのため、アクセス許可が無いためにエラーが記録されるとのこと。

    参考

    https://support.microsoft.com/ja-jp/kb/2298620

  • Windows Server のDNSサーバにコマンドでレコードを追加する

    WindowsのDNSサーバは、GUIで操作できるため、2,3個のレコード追加ならば、
    GUIでプチプチと作業した方が楽。
    10個以上のレコードを追加しようと思うと、めんどくさいのでコマンドを使って登録した方がよい。

    レコードを追加するコマンド

    dnscmd DNSサーバ名(省略するとローカルホスト) /recordadd ゾーン名 ホスト名 RRの種類 RRデータ
    
    • RRの種類は、AとかCNAME、NS、MXなどのこと。
    • RRデータは、IPアドレス、ホスト名/ドメイン名のこと。RRの種類によって変わる。

    例えば、ゾーン「ad.xenos.jp」に、gonbeというホスト名のAレコードを追加する場合。

    dnscmd /recordadd ad.xenos.jp gonbe A 172.16.1.99
    

    大量に追加する場合は、このコマンドをExcelにホスト名とIPアドレスを一覧化して、
    うまいことコマンドを生成するとよい。

  • Windows10で、AptPackageIndexUpdateが急に動作した

    Windows 10で、急にデスクトップにAptPackageIndexUpdateのコンソールが立ち上がってきて、いろいろとダウンロードを始めた。

    AptPackageIndexUpdateは、Bash on Windowsの機能の1つで、自動的に「apt-get update」を行っている。
    Windowsのタスクに登録されていて、勝手に動作するようだ。

    タスクの場所

     \Microsoft\Windows\Windows Subsystem for Linux\AptPackageIndexUpdate
    

    実際に実行されているコマンド

     /c start "AptPackageIndexUpdate" /min %windir%\System32\LxRun.exe /update
    

    参考


    https://github.com/Microsoft/BashOnWindows/issues/841

  • Windows Server 2012 の重複排除機能をOFFにしたときの対応

    Windows Server 2012 の重複排除機能を使っている状態から、OFFにしたときの問題と対応について。

    ◆問題

    Windows Server 2012(および2012 R2)にて、重複排除機能を使用した場合、
    開始時には自動的に重複排除の機能が動作するが、機能をOFFにしたときには
    重複排除されたままの状態である。
    放置しておいても、解除されるようにみえず、手動でコマンドを実行する対処が必要。

    ◆対応方法

    1. 重複排除機能を使用していたサーバにログオンする。
    2. Powershellを管理者モードで起動する。
    3. 次のコマンドレットを実行する
      Start-DedupJob (D: などのボリュームを指定) -Type Unoptimization
    4. 実行したコマンドレットの状態を確認する
      Get-DedupJob -Type Unoptimization
    5. 重複排除が終わるまで待つ。
      めちゃくちゃ時間がかかるはず。

    ◆動作させてみたところ

     PS C:\>
     PS C:\> Start-DedupJob -Volume D: -Type Unoptimization
     
     Type               ScheduleType       StartTime              Progress   State                  Volume
     ----               ------------       ---------              --------   -----                  ------
     Unoptimization     Manual                                    0 %        Queued                 D:
     
     
     PS C:\>
     PS C:\>
     PS C:\> Get-DedupJob -Type Unoptimization
     
     Type               ScheduleType       StartTime              Progress   State                  Volume
     ----               ------------       ---------              --------   -----                  ------
     Unoptimization     Manual             15:19                  0 %        Running                D:
     
     
     PS C:\>
     PS C:\>
    
  • Windows Server 2012 Datacenter EditionはVMware環境でも仮想サーバ台数無制限にライセンス適用できる

    Windows Server 2012 Datacenter Editionは、作成する仮想マシンの数が無制限というライセンスになっている。
    これは、Hyper-V上の話だけではなく、VMwareなどの仮想ハイパーバイザでも有効とのこと。

    かなり高額だが、Datacenter Editionを購入すれば、仮想サーバを作りたい放題になる。

    マイクロソフト仮想環境ライセンスガイドにも明記されている。

    企業にとってはお買い得なライセンス形態になっているね。

  • Windows にMySQL Serverをインストールしたときのデータ保存先

    Windows にMySQL Serverをインストールしたときのデータ保存先は、以下のフォルダ。

    C:\Program Files\MySQL\MySQL Server 5.7\data
    

    なお、5.7の部分は、インストールしたMySQL Serverのバージョンによって変わる。

  • Powershellをコマンドレットの途中で改行する

    Powershellでコマンドレットを使っていると、引数やオプションなどが増えて1行が長くなる。 そうするとコマンドが書きにくく、可読性も下がるので、途中で改行を行えると便利だ。

    Powershellのコマンドレット中の改行は「`」で行える。 「`」がモニタ上のゴミのように見えるのがいけていない。

    改行になると、「>> 」が行頭に付く。 コマンドレットの終わりは、空行でENTERすると実行される。

    例)

    PS C:\> Get-HotFix  -id kb3107998 , `
    >> KB3101746, `
    >> KB3102810
    >>
    
    Source        Description      HotFixID      InstalledBy          InstalledOn
    ------        -----------      --------      -----------          -----------
    PCname        Security Update  KB3101746     NT AUTHORITY\SYSTEM  2015/11/11 0:00:00
    PCname        Update           KB3102810     NT AUTHORITY\SYSTEM  2015/11/11 0:00:00
    PCname        Update           KB3107998     NT AUTHORITY\SYSTEM  2015/11/11 0:00:00
    
  • Powershellからメールを送信する方法

    Windows 7 や Windows Server 2008 R2などでは、初期状態ではTelnetクライアントが機能としてインストールされていないため、Telnetを使ったメール送信テストが使用できない。

    Windows 7 や Windows Server 2008 R2 などでは、標準でインストールされている Powershellにメール送信コマンドがあり、それを使うことで代用できる。 難点としては、エラー時のコードがわかりにくいこと、ポート番号を変えられないこと。

    Powershellでメールを送信するには、Powershellを立ち上げて、 [[Send-MailMessage]] コマンド(コマンドレット)を実行する

     
    Send-MailMessage 
     -To 宛先のメールアドレス 
     -From 送信元のメールアドレス 
     -SmtpServer SMTPサーバ(FQDNやIPアドレス)
     -Subject "件名をダブルクォーテーションの中に書く"
     -Body "本文をダブルクォーテーションの中に書く"
    

    認証の無しでよい場合は、以下のようになる

     Send-MailMessage -To hogehoge@xenos.jp -From hoge@xenos.jp -SmtpServer smtpserver.xenos.jp -Subject "TEST MAIL from Powershell" -Body "This is test mail."
    

    また認証とSSLでのアクセスが必要な場合は下記のオプションを付ける。

     -Credential ユーザ名
     -UseSsl
    

    Telnetを使ってメールを送るのに比べたら、Powershellを使ってメールを送る方が簡単かも。 これでSMTPサーバに接続用の穴をあけたとか、FWに穴をあけたとか、 そういうことの確認が簡単にできる。

    ■参考

  • Windows Updateに、Windows 10へのアップグレードが表示されるようになった。

    2015年10月のWindows Updateから、Windows 10へのアップグレードが表示されるようになった。以前に公開されていたWindows 10 へのアップグレード予約ではなく、アップグレードのボタンだ。

    このアップグレードだが、一部の環境なのか、全体的なものなのか、検証してみた。アップグレードがWindows Updateの画面に現れるかどうかは、IE11 (Internet Explorer 11)がインストールされているか、が関係している。IE11をインストールしていないPCでは、何回Windows Updateの確認をしたが表示されなかった。IE11をインストールした後に確認したところ、Windows Updateに表示されるようになった。トリガーになっているのは、IE11だった。

    なお、IE11をインストール後、Windows 10 のアップグレードが表示された後に、IE11をアンインストールしてみたが、Windows Updateの画面には、10へのアップグレードが表示されたままだった。一度、表示されてしまうと、消せないようだ。