---
generated_at: 2026-02-18 10:30:00
metrics:
  claims_total: 73
  claims_with_evidence: 73
  claims_without_evidence: 0
confidence_derived: 1.00
---

# 根拠レポート：public-Computer.csv

## 本レポートについて

### 目的
本レポートは、生成された単体テストケース一覧の信頼性を検証し、人間レビュアーが効率的にレビューできるようにすることを目的としています。

### チェック方法
以下の観点でテストケースの内容（Claim：主張）を検証しています：

1. **根拠の有無確認**：各テストケースに対して、ソースコードから根拠（Evidence）が存在するか
2. **根拠との整合性**：テストケースの内容が根拠と矛盾していないか
3. **網羅性**：対象コードの機能を適切にカバーしているか

### 信頼度スコアの算出
- **confidence_derived** = 根拠あり件数 / 総主張件数
- 状態「○」：根拠あり、「△」：根拠不足または要確認

### 本レポートの使い方
1. まず「サマリー」で全体の信頼度と優先レビュー項目を確認
2. 「Claims と根拠の対応」で △ の項目を重点的にレビュー
3. 「不足情報」で補完が必要な情報源を確認

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：73 / 73、根拠なし：0
- 優先レビュー（高）
  1. 全テストケースはソースコードから直接抽出された根拠に基づいています
  2. 特に優先してレビューが必要な項目はありません

## 2) 参照した情報（Evidence一覧）
> ここに「実在するもの」だけ列挙。抽出フェーズで付けたIDをそのまま出す。

- E-01: `public/Add-DbaComputerCertificate.ps1` - 324行
- E-02: `public/Backup-DbaComputerCertificate.ps1` - 93行
- E-03: `public/Get-DbaComputerCertificate.ps1` - 243行
- E-04: `public/Get-DbaComputerSystem.ps1` - 222行
- E-05: `public/New-DbaComputerCertificate.ps1` - 500行
- E-06: `public/New-DbaComputerCertificateSigningRequest.ps1` - 263行
- E-07: `public/Remove-DbaComputerCertificate.ps1` - 185行
- E-08: `public/Test-DbaComputerCertificateExpiration.ps1` - 158行

## 3) Claims と根拠の対応（レビューの主戦場）

### Add-DbaComputerCertificate（UT-CMP-001〜009）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | Pathが指定された場合に証明書ファイルが読み込まれること | E-01: L176-223 (Test-Path, ReadAllBytes, X509Certificate2Collection.Import) | ○ |
| C-02 | 存在しないPathが指定された場合にエラーとなること | E-01: L177-179 (Test-Path, Stop-Function) | ○ |
| C-03 | NonExportableフラグが指定された場合にExportableフラグが除外されること | E-01: L155-168 (フラグ処理ロジック) | ○ |
| C-04 | CertificateもPathも指定されていない場合にエラーとなること | E-01: L261-264 (Stop-Function) | ○ |
| C-05 | ローカルホストに証明書が正常にインポートされること | E-01: L278-291 (Invoke-Command2, Select-DefaultView) | ○ |
| C-06 | リモートコンピュータに証明書がインポートされること | E-01: L285 (Invoke-Command2 -ComputerName) | ○ |
| C-07 | UserProtectedフラグがリモートホストで指定された場合にスキップされること | E-01: L281-283, L304-306 (IsLocalHost check, Stop-Function) | ○ |
| C-08 | パイプラインから証明書オブジェクトを受け取りインポートできること | E-01: L146 (ValueFromPipeline) | ○ |
| C-09 | 証明書チェーンを含むPFXファイルが正しくインポートされること | E-01: L187, L244-249 (X509Certificate2Collection, foreach) | ○ |

### Backup-DbaComputerCertificate（UT-CMP-010〜014）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-10 | 証明書がファイルにエクスポートされること | E-02: L88-90 (X509Certificate2, WriteAllBytes, Export) | ○ |
| C-11 | FilePathが指定された場合に指定パスにエクスポートされること | E-02: L85-86 (Test-Bound -Parameter FilePath) | ○ |
| C-12 | Pfx形式でエクスポートされること | E-02: L79-80 (ValidateSet, Type parameter) | ○ |
| C-13 | 自動生成されたファイル名が正しい形式であること | E-02: L86 ($FilePath = "$Path\$($cert.ComputerName)-$($cert.Thumbprint).cer") | ○ |
| C-14 | 無効なRawDataを持つ証明書でエラーとなること | E-02: L88 (X509Certificate2 constructor) | ○ |

### Get-DbaComputerCertificate（UT-CMP-015〜022）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-15 | ローカルホストの証明書が取得できること | E-03: L106 (ComputerName default), L234-235 (Invoke-Command2) | ○ |
| C-16 | Thumbprintでフィルタリングできること | E-03: L174, L191 (Where-Object Thumbprint -in) | ○ |
| C-17 | Type='Service'でサーバー認証用証明書のみ取得されること | E-03: L202 (EnhancedKeyUsageList -match '1.3.6.1.5.5.7.3.1') | ○ |
| C-18 | Type='All'ですべての証明書が取得されること | E-03: L203-205 (else Get-CoreCertificate without filter) | ○ |
| C-19 | 複数のStoreとFolderを指定できること | E-03: L232-233 (foreach $currentStore, foreach $currentFolder) | ○ |
| C-20 | Pathが指定された場合にファイルから証明書を読み込むこと | E-03: L127-132 (File.ReadAllBytes, Certificate.Import) | ○ |
| C-21 | 接続できないコンピュータでエラーとなること | E-03: L236-238 (Stop-Function -Message "Issue connecting to computer") | ○ |
| C-22 | 証明書が0件の場合に空の結果が返ること | E-03: L171-175 (Where-Object returns empty if no match) | ○ |

### Get-DbaComputerSystem（UT-CMP-023〜032）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-23 | ローカルコンピュータのシステム情報が取得できること | E-04: L97 (ComputerName default), L114-118 (Get-DbaCmObject) | ○ |
| C-24 | プロセッサ情報が正しく取得されること | E-04: L115, L118, L193-195 (Win32_Processor, ProcessorName, ProcessorCaption) | ○ |
| C-25 | ハイパースレッディング状態が正しく判定されること | E-04: L140-143 (NumberOfLogicalProcessors > NumberofProcessors) | ○ |
| C-26 | DomainRoleが正しく変換されること | E-04: L130-138 (switch DomainRole) | ○ |
| C-27 | AdminPasswordStatusが正しく変換されること | E-04: L121-128 (switch AdminPasswordStatus) | ○ |
| C-28 | IncludeAwsスイッチでAWS情報が取得されること | E-04: L145-173, L207-214 (IncludeAws, Add-Member AWS properties) | ○ |
| C-29 | IncludeAwsが非EC2環境で警告が出ること | E-04: L153-155 (Write-Message -Level Warning) | ○ |
| C-30 | PendingRebootが取得できること | E-04: L176-182, L205 (Test-PendingReboot) | ○ |
| C-31 | 名前解決できないコンピュータでエラーとなること | E-04: L109-110 (Stop-Function "Unable to resolve hostname") | ○ |
| C-32 | TotalPhysicalMemoryがDbaSize型で返却されること | E-04: L199 ([DbaSize]$computerSystem.TotalPhysicalMemory) | ○ |

### New-DbaComputerCertificate（UT-CMP-033〜045）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-33 | 英語ロケールで正常に動作すること | E-05: L225-229 (englishCodes check) | ○ |
| C-34 | 非英語ロケールでエラーとなること | E-05: L226-228 (Stop-Function for non-English) | ○ |
| C-35 | CAサーバーが自動検出されること | E-05: L287-316 (LDAP query, CA discovery) | ○ |
| C-36 | 自己署名証明書が作成されること | E-05: L395-398 (SelfSigned, RequestType = Cert) | ○ |
| C-37 | CA署名証明書が作成されること | E-05: L423-426 (certreq -submit) | ○ |
| C-38 | クラスタインスタンス名が証明書のCNに設定されること | E-05: L334-339 (ClusterInstanceName, fqdn) | ○ |
| C-39 | KeyLengthが正しく設定されること | E-05: L197, L380 (KeyLength parameter, Add-Content) | ○ |
| C-40 | FriendlyNameが正しく設定されること | E-05: L195, L388 (FriendlyName parameter, Add-Content) | ○ |
| C-41 | DNSパラメータがSANに追加されること | E-05: L369-373, L407 (Get-SanExt, Add-Content $san) | ○ |
| C-42 | MonthsValidで有効期限が設定されること | E-05: L207, L398 (MonthsValid parameter, NotAfter) | ○ |
| C-43 | リモートコンピュータに証明書がインストールされること | E-05: L461-489 (Invoke-Command2, scriptBlock) | ○ |
| C-44 | NonExportableフラグで秘密鍵がエクスポート不可になること | E-05: L210-223, L382-386 (Flag handling, Exportable = FALSE) | ○ |
| C-45 | MonthsValid=1で1ヶ月有効な証明書が作成されること | E-05: L398 (AddMonths($MonthsValid)) | ○ |

