以下のコードに問題があります。現在のユーザーだけでなく、すべてのユーザー プロファイルに対して出力を機能させる方法を見つけようとしています。$shell.NameSpace(34) を使用すると、コードが機能します (2 行がコメント化されています)。しかし、shell.namespace をオーバーライドして手動でパスを追加しようとすると、メソッド項目が存在しないというエラーが表示されます。この問題を修正または回避する最善の方法は何か疑問に思っています。
実際のエラー メッセージ: [System.String] に 'Items' という名前のメソッドが含まれていないため、メソッドの呼び出しに失敗しました。
高度なヘルプをありがとう。
$shell = New-Object -ComObject Shell.Application
$colProfiles = Get-ChildItem "C:\Users\" -Name
#$hist = $shell.NameSpace(34)
#Write-Host $hist
foreach ( $userProfile in $colProfiles )
{
[string]$hist = "C:\Users\$userProfile\AppData\Local\Microsoft\Windows\History"
$date = ""
$url = ""
$hist.Items() | foreach {
""; "";
if ($_.IsFolder)
{
$siteFolder = $_.GetFolder
$siteFolder.Items() | foreach {
$site = $_
"";
if ($site.IsFolder)
{
$pageFolder = $site.GetFolder
Write-Host $pageFolder
$pageFolder.Items() | foreach {
$url = $pageFolder.GetDetailsOf($_,0)
$date = $pageFolder.GetDetailsOf($_,2)
echo "$date $url"
}
}
}
}
}
}