12.19.2017

[Windows] office365 Windows10 PowerShell接続方法

1.「IT プロフェッショナル 用 Microsoft Online Services サインイン アシスタント RTW」のインストール
下記サイトよりダウンロードする(32bit or 64bit)
https://www.microsoft.com/ja-jp/download/details.aspx?id=41950
ファイル名: msoidcli_64.msi

2.PowerShellの起動
PowerShellを右クリックし、「管理者として実行する」を選択し、起動する

3.実行ポリシーの変更
この設定は、コンピューターで一度だけ構成すれば、接続ごとに行う必要はない。
Set-ExecutionPolicy RemoteSigned

実行ポリシーは、信頼されていないスクリプトからの保護に役立ちます。実行ポリシーを変更すると、about_Execution_Policies
のヘルプ トピック (https://go.microsoft.com/fwlink/?LinkID=135170)
で説明されているセキュリティ上の危険にさらされる可能性があります。実行ポリシーを変更しますか?
[Y] はい(Y)  [A] すべて続行(A)  [N] いいえ(N)  [L] すべて無視(L)  [S] 中断(S)  [?] ヘルプ (既定値は "N"): Y

4.ExchangeOnlineへサインイン
$Livecred = Get-Credential
ポップアップ表示が出るので
[ID]****@****.co.jp / [Password] を入力

$SessionOption= New-PSSessionOption -ProxyAuthentication Negotiate -SkipRevocationCheck
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $LiveCred -Authentication Basic -AllowRedirection -SessionOption $SessionOption
Import-PSSession $Session

5.以後、コマンドを入力していく

6.ExchangeOnlineからサインアウト
セッションを終了しないと、セッションがタイムアウト時間まで保持され続けるため、設定が終わったら、ExchangeOnlineからのセッションを切断すること。
Remove-PSSession $Session

[Windows]Exchange カレンダーアクセス権 PowerShell コマンド

■ アクセス権限の種類
=========
1.  Owner : 所有者 : 共有フォルダー内のすべてのアイテムの作成、参照、変更、削除、およびサブフォルダーの作成が可能でございます。また、他のユーザーに対するアクセス権限の付与、変更、削除も可能でございます。
2.  PublishingEditor : 発行編集者 : すべてのアイテムの作成、参照、変更、削除、およびサブフォルダーの作成が可能でございます。
3.  Editor :  編集者 : すべてのアイテムの作成、参照、変更、削除が可能でございます。
4.  PublishingAuthor : 発行作成者 : アイテムの作成と参照、サブフォルダーの作成、および自身が作成したアイテムの変更と削除が可能でございます。
5.  Author : 作成者 : アイテムの作成と参照、および自身が作成したアイテムの変更と削除が可能でございます。
6.  NonEditingAuthor : 非編集作成者 : アイテムの作成と参照、および自身が作成したアイテムの削除。
7.  Contributor : 寄稿者 : アイテムの作成のみ。(動作検証を行いましたところ、予定表では予定のアイテムの作成自体が行えない動作を確認しました。None と類似する動作を確認しております。そのため、予定表をご利用いただく上では、Contributor 以外のアクセス権限をご利用いただけますと幸いでございます。)
8.  Reviewer :  参照者 : アイテムの参照のみ。(予定アイテムをダブルクリックし、詳細情報を参照することが可能でございます。)
9.  LimitedDetails : 空き時間情報、件名、場所 : 予定表共有の場合のみ、予定表イベントの空き時間情報、件名、および場所の参照が可能でございます。(予定アイテムをクリックすると、件名、場所、日時は表示されますが、ダブルクリックすることはできません。)
10. AvailabilityOnly : 空き時間情報 : 予定表共有の場合のみ、予定表イベントの空き時間情報の参照が可能でございます。(予定アイテムが [予定ありと表示されます。)
11. None : なし : 実行できる操作なし。ユーザーはアクセス権リストに残りますが、アクセス権限はなく、フォルダーは開くことができません。


PowerShell コマンドレットです。

①ExchangeOnlineへサインイン
$Livecred = Get-Credential
[ID]****@****.co.jp / [Password] を入力
$SessionOption= New-PSSessionOption -ProxyAuthentication Negotiate -SkipRevocationCheck
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $LiveCred -Authentication Basic -AllowRedirection -SessionOption $SessionOption
Import-PSSession $Session
②カレンダーアクセス権の確認コマンド
Get-MailboxFolderPermission -Identity "会議室名or会議室のメールアドレス:\予定表"

③カレンダーアクセス権の設定 以下はReviewer権限を与えるコマンドです。
Set-MailboxFolderPermission -Identity "会議室名or会議室のメールアドレス:\予定表" -AccessRights Reviewer -User '既定'
例)Set-MailboxFolderPermission -Identity "room:\calendar" -AccessRights Reviewer -User '既定'​

※予定表が見つかりませんといった赤文字のメッセージが表示された場合は、
[会議室名:\予定表]の箇所を[会議室名:\calendar]に置き換えて再度実行をしてみる。

④カレンダー表示一覧の状態確認コマンドです。
Get-CalendarProcessing -Identity "会議室名or会議室のメールアドレス" | fl
例)Get-CalendarProcessing -Identity "room" | fl