### New-DbaComputerCertificateSigningRequest（UT-CMP-046〜054）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-46 | 英語ロケールで正常に動作すること | E-06: L116-120 (englishCodes check) | ○ |
| C-47 | 非英語ロケールでエラーとなること | E-06: L117-119 (Stop-Function for non-English) | ○ |
| C-48 | CSRファイルが作成されること | E-06: L208, L257 ($certCsr, certreq -new) | ○ |
| C-49 | INFファイルが作成されること | E-06: L207, L227-252 ($certCfg, Set-Content/Add-Content) | ○ |
| C-50 | Pathに指定したディレクトリに出力されること | E-06: L109, L206 (Path parameter, $certDir) | ○ |
| C-51 | ClusterInstanceNameがSubjectに設定されること | E-06: L189-194, L230 (ClusterInstanceName, Subject = CN) | ○ |
| C-52 | KeyLengthが正しく設定されること | E-06: L111, L232 (KeyLength parameter, Add-Content) | ○ |
| C-53 | DNSパラメータがSANに追加されること | E-06: L221-225, L251 (Get-SanExt, Add-Content $san) | ○ |
| C-54 | FriendlyNameが正しく設定されること | E-06: L110, L235 (FriendlyName parameter, Add-Content) | ○ |

### Remove-DbaComputerCertificate（UT-CMP-055〜062）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-55 | 指定したThumbprintの証明書が削除されること | E-07: L153-156 (certstore.Remove, Status = "Removed") | ○ |
| C-56 | 存在しないThumbprintで適切なステータスが返ること | E-07: L157-158 (Status = "Certificate not found...") | ○ |
| C-57 | 複数のThumbprintが処理されること | E-07: L174 (foreach $thumb in $Thumbprint) | ○ |
| C-58 | リモートコンピュータの証明書が削除されること | E-07: L177 (Invoke-Command2 -ComputerName) | ○ |
| C-59 | Storeパラメータが正しく処理されること | E-07: L81, L107 (Store parameter, StoreLocation) | ○ |
| C-60 | Folderパラメータが正しく処理されること | E-07: L82, L108 (Folder parameter, StoreName) | ○ |
| C-61 | 接続できないコンピュータでエラーとなること | E-07: L178-180 (Stop-Function in catch) | ○ |
| C-62 | パイプラインからThumbprintを受け取れること | E-07: L79 (ValueFromPipelineByPropertyName) | ○ |

### Test-DbaComputerCertificateExpiration（UT-CMP-063〜073）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-63 | 期限切れ証明書が検出されること | E-08: L143-144 (NotAfter <= Get-Date, "has expired") | ○ |
| C-64 | 期限間近の証明書が検出されること | E-08: L142 ($expiration -lt $Threshold) | ○ |
| C-65 | Thresholdで検出日数を変更できること | E-08: L107 (Threshold parameter default 30) | ○ |
| C-66 | Type='SQL Server'でSQL Server使用証明書のみ検査されること | E-08: L114-116 (Get-DbaNetworkCertificate) | ○ |
| C-67 | 有効期限が十分な証明書は返却されないこと | E-08: L142 (if $expiration -lt $Threshold) | ○ |
| C-68 | Noteプロパティに期限切れ情報が含まれること | E-08: L144, L149 ($note, Add-Member Note) | ○ |
| C-69 | Thumbprintでフィルタリングできること | E-08: L106, L131-132 (Thumbprint parameter, parms.Thumbprint) | ○ |
| C-70 | Pathが指定された場合にファイルから証明書を検査すること | E-08: L105, L128-129 (Path parameter, parms.Path) | ○ |
| C-71 | 接続できないコンピュータでエラーとなること | E-08: L153-155 (Stop-Function in catch) | ○ |
| C-72 | Threshold=0で本日期限切れの証明書のみ検出されること | E-08: L142 (Threshold check logic) | ○ |
| C-73 | StoreとFolderパラメータが正しく処理されること | E-08: L101-102, L119-121 (Store, Folder parameters) | ○ |

## 4) 不足情報（Unknown / Missing）
- 根拠なしの項目はありません
- すべてのテストケースはソースコードから直接抽出された根拠に基づいています

## 5) リスクフラグ（レビュー観点）
- 0: 低リスク - すべてのテストケースに根拠があり、ソースコードと整合性が取れています
- 注意点：
  - ロケール制限（英語OS限定）のテストは実際のテスト環境に依存
  - リモート接続テストは適切なテスト環境の準備が必要
  - AWS関連テストはEC2インスタンスまたはモック環境が必要

## 6) レビュアーチェックリスト（最小）
- [ ] 各関数の正常系テストケースが網羅されているか確認
- [ ] パラメータ検証（異常系）テストケースが適切か確認
- [ ] 境界値テストケースが主要な条件をカバーしているか確認
- [ ] リモート接続関連のテストケースの実行環境要件を確認
- [ ] セキュリティ関連機能（証明書操作）のテストカバレッジを確認
