Mam skrypt, który napisałem, który zastępuje pliki. Przesyłam do niego parametry dla nazwy pliku i lokalizacji bazowej do wyszukiwania. Linie pracownika są:Get-ChildItem - liczba raportów "Odmowa dostępu" w folderze Moje dokumenty i innych punktach połączenia
$SubLocations = Get-ChildItem -Path $Startlocation -Recurse -include $Filename -Force |
Where { $_.FullName.ToUpper().contains($Filter.ToUpper())}
ustawić $ startLocation „C: \ Users”, jednak otrzymuję odmowa dostępu podczas próby recurse przez innych użytkowników folderów. Jestem pełnoprawnym administratorem komputera i już próbowałem uruchamiać powershell jako administrator. Mogę uzyskać dostęp do wszystkich plików za pomocą Eksploratora Windows bez problemu. Dowolny pomysł?
Get-ChildItem : Access to the path 'C:\Users\jepa227\Documents\My Music' is denied.
At C:\Users\krla226\Google Drive\Documents\PowerShell\Replace-File.ps1:35 char:46
+ $SubLocations = Get-ChildItem <<<< -Path $Startlocation -Recurse - include $Filename -Force |
+ CategoryInfo : PermissionDenied: (C:\Users\jepa227\Documents\My Music:String) [Get-ChildItem], Una
uthorizedAccessException
+ FullyQualifiedErrorId : DirUnauthorizedAccessError,Microsoft.PowerShell.Commands.GetChildItemCommand
UPDATE
Chociaż nie byłem w stanie dostać pracy przez GCI, byłem w stanie wykorzystać WMI, aby rozwiązać mój problem. Dla zainteresowanych:
$SubLocations = Get-WmiObject -Class cim_datafile -Filter "fileName = '$filename' AND Extension = '$extension'" |
Where { $_.Name.ToUpper().contains($Filter.ToUpper()) }
Czy UAC jest włączony? Próbowałem na systemie Windows 7 non-UAC z wieloma użytkownikami i nie napotkałem odmowy dostępu podczas próby uzyskania dostępu do katalogów innych użytkowników. Jakiej wersji OS/Powershell używasz? – mcating
UAC jest wyłączony, ale jestem również w domenie. Nie pamiętam, czy to coś zmieni, czy nie. Uruchamianie wersji Pro 64-bitowej i Powershell 2 –