⑤カレンダー表示の設定変更コマンドです。
Set-CalendarProcessing -Identity "会議室名or会議室リソースのメールアドレス" -DeleteSubject 0 -AddOrganizerToSubject 1 -DeleteComments 0
例)Set-CalendarProcessing -Identity "room" -DeleteSubject 0 -AddOrganizerToSubject 1 -DeleteComments 0

表示される一覧のうち今回設定するのは以下の項目。
 DeleteSubject:スケジュールの件名を削除する
 AddOrganizerToSubject:件名に会議開催ユーザーの名前を付与する
 DeleteComments:本文を削除する
⑥ユーザーの追加設定コマンドです。
Add-MailboxFolderPermission -Identity "会議室名or会議室のメールアドレス:\予定表" -User "ユーザーのメールアドレスorグループ" -AccessRights Reviewer
例)Add-MailboxFolderPermission -Identity "room:\予定表" -User ***@****.co.jp -AccessRights Reviewer

⑦ユーザーの削除設定コマンドです。
​Remove-MailboxFolderPermission -Identity "会議室名or会議室のメールアドレス:\予定表" -User "ユーザーのメールアドレスorグループ"
例)Remove-MailboxFolderPermission -Identity "room:\予定表" -User ***@****.co.jp

⑧ExchangeOnlineからサインアウト
セッションを終了しないと、セッションがタイムアウト時間まで保持され続けるため、
設定が終わったら、ExchangeOnlineからのセッションを切断すること。
Remove-PSSession $Session

8.22.2017

[Windows] Batch 曜日取得方法

久しぶりに

ちょっとバックアップファイル削除用バッチを作成したのでメモ


/::::::::::::::::::::::::::::::::::::::::::/
@echo off

rem ------------------------
rem 概要
rem ------------------------
rem 土日はバックアップしない
rem 月火水木金はバックアップする

rem 月曜は先週分までを残す
rem 3世代(3日分)残す
rem 今日、昨日、一昨日

rem 今日、昨日、一昨日を取得
rem 曜日を取得
rem 先週の月曜の日付を取得

rem 水木金の場合、後ろ2日分を残す
rem 月火の場合、土日を抜いた後ろ2日分を残す
rem 木、金、月を残す
rem ------------------------

rem ===========================
rem 初期設定
rem ===========================
rem Backup File1 PATH
SET BF1=D:\BK\File1\

rem Backup File2 PATH
SET BF2=D:\BK\File2\

rem Backup File Name
SET BAK=*.bak

@REM 日付分割
SET YY=%date:~0,4%
SET MM=%date:~5,2%
SET DD=%date:~8,2%

rem ===========================
rem 今日の日付取得
SET HOY=_%YY%_%MM%_%DD%_

rem 閏年取得
Call :URUTOSHI %YY%

rem 今日の曜日取得
@REM 日付分割
SET Y1=%date:~0,2%
SET Y2=%date:~2,2%

@REM ゼロを補正
IF "0"=="%DD:~0,1%" SET DD=%DD:~1,1%
IF "0"=="%MM:~0,1%" SET MM=%MM:~1,1%

@REM 曜日計算(ツェラーの公式より)
rem 例:2017年 C=20, Y=17と置き換える
rem 2017年1,2月は、2016年13月1日・14月1日とする
rem 公式
rem h={d+[26(m+1)/10]+Y+[Y/4]+Γ} mod 7
rem Γ=5C+[C/4]

rem 1,2月のとき年月を変更
IF 1==%MM% (
  SET /A Y2=%Y2%-1
  SET /A M1=13
) ELSE IF 2==%MM% (
  SET /A Y2=%Y2%-1
  SET /A M1=14
) ELSE (
  SET /A M1=%MM%
)

SET /A P1=26*(%M1%+1)
SET /A P2=5*%Y1%+(%Y1%/4)
SET /A P3=%P1%/10
SET /A P4=%Y2%/4
SET /A P5=%DD%+%P3%+%Y2%+%P4%+%P2%
SET /A WW=%P5%%%7
rem echo "P1:"%P1%
rem echo "P2:"%P2%
rem echo "P3:"%P3%
rem echo "P4:"%P4%
rem echo "P5:"%P5%

@REM Week s m t w t f s
@REM %WW% 1 2 3 4 5 6 0
rem echo "曜日:"%WW%

@REM ゼロを補正
SET MM=0%MM%
SET MM=%MM:~-2%
rem SET DD=0%DD%
rem SET DD=%DD:~-2%

rem 昨日の日付取得
Call :1DAYAGO

rem 一昨日の日付取得
Call :2DAYAGO

if "%WW%"=="1" goto SUNDAY
if "%WW%"=="2" goto MONDAY
if "%WW%"=="3" goto TUESDAY
if "%WW%"=="4" goto WEDNESDAY
if "%WW%"=="5" goto THURSDAY
if "%WW%"=="6" goto FRIDAY
if "%WW%"=="0" goto SATURDAY

:SUNDAY
rem 金曜日と同じため、何もさせない
rem バックアップをしていない
goto END

:MONDAY
echo "月曜日"
rem 取得FRIDAY
SET /A NUM=3
Call :LASTWEEK %NUM%

rem 取得THURSDAY
SET /A NUM=4
Call :LASTWEEK %NUM%

rem 取得1週間前MONDAY
SET /A NUM=7
Call :LASTWEEK %NUM%
goto END

:TUESDAY
echo "火曜日"
rem 取得FRIDAY
SET /A NUM=4
Call :LASTWEEK %NUM%

rem 取得1週間前MONDAY
SET /A NUM=8
Call :LASTWEEK %NUM%
goto END

:WEDNESDAY
echo "水曜日"
rem 取得1週間前MONDAY
SET /A NUM=9
Call :LASTWEEK %NUM%
goto END

:THURSDAY
echo "木曜日"
rem 取得1週間前MONDAY
SET /A NUM=10
Call :LASTWEEK %NUM%

rem 取得今週MONDAY
SET /A NUM=3
Call :LASTWEEK %NUM%
goto END

:FRIDAY
echo "金曜日"
rem 取得1週間前MONDAY
SET /A NUM=11
Call :LASTWEEK %NUM%

rem 取得今週MONDAY
SET /A NUM=4
Call :LASTWEEK %NUM%
goto END

:SATURDAY
rem 金曜日と同じため、何もさせない
goto END
rem >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

:END
rem echo "今日"%HOY%
rem echo "昨日"%AYE%
rem echo "一昨日"%ANT%
rem echo "木曜"%JUE%
rem echo "金曜"%VIE%
rem echo "今月"%MON%
rem echo "先月"%LUN%
Call :FILE_DEL %BF1%
Call :FILE_DEL %BF2%

rem PAUSE
EXIT

rem :::::::::::::::::::::::::::::::::::::::::::::::::::
rem 関数
rem :::::::::::::::::::::::::::::::::::::::::::::::::::
:1DAYAGO
SET /A NUM=1
Call :LASTWEEK %NUM%
EXIT /B

:2DAYAGO
SET /A NUM=2
Call :LASTWEEK %NUM%
EXIT /B

:LASTWEEK
SET /A SP=%DD% - %1
SET SP=0%SP%
SET SP=%SP:~-2%

IF -==%SP:~0,1% (
  rem 先月取得
  Call :SENGETSU %1
rem ) ELSE IF 0==%SP:~0,1% (
) ELSE IF 00==%SP% (
  rem 先月取得
  Call :SENGETSU %1
) ELSE (
  IF 1==%1 (
    SET AYE=_%YY%_%MM%_%SP%_
  ) ELSE IF 2==%1 (
    SET ANT=_%YY%_%MM%_%SP%_
  ) ELSE IF 3==%1 (
    IF "5"=="%WW%" (
      SET MON=_%YY%_%MM%_%SP%_
    ) ELSE (
      SET VIE=_%YY%_%MM%_%SP%_
    )
  ) ELSE IF 4==%1 (
    IF "2"=="%WW%" (
      SET JUE=_%YY%_%MM%_%SP%_
    ) ELSE IF "3"=="%WW%" (
      SET VIE=_%YY%_%MM%_%SP%_
    ) ELSE IF "5"=="%WW%" (
      SET MON=_%YY%_%MM%_%SP%_
    ) ELSE IF "6"=="%WW%" (
      SET MON=_%YY%_%MM%_%SP%_
    )
  ) ELSE IF %1 GEQ 7 (
      IF %1 LEQ 11 (
        rem %1==7-11
        SET LUN=_%YY%_%MM%_%SP%_
      )
  )
)
EXIT /B

:SENGETSU
rem Call :SENGETSU %1(NUM)
IF 00==%SP% (SET SP=)
IF %MM%==01 (SET MA=12&& SET /A DA=31%SP%&& SET /A YA=%YY%-1)
IF %MM%==02 (SET MA=01&& SET /A DA=31%SP%&& SET YA=%YY%)
IF %MM%==03 (SET MA=02&& SET /A DA=28%SP%&& SET YA=%YY%&& IF %YMOD%==0 (SET /A DA=29%SP%))
IF %MM%==04 (SET MA=03&& SET /A DA=31%SP%&& SET YA=%YY%)
IF %MM%==05 (SET MA=04&& SET /A DA=30%SP%&& SET YA=%YY%)
IF %MM%==06 (SET MA=05&& SET /A DA=31%SP%&& SET YA=%YY%)
IF %MM%==07 (SET MA=06&& SET /A DA=30%SP%&& SET YA=%YY%)
IF %MM%==08 (SET MA=07&& SET /A DA=31%SP%&& SET YA=%YY%)
IF %MM%==09 (SET MA=08&& SET /A DA=31%SP%&& SET YA=%YY%)
IF %MM%==10 (SET MA=09&& SET /A DA=30%SP%&& SET YA=%YY%)
IF %MM%==11 (SET MA=10&& SET /A DA=31%SP%&& SET YA=%YY%)
IF %MM%==12 (SET MA=11&& SET /A DA=30%SP%&& SET YA=%YY%)

@REM Week s m t w t f s
@REM %WW% 1 2 3 4 5 6 0

