---
generated_at: 2026-02-18 20:15:00
metrics:
  claims_total: 22
  claims_with_evidence: 22
  claims_without_evidence: 0
confidence_derived: 1.00
---

# 根拠レポート：560-Get-DbaLogin

## 本レポートについて

### 目的
本レポートは、生成された設計書・ドキュメントの信頼性を検証し、人間レビュアーが効率的にレビューできるようにすることを目的としています。

### チェック方法
以下の観点でドキュメントの内容（Claim：主張）を検証しています：

1. **根拠の有無確認**：各主張に対して、ソースコード・既存設計書・要件定義書などの根拠（Evidence）が存在するか
2. **根拠との整合性**：主張の内容が根拠と矛盾していないか
3. **網羅性**：参照すべき情報源を適切にカバーしているか

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：22 / 22、根拠なし：0
- 優先レビュー（高）
  - 特になし（全ての主張に根拠あり）

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

- E-01: `public/Get-DbaLogin.ps1` - 行1-329（メインソースコード）
- E-02: `docs/code-to-docs/機能一覧/機能一覧.csv` - 行560
- E-03: `docs/code-to-docs/画面機能マッピング/画面機能マッピング.csv` - 行271

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | SqlInstanceパラメータは必須かつパイプライン入力対応 | E-01: 行195-196 `[parameter(Mandatory, ValueFromPipeline)] [DbaInstanceParameter[]]$SqlInstance` | ○ |
| C-02 | ExcludeSystemLoginのエイリアスはExcludeSystemLogins | E-01: 行202-203 `[Alias('ExcludeSystemLogins')] [switch]$ExcludeSystemLogin` | ○ |
| C-03 | TypeパラメータはValidateSetでWindows/SQL | E-01: 行204-205 `[ValidateSet('Windows', 'SQL')] [string]$Type` | ○ |
| C-04 | 最終ログイン時刻取得SQL | E-01: 行215 `$loginTimeSql = "SELECT login_name, MAX(login_time) AS login_time FROM sys.dm_exec_sessions GROUP BY login_name"` | ○ |
| C-05 | LOGINPROPERTYテンプレートSQL | E-01: 行216-224 `$loginProperty = "SELECT LOGINPROPERTY ('/*LoginName*/' , 'BadPasswordCount') AS BadPasswordCount...` | ○ |
| C-06 | Connect-DbaInstance -AzureUnsupported | E-01: 行229 `$server = Connect-DbaInstance -SqlInstance $instance -SqlCredential $SqlCredential -AzureUnsupported` | ○ |
| C-07 | Loginパラメータフィルタ | E-01: 行236-238 `if ($Login) { $serverLogins = $serverLogins \| Where-Object Name -in $Login }` | ○ |
| C-08 | ExcludeSystemLoginフィルタ | E-01: 行240-242 `if ($ExcludeSystemLogin) { $serverLogins = $serverLogins \| Where-Object IsSystemObject -eq $false }` | ○ |
| C-09 | Type=WindowsでWindowsUser/WindowsGroupフィルタ | E-01: 行244-246 `if ($Type -eq 'Windows') { $serverLogins = $serverLogins \| Where-Object LoginType -in @('WindowsUser', 'WindowsGroup') }` | ○ |
| C-10 | Type=SQLでSqlLoginフィルタ | E-01: 行248-250 `if ($Type -eq 'SQL') { $serverLogins = $serverLogins \| Where-Object LoginType -eq 'SqlLogin' }` | ○ |
| C-11 | IncludeFilterは-likeで評価 | E-01: 行252-260 `if ($IncludeFilter) { $serverLogins = $serverLogins \| Where-Object { ... if ($_.Name -like $filter) ... } }` | ○ |
| C-12 | ExcludeLoginフィルタ | E-01: 行262-264 `if ($ExcludeLogin) { $serverLogins = $serverLogins \| Where-Object Name -NotIn $ExcludeLogin }` | ○ |
| C-13 | ExcludeFilterは-NotLikeで評価 | E-01: 行266-270 `if ($ExcludeFilter) { foreach ($filter in $ExcludeFilter) { $serverLogins = $serverLogins \| Where-Object Name -NotLike $filter } }` | ○ |
| C-14 | HasAccessフィルタ | E-01: 行272-274 `if ($HasAccess) { $serverLogins = $serverLogins \| Where-Object HasAccess }` | ○ |
| C-15 | Lockedフィルタ | E-01: 行276-278 `if ($Locked) { $serverLogins = $serverLogins \| Where-Object IsLocked }` | ○ |
| C-16 | Disabledフィルタ | E-01: 行280-282 `if ($Disabled) { $serverLogins = $serverLogins \| Where-Object IsDisabled }` | ○ |
| C-17 | MustChangePasswordフィルタ | E-01: 行284-286 `if ($MustChangePassword) { $serverLogins = $serverLogins \| Where-Object MustChangePassword }` | ○ |
| C-18 | SQL 2005以降で最終ログイン時刻取得 | E-01: 行288-294 `if ($server.VersionMajor -gt 9) { ... $loginTimes = $server.ConnectionContext.ExecuteWithResults($loginTimeSql).Tables[0] }` | ○ |
| C-19 | Detailedオプションの処理 | E-01: 行305-317 `if ($Detailed) { ... $loginProperties = $server.ConnectionContext.ExecuteWithResults($query).Tables[0] ... Add-Member ... }` | ○ |
| C-20 | SidString生成ロジック | E-01: 行319-323 `$sidString = '0x'; foreach ($element in $serverLogin.Sid) { $sidString += '{0:X2}' -f $element }` | ○ |
| C-21 | Select-DefaultViewで既定プロパティ選択 | E-01: 行325 `Select-DefaultView -InputObject $serverLogin -Property ComputerName, InstanceName, SqlInstance, Name, LoginType, CreateDate, LastLogin, HasAccess, IsLocked, IsDisabled, MustChangePassword` | ○ |
| C-22 | 画面No.65「ログイン管理」と関連 | E-03: 行271 `"65","ログイン管理","560","Get-DbaLogin","主機能"` | ○ |

## 4) 不足情報（Unknown / Missing）
- 特になし（全ての主張はソースコードから確認済み）

## 5) リスクフラグ（レビュー観点）
- 0: 低リスク - すべての記載事項がソースコードで確認可能

## 6) レビュアーチェックリスト（最小）
- [ ] パラメータ仕様がソースコードと一致しているか確認
- [ ] フィルタパラメータの適用順序が正確か確認
- [ ] Detailedオプションの追加プロパティが正確か確認
- [ ] SQL Server 2000との互換性記述が正確か確認
