質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

serverspec

serverspecは、Ruby製のサーバ環境テストケース作成ツールです。

Q&A

解決済

1回答

3845閲覧

severspecのhave_property_valueについて

umechan

総合スコア10

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

serverspec

serverspecは、Ruby製のサーバ環境テストケース作成ツールです。

0グッド

1クリップ

投稿2017/04/17 00:45

serverspecにてregistryの値の確認をする際に、have_property_valueを使用していますが、valueが複数桁になるとエラーが表示されます。

powershellを1つずつ実行して内容を確認しましたが問題はなさそうです。
この場合どのように対処すればよろしいのでしょうか。もしご存じの方がいらっしゃいましたらご教示頂きたいです。

specファイル

describe windows_registry_key('HKEY_CURRENT_USER\Control Panel\Desktop') do it { should exist } it { should have_property_value('ScreenSaveTimeOut', :type_string, '900') } #スクリーンセーバを無効化 end

結果

2) Windows registry key "HKEY_CURRENT_USER\Control Panel\Desktop" should have property value "ScreenSaveTimeOut", :type_string, "900" On host `localhost' Failure/Error: it { should have_property_value('ScreenSaveTimeOut', :type_string, '900') } #スクリーンセーバを無効化 expected #has_property_value?("ScreenSaveTimeOut", :type_string, "900") to return true, got false $exitCode = 1 $ProgressPreference = "SilentlyContinue" try { $success = $((Compare-Object (Get-Item 'Registry::HKEY_CURRENT_USER\Control Panel\Desktop').GetValue('ScreenSaveTimeOut') @('900')) -eq $null) if ($success -is [Boolean] -and $success) { $exitCode = 0 } } catch { Write-Output $_.Exception.Message } Write-Output "Exiting with code: $exitCode" exit $exitCode Cannot bind argument to parameter 'ReferenceObject' because it is null. Exiting with code: 1

powershell個別実行結果

PS C:\Users\Administrator> Get-Item 'Registry::HKEY_CURRENT_USER\Control Panel\Desktop' Hive: HKEY_CURRENT_USER\Control Panel Name Property ---- -------- Desktop DragHeight : 4 CoolSwitchColumns : 7 ActiveWndTrackTimeout : 0 MouseCornerClipLength : 6 MouseMonitorEscapeSpeed : 0 DragWidth : 4 WallpaperStyle : 10 ScreenSaveActive : 1 TileWallpaper : 0 WheelScrollLines : 3 Pattern : 0 FontSmoothingType : 2 WindowArrangementActive : 1 BlockSendInputResets : 0 MenuShowDelay : 400 ClickLockTime : 1200 CaretWidth : 1 FocusBorderWidth : 1 WallpaperOriginX : 0 WallpaperOriginY : 0 DragFullWindows : 0 CoolSwitchRows : 3 ForegroundFlashCount : 7 LeftOverlapChars : 3 ForegroundLockTimeout : 200000 FontSmoothingGamma : 0 DragFromMaximize : 1 FontSmoothing : 2 FocusBorderHeight : 1 WheelScrollChars : 3 DockMoving : 1 SnapSizing : 1 CursorBlinkRate : 530 MouseWheelRouting : 1 RightOverlapChars : 3 FontSmoothingOrientation : 1 PaintDesktopVersion : 0 Win8DpiScaling : 0 UserPreferencesMask : {144, 18, 3, 128...} Wallpaper : C:\Windows\Web\Wallpaper\Windows\img0.jpg MaxVirtualDesktopDimension : 2560 MaxMonitorDimension : 2560 TranscodedImageCount : 1 LastUpdated : 4294967295 TranscodedImageCache : {122, 195, 1, 0...} LockScreenAutoLockActive : 0 ScreenSaveTimeOut : 900 ScreenSaverIsSecure : 1 PS C:\Users\Administrator>
PS C:\Users\Administrator> $((Compare-Object (Get-Item 'Registry::HKEY_CURRENT_USER\Control Panel\Desktop').GetValue('Sc reenSaveTimeOut') @('900')) -eq $null) True

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

こんにちは。

Cannot bind argument to parameter 'ReferenceObject' because it is null.

というメッセージ自体は、Compare-Objectの比較元((Get-Item 'Registry::HKEY_CURRENT_USER\Control Panel\Desktop').GetValue('ScreenSaveTimeOut')の部分)が$nullの場合に発生するエラーです。

Serverspecの実行環境と個別実行環境が異なっている可能性はありませんか?
例えばWindows 2012 R2などのサーバー系OSであればレジストリにScreenSaveTimeOutが無い場合があります。

投稿2017/04/17 03:06

stknohg

総合スコア796

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問