IF 1==%1 (
  SET AYE=_%YA%_%MA%_%DA%_
) ELSE IF 2==%1 (
  SET ANT=_%YA%_%MA%_%DA%_
) ELSE IF 3==%1 (
  IF "5"=="%WW%" (
    SET MON=_%YA%_%MA%_%DA%_
  ) ELSE (
    SET VIE=_%YA%_%MA%_%DA%_
  )
) ELSE IF 4==%1 (
  IF "2"=="%WW%" (
    SET JUE=_%YA%_%MA%_%DA%_
  ) ELSE IF "3"=="%WW%" (
    SET VIE=_%YA%_%MA%_%DA%_
  ) ELSE IF "5"=="%WW%" (
    SET MON=_%YA%_%MA%_%DA%_
  ) ELSE IF "6"=="%WW%" (
    SET MON=_%YA%_%MA%_%DA%_
  )
) ELSE IF %1 GEQ 7 (
  IF %1 LEQ 11 (
    rem %1==7-11
    SET LUN=_%YA%_%MA%_%DA%_
  )
)
EXIT /B

:URUTOSHI
rem 閏年(閏年の場合はYMOD=0)
rem 年を4で割った余りをYMODに取得
SET /A YMOD=%1 %% 4

rem 余りがない(4の倍数である)
IF "%YMOD%"=="0" (
   rem 年を100で割った余りを取得
   SET /A YMOD_100=%1 %% 100

   rem 100で割りきれているか
   IF !YMOD_100!==0 (
      rem 年を400で割った余りを取得
      SET /A YMOD_400=%1 %% 400

      REM 400で割り切れていない場合(2100年など)
      IF NOT !YMOD_400!==0 (
         REM 閏年を無に設定
         SET /A YMOD=1
      )
   )
)
EXIT /B

:FILE_DEL
rem 対象ディレクトリを検索後、ファイルを削除
for /r %1 %%A in (%BAK%) do (
   rem 今日分を除く
   echo %%A | find "%HOY%" >NUL
   if errorlevel 1 (
     rem 昨日分を除く
     echo %%A | find "%AYE%" >NUL
     if errorlevel 1 (
       rem 一昨日分を除く
       echo %%A | find "%ANT%" >NUL
       if errorlevel 1 (
         rem 先週の月曜を除く
         echo %%A | find "%LUN%" >NUL
         if errorlevel 1 (
           rem 今週の月曜を除く
           echo %%A | find "%MON%" >NUL
             if errorlevel 1 (
               rem 金曜を除く
               echo %%A | find "%VIE%" >NUL
               if errorlevel 1 (
                 rem 木曜を除く
                 echo %%A | find "%JUE%" >NUL
                 if errorlevel 1 (
                   rem echo %%A
                   DEL /Q %%A
                 )
               )
             )
          )
       )
     )
   )
)
EXIT /B

/::::::::::::::::::::::::::::::::::::::::::/
以上

3.27.2017

[HP]P2000 G3 Strage Management Utilityのログイン画面が表示されない

HP P2000 G3でStrage Management Utilityのログイン画面が表示されない場合の対応

SSHでログイン可能なコントローラーにログインする
AまたはBのローカルIPでSSHする
ログイン後、下記の内容が表示されるはず
-------------
HP StorageWorks MSA Storage P200 G3
System Name:
System Location:
Version:
#
-------------

ログインできたら、再起動したいコントローラーを入力
#restart mc [both or a or b]

例:restart mc a
下記の内容が出力されるので、最後に「yes」を入力し、Enterを押す
-------------
# restart mc a
During the restart process you will briefly lose communication with
the specified Management Controller(S).
Continue?yes
-------------

正常に再起動されると、
Success: コマンドは正常に完了しました。 - MC Aが再起動されました。

yesを入力せずにEnterを押すと、
Info: ユーザーによってMCの再起動が中止されました。
Error: ユーザーによってコマンドが中止されました。
となるので、再度コマンドを入力する

以上

2.07.2017

[VMware]vCenter 6.5 and View Horizon 7.0.3

VMware 6.5とHorizon 7.0.3をインストールしてみました。

設定は、ほぼデフォルト状態です。
海外の人が同じようにインストールしてました。

が、Horizonを利用してSviConfig.exeで証明書の更新ができない障害が1つでたので、
メモみたいなものです。


