Отладка WebDAV с помощью gvfs

Schtasks является Вашим другом для этого - В, старо и не делает (SFAIK), постигают задачи, создает с schtasks. К сожалению, объект Win32_ScheduledTask WMI на основе В, иначе это идеально подошло бы для этого.

К сожалению, ни В, ни schtasks сообщают относительно пользователя что прогоны задания как. Существует, вероятно, COM-объект где-нибудь, который позволяет Вам достигнуть это; возможно, Вы могли спросить относительно stackoverflow?

Если бы Вы хотите написать сценарий его, Вы, вероятно, сделали бы что-то вроде этого:

$servers = 'server1','server2','server3'
$allTasks = @()
$servers | %{ 
    $data = schtasks /query /S $_ /fo list
    # Data looks like this:
    # <blank line> 
    # HostName:      [SERVER]
    # TaskName:      [TASK NAME]
    # Next Run Time: 12:00:00 PM, 5/9/2009
    # Status:        [BLANK or SOME ERROR]
    foreach ($line in $data){
        $blob=""|select Host, Task, Next, Status
        [void]$foreach.MoveNext(); $l = $foreach.Current.length;
        $blob.Host = $foreach.current.substring(15, $l-15)
        [void]$foreach.MoveNext(); $l = $foreach.Current.length;
        $blob.Task = $foreach.current.substring(15, $l-15)
        [void]$foreach.MoveNext(); $l = $foreach.Current.length;
        $blob.Next = $foreach.current.substring(15, $l-15)
        [void]$foreach.MoveNext(); $l = $foreach.Current.length;
        $blob.Status = $foreach.current.substring(15, $l-15)
        $allTasks += $blob
    }
}
$allTasks|format-table

Это стало злым эссе кода - было бы легче использовать/FO csv опция вывести к текстовому файлу импорт-csv использования для возвращения данных в PS, но тот путь Вы теряете имя сервера. Так вместо этого Вы добираетесь, чтобы представить немного и сделать создание пользовательского объекта и бездельничающий с foreach перечислителем. Вызов MoveNext перемещает Вас в следующий объект в списке, таким образом, Вы пропускаете первую пустую строку вывода и затем проводите каждую из следующих 4 строк и превращаете их во что-то полезное.

2
задан 13 May 2009 в 21:12
1 ответ

Я не знаю gvfs, или поддерживает ли он прокси или нет. Но простой способ "вызвать" прокси состоит в том, чтобы установить Charles как обратный прокси и позволить Вашему webdav клиенту соединиться с прокси вместо этого.

Например, предположите, что Charles работает на хосте "прокси", и webdav в хосте "webdav". Установите Charles, чтобы сделать обратный прокси на порте 80, и передавать трафик к webdav:80 ("обратный прокси" доступно в меню). Затем вместо того, чтобы подключить Ваши клиенты к "webdav", позвольте им соединиться с http://proxy/ вместо этого.

Существует немного протестов при выполнении обратного прокси с WebDAV. Необходимо переписать не только Хост: заголовок (который Charles делает для Вас), но также и Место назначения: и Если: заголовки. Место назначения: используется при копировании или движущиеся файлы, в то время как Если: используется, чтобы проверить, что файл все еще заблокирован. К счастью, поддержки Charles, переписывая любой заголовок... ищут Инструменты>, Переписывают, можно поместить там довольно общие правила для перезаписи. То, что необходимо сделать, переписывают часть хоста абсолютных URL в тех заголовках от "прокси" до "webdav". (Простой s/proxy/webdav/будет работать на тестирование) существует большая сводка Julian Reschke о webdav и обратных проблемах прокси, если Вам интересно ;-)

(Если можно сделать прокси использования gvfs отдельно, затем можно избежать проблем с перезаписью заголовка..., но я не смог сделать WebdavFS на Mac для использования прокси, таким образом, это было полезно для меня).

1
ответ дан 3 December 2019 в 13:39

Теги

Похожие вопросы