Category: PowerShell


Hyper-V サーバー内の 仮想マシンを別の仮想ホストへ移動するためのPowerShell コマンドです

PowerShell を利用するメリットの一つとして、仮想マシンの移動を指定順序で実行することができます。
例えば、移動元仮想ホスト上仮想マシンをすべて移動先仮想ホストへ移動するといったことができます。
この場合、移動元仮想ホストのディスクに重複除去機能を使用している場合は、移動先仮想ホストのディスクの空き容量に注意する必要があります。

$VMname = “移動したい仮想マシン名”
$VMHost = “移動先ホスト名”
$Path = “移動先パス名”
Move-VM $VMname -DestinationHost $Host -DestinationStoragePath $Path

参考:
PowerShell を使って仮想マシンの保存場所を移動する

Windows Server 2016 Standard やDataCenter で、Windows Server Essentialsの機能を利用するには、Windows Server Essentials エクスペリエンスの役割を追加し、構成をする必要があります。
Windows Server Essentials エクスペリエンスの役割の追加と構成は、PowerShellを使うと簡単です。
【Windows Server Essentials エクスペリエンスの役割を追加】

Install-WindowsFeature ServerEssentialsRole
Windows PowerShell
Copyright (C) 2016 Microsoft Corporation. All rights reserved.
PS > Install-WindowsFeature ServerEssentialsRoleSuccess Restart Needed Exit Code      Feature Result
——- ————– ———      ————–
True    No             Success        {BranchCache, ファイル サービスおよび iSCS…
警告: Windows Server Essentials エクスペリエンスを構成する必要があります。

【Windows Server Essentials エクスペリエンスを構成】

Start-WssConfigurationService -NetBiosName 内部ドメイン名 -NewAdminCredential 管理者アカウント -Force

※コマンドを実行すると、認証ダイアログが表示されます。
管理者アカウントとパスワードを入力することで、コマンドが実行されます。
コマンドが実行されると途中でサーバーが再起動されます。
再起動後、構成中であるウィザード画面が自動表示され、構成を続けます。
構成が完了すると、下記のとおりとなります。
Azure040.png

Windows PowerShell
Copyright (C) 2016 Microsoft Corporation. All rights reserved.
PS > Start-WssConfigurationService -NetBiosName Contoso -NewAdminCredential admin -Force

Status ErrorCode Message                                        Progress
—— ——— ——-                                        ——–
Running         0 Windows Server Essentials is being configured.        0

【Windows Server Essentials エクスペリエンスを構成の状況を確認】Windows Server Essentials エクスペリエンスを構成をPowerShellでした場合、進捗状況がわからなくなります。
PowerShell で進捗状況を確認するには以下のコマンドレッドを使用します。
サーバー再起動後は、構成ウィザードが自動実行されますので、進捗状況を確認することができます。

Get-WssConfigurationStatus
Windows PowerShell
Copyright (C) 2016 Microsoft Corporation. All rights reserved.
PS > Get-WssConfigurationStatus

Status ErrorCode Message                                        Progress
—— ——— ——-                                        ——–
Running         0 Windows Server Essentials is being configured.        18

Windows Server 2016 Essentials を使っていくとユーザーアカウントが 25ユーザー以上になってしますことがあります。
その場合には、Windows Server 2016 Essentials を Standard へアップグレードすることによって、100ユーザーまでそのまま使い続けることができます。
ライセンスは変更(CALが必要)になりますので、ご注意ください。

Windows Server 2016 Essentials は、Standard へのアップグレードは、コマンドによって行います。
アップグレードの方法は、Windows Server 2012 R2 EssentialsWindows Server 2012 Essentials と同じです。

1.PowerShell を管理者で実行し、次にコマンドを入力します。

dism /online /set-edition:ServerStandard /accepteula /productkey:Product Key
Windows PowerShell
Copyright (C) 2016 Microsoft Corporation. All rights reserved.
PS > dism /online /set-edition:ServerStandard /accepteula /productkey:Product Key展開イメージのサービスと管理ツール
バージョン: 10.0.14393.0イメージのバージョン: 10.0.14393.0コンポーネントの更新を開始しています…
プロダクト キーのインストールを開始しています…
プロダクト キーのインストールが完了しました。パッケージ Microsoft-Windows-ServerSolutionEdition~31bf3856ad364e35~amd64~~10.0.14393.0 を削除しています
[==========================100.0%==========================]
コンポーネントの更新が完了しました。エディション固有の設定の適用を開始しています…
エディション固有の設定の適用が完了しました。

操作は正常に完了しました。
Windows を再起動してこの操作を完了してください。
今すぐコンピューターを再起動しますか? (Y/N)

2.再起動後、Standard に変更されています。

SQL Server 2008 からSQL Server 2014へアップグレード後に、SQL Server エージェントのジョブの実行が失敗しました。エラーとなっているのは、PowerShellのスクリプトでファイルを複製する部分でした。

次のユーザーとして実行: 実行ユーザー名。
ジョブ ステップは、PowerShell スクリプトの XX 行目でエラーを受け取りました。
対応する行は ‘Copy-Item $File1 $File2’ です。
スクリプトを修正し、ジョブのスケジュールを設定し直してください。
PowerShell によって返されたエラー情報:
‘無効なパス: ‘\\Server\share\FileName1’。
‘.  プロセス終了コード -1。.  ステップは失敗しました。

どうやら、UNCでファイルを指定していることがいけないとのことなので、以下のようにスクリプトを修正して正しく実行されることが確認できました。

修正前 Copy-Item \\Server\share\複製元 複製先
修正後 Copy-Item FileSystem::\\Server\share\複製元 複製先

Hyper-V サーバー内の 仮想マシンを別の記憶領域へ移動するためのPowerShell コマンドです

PowerShell を利用するメリットの一つとして、仮想マシンの移動を指定順序で実行することができます。

$VMname = “移動したい仮想マシン名”
$Path = “移動先パス名”
Move-VMStorage $VMname –DestinationStoragePath $Path

参考:
PowerShell を使って仮想マシンを移動する

Windows Server Essentials では、Office 365 と連携によって、Exchange Online の一部機能を管理することができます。
Exchange Online のそれ以外の機能は、以下の PowerShell コマンドを実行することで、リモート管理ができるようになります。

$UserCredential = Get-Credential
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection
Import-PSSession $Session

 

Windows Server Essentials では、Office 365 と連携によって、SharePoint Online のサイトの管理をすることができます。
SharePoint Online のそれ以外の機能をリモート管理するには、SharePoint Online Management Shell をインストールする必要があります。

SharePoint Online Management Shell

インストールが終了したら、SharePoint Online に接続します。
・SharePoint Online Management Shell を実行する場合

$credential = Get-Credential
$url = “https://サブドメイン名-admin.sharepoint.com”
Connect-SPOService -Url $url -credential $credential

・Windows PowerShell を実行する場合

Import-Module Microsoft.Online.SharePoint.PowerShell -DisableNameChecking
$credential = Get-Credential
$url = “https://サブドメイン名-admin.sharepoint.com”
Connect-SPOService -Url $url -credential $credential

Windows Server Essentials では、Office 365 と連携していますが、Lync Online は直接利用しません。
そこで、Lync Online を リモート管理できるようにLync Online Connector モジュールをインストールする必要があります。
インストールするのは、以下の2つです。

IT プロフェッショナル 用 Microsoft Online Services サインイン アシスタント RTW
Lync Online Connector モジュール

インストールが終了したら、Lync Online へ接続します。

Import-Module LyncOnlineConnector
$credential = Get-Credential
$lyncSession = New-CsOnlineSession -Credential $credential
Import-PSSession $lyncSession

Windows Server Essentials では、Office 365 と連携するために、専用のOffice 365 統合モジュールをインストールします。
PowerShell を使い、より高度に Azure Active Directory を管理するには、Azure ADモジュールをインストールする必要があります。
インストールするのは、以下の2つです。

 IT プロフェッショナル 用 Microsoft Online Services サインイン アシスタント RTW
Azure Active Directory Module for Windows PowerShell (64 ビット バージョン)

インストールが終了したら、Azure ADに接続します。
・Windows PowerShell 用 Windows Azure Active Directory モジュールを実行する場合

$msolcred = Get-Credential
Connect-Msolservice -Credential $msolcred

・Windows PowerShell を実行する場合

Import-Module MSOnline
$msolcred = Get-Credential
Connect-Msolservice -Credential $msolcred

今まで紹介したPowerShell を組み合わせると、すべてのクライアントバックアップの履歴を一覧表示することができます。

PS> Get-WssComputer | foreach-object{ $dn = $_.DeviceName; $OS = $_.OperatingSystem;if($OS -like ‘*SkuType=PC*’){$dn; Get-WSSClientBackup $dn | Format-Table}}
SurfacePro2
Index
—–
1
2
3
5
6
7
StartTime
———
2014/01/03 7…
2014/01/03 1…
2014/01/08 1…
2014/01/27 2…
2014/02/19 1…
2014/02/19 1…
Duration
——–
00:42:47.085…
00:03:39.193…
00:31:45.198…
01:04:42.117…
01:18:16.471…
00:04:26.768…
BytesUsed
———
50958376960
51047460864
51471486976
56238186496
56384643072
55865212928
IsAutomatic
———–
FALSE
TRUE
TRUE
TRUE
FALSE
TRUE
Description
———–
手動バック…
自動バック…
自動バック…
自動バック…
Mobile Backup
自動バック…
Status
——
Complete
Complete
Complete
Complete
Complete
Complete
retentionState
————–
Normal
Normal
Normal
Normal
Normal
Normal
failureReason
————-
None
None
None
None
None
None
FailureDetails
————–
{}
{}
{}
{}
{}
{}
windows8Pro
Index
—–
1
2
3
StartTime
———
2014/03/12 1…
2014/03/13 1…
2014/03/14 1…
Duration
——–
00:16:10.917…
00:02:54.787…
00:13:36.120…
BytesUsed
———
8831639552
9188261888
13941678080
IsAutomatic
———–
TRUE
TRUE
TRUE
Description
———–
自動バック…
自動バック…
自動バック…
Status
——
Complete
Complete
Complete
retentionState
————–
Normal
Normal
Normal
failureReason
————-
None
None
None
FailureDetails
————–
{}
{}
{}