とりあえずインストール順番を。
OSは、Windows Server 2012 R2 Standard
Active Directory利用

1.Windows update及び.Net Framework4.6.1をインストール。
 ※View Composer7.0.2から.Net Framework4.6.1以上が必要なため

2.役割と機能の追加ウィザードから、デスクトップエクスペリエンスを追加。
 ※vSphere Web Clientの表示に必要なため

3.レジストリをいじる!←ここ重要!!ほんとに
 ※vCenter Server6.5をそのままインストールすると下記のキー権限が上位を継承しない
■HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\VMware, Inc.
6.0u2a は、このディレクトリは作成されない
6.5 は、作成されるも「Administrator フルコントロール なし このキーのみ」の1つだけとなります。

なので、先に手動でキーを作成し1つ上(Wow6432Node)と同じアクセス権を付与させておく。
キー(VMware, Inc.)を作成すると下記5つのアクセス権ができる。
「ALL APPLICATION PACKAGES, CREATOR OWNER, SYSTEM, Administrators, Users」

4.vCenter Server6.5のインストール
今回は、組み込みデプロイ(同じホストにPSCも)、組み込みデータベース(VMware Postgres)を利用

5.vSphere Web Clientのログイン設定
ローカルイントラネットにサイトを追加
インターネットのレベルのカスタマイズからファイルのダウンロードを有効にする

6.拡張認証プラグインのダウンロード及びインストール
 ※AD利用のため

7.vSphere Web ClientのADアカウント利用設定
ログイン後、管理からSSO設定でアイデンティティソースにドメインを追加
システム管理者にAD VC管理者用アカウントを追加
ユーザー及びグループのグループに必要なアカウントを追加
 ※このあたりは必要に応じて

vCenter Serverはこれで完了!
ここからはHorizonの設定

8.MS SQL Server 2012 express をインストール
 ※デフォルト状態(笑

9.ODBC64bitの設定

10.VMware Horizon 7 Composerのインストール
 ※インストール後、再起動

11.VMware Horizon 7 Connection Serverのインストール

12.VMware Horizon 7 Administratorから設定
View構成のサーバから、vCenter Serverの追加
同様に接続サーバを選択し、セキュリティサーバのペアリングパスワードを指定

13.VMware Horizon 7 Security Serverのインストール

14.証明書の更新
接続サーバ及びセキュリティサーバの証明書を更新
mmcからAD証明書認証局、もしくは外部認証局を利用して作成
上記2つは簡単に入替えができる

同様にvCenter Serverの証明書を作成
sviconfig.exeから変更すると、3.レジストリの変更をしてないとエラーになって変更することができない。かつレジストリを見るとアカウント権限が何も入ってない状態になるため、権限を付与することさえできない状態に陥る。
この場合、composerをバックアップ後、アンインストールしてから3のレジストリを変更し、再度インストールしバックアップから復元、もしくは再設定させる。

SviConfig -operation=replacecertificate -delete=false
更新する証明書を選択する

以上でHorizonも完了
VMwareサポートと、この件で何度もやりとりしたけど、
結局、検証を続け答えを出したのは自分。
もう少し、いろいろと検証して回答を早く欲しかったけど。。。
検証したらわかる回答しかこなかったなぁ。。。

海外のサイトも検索しまくってみたけど、ここまでの情報はなかったよ。
Horizon7.0.3のインストールはあったけど、証明書のとこの記載はなかったし。
結構、ハマってHorizonとか.NETをかなり怪しんでたけど、結果
VC6.5のレジストリかよ!みたいな。。。Orz
やっぱり、まだ人柱を待った方がいいのかなぁ。
他にもバグとか出てきそうな予感がする。。。
本番に使っていいのか悩むけどなぁ;

もっと情報出して!


ちなみに、このレジストリは
■HKEY_LOCAL_MACHINE\SOFTWARE\VMware, Inc.
6.0u2aも6.5も同様のアクセス権を持っていました。

以上