PowerShell 3
Windows 2012
Major Minor Build Revision
3 0 -1 -1
У меня есть несколько скриптов PowerShell, которые работали последние несколько лет.
Теперь они не могут успешно выполняться с помощью запланированной задачи.
Если я вручную запускаю сценарий PowerShell вне планировщика задач, он работает.
Сценарий просто создает новую папку по пути UNC.
Получается ошибка «Отказано в доступе» при попытке «Test-Path».
Похоже, что это будет проблема с разрешениями, однако, он работает, используя тот же логин и просто дважды щелкнув скрипт.
Запланированная задача настроена на использование тех же учетных данных, с которыми я вошел на сервер, когда запускаю сценарий вручную.
Я создал новую Базовую задачу в Планировщике, и она все еще не работает.
Я сократил код до базового тестового пути и создал папку, но все еще не работает.
Я создаю командный файл для чтения и создаю папку в каталоге, настраиваю его для запуска через запланированное задание, и он работает.
Ошибка вывода:
C:\Scripts>c:
C:\Scripts>cd\scripts
C:\Scripts>powershell.exe c:\scripts\makefolder.ps1
Creating New Folders...
Test-Path Result with SilentlyContinue... Does the folder exist already?
False
The folder is: \\intranet.mycompany.com\dept\finance\Shared Documents\Sales Commissions\MyTest
test-path : Access is denied
At C:\scripts\makefolder.ps1:23 char:6
+ IF (test-path -path $today_folder)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : PermissionDenied:
(\\intranet.myco...missions\My
Test:String) [Test-Path], UnauthorizedAccessException
+ FullyQualifiedErrorId : ItemExistsUnauthorizedAccessError,Microsoft.Powe
rShell.Commands.TestPathCommand
New-Item : Access is denied
At C:\scripts\makefolder.ps1:28 char:11
+ {New-Item -ItemType Directory -Path $today_folder
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : PermissionDenied: (\\intranet.myco...missions\My
Test:String) [New-Item], UnauthorizedAccessException
+ FullyQualifiedErrorId : ItemExistsUnauthorizedAccessError,Microsoft.Powe
rShell.Commands.NewItemCommand
Пакетный файл, который выполняет запланированное задание. Это просто запускает скрипт PowerShell. Я также удалил этот пакетный файл, и запланированное задание сразу запустило PowerShell с такими же результатами:
c:
cd\scripts
powershell.exe c:\scripts\makefolder.ps1
Вот сценарий PowerShell:
Write-Host 'Creating New Folders...
' -fore black -back yellow
$today_folder = "\\intranet.mycompany.com\dept\finance\Shared Documents\Sales Commissions\MyTest"
Write-Host 'Test-Path Result with SilentlyContinue... Does the folder exist already?
' -fore black -back yellow
test-path -path $today_folder -ErrorAction SilentlyContinue
write-host 'The folder is: ' $today_folder
write-host '
'
IF (test-path -path $today_folder)
#Folder Already Exist
{ Write-Host $today_folder ":Already Exist, moving on..." -fore black -back green }
ELSE
#Create the Folder
{New-Item -ItemType Directory -Path $today_folder
Write-Host $today_folder ":Created" -fore black -back yellow}
#To see the console window
sleep 5
#Read-Host -Prompt "Press Enter to exit"
Если я выполняю подобную функцию, просто используя пакетный файл, она работает:
@echo off
echo Hello this a test batch file
pause
net use L: "\\intranet.mycompany.com\dept\finance\Shared Documents\Sales Commissions"
dir L:
pause
mkdir L:\M2019
pause
net use L: /delete
echo all done
pause
Запланированное задание: