суббота, 29 августа 2009 г.

Множественное подключение к одному серверу или разделяемым ресурсам одним пользователем

Ошибка стандартная: при попытке смонтировать шару с сервера (Linux или windows) на винде ХР (при этом на ней уже есть примонтированные шары от основного пользователя) от имени другого пользователя (разрешенного к этой шаре) выскакивает - "Множественное подключение к серверу или разделяемым ресурсам одним пользователем с использованием одного или более пользователя неразрешено..." системная ошибка 1219.
Вот что советует мелкософт - http://support.microsoft.com/kb/938120

В двух словах:
1. можно использовать net use а вместо имени сервера подкинуть его IP
2. сделать на этот сервер в DNS алиас и монтироваться к нему.

Вот такие "удобные" вещи предлагает мелкософт. глюки обходяться с помощью глюков

вторник, 25 августа 2009 г.

Настройка сетевого "Рабочего стола" и перемещаемых профилей

Основная проблема: пользователи хранят на "Рабочем столе" кучу тяжелых документов (по рукам бить - не помогает). Имеем перемещаемый профиль и много трафика сети для синхронизации.

Задача: сделать "Рабочий стол" и "Мои документы" сетевыми.
(кусок взят здесь http://www.opennet.ru/openforum/vsluhforumID14/746.html )

Настройка Linux PDC:

[profiles]
path = /home/samba/FileServer/share_2/User_profiles/%U/.winprofile
read only = No
store dos attributes = Yes
browseable = No
public = no
writable = yes
create mask = 0600
directory mask = 0700
csc policy = disable
[netlogon]
comment = Network Logon Service
path = /home/samba/FileServer/share_2/User_profiles/_netlogon
write list = root
browseable = No
[homes]
comment = Lichnaya - %S
path = /home/samba/FileServer/share_2/User_profiles/%U
read only = No
browseable = No

Таким образом каждый доменный юзер получает в свое распоряжение диск L:, на нем должны быть следующие каталоги (я их все сделал скрытыми .Documents .Desktop):
.winprofile/%U - здесь хранится профиль с именем пользвателя %U
Documents - "Мои документы"
Desktop - "Рабочий стол"
Названия могут быть и другие. Такая структура каталогов забивается в скелет (/usr/share/skel) и автоматически создается при заведении нового юзера. (у меня отдельный скрипт заводит юзеров. Там все и создается.) Важно - права и собственник на каталог с профайлом (.winprofile/%U), иначе профиль не захочет грузиться виндой.


Настройка Windows клиентских машин:

1. Запускаем редактор реестра regedt32. Переходим в HKEY_USERS, дальше Меню/Реестр/Загрузить куст C:\Documents and Settings\Default User\ntuser.dat. (каталог скрытый) Тем самым загрузим для редактирования ветвь реестра HKCU, которая создается для новых юзеров.
2. Внутри этого "куста" переходим к Software/Microsoft/Windows/CurrentVersion/Explorer/User Shell Folders. В этом разделе меняем значения параметров Desktop, Personal и My Pictures на L:\Desktop, L:\Documents и L:\Documents\Мои рисунки соответственно. (или около того)
3. Внутри этого же "куста" переходим к Software/Microsoft/Windows/CurrentVersion/Explorer/Shell Folders и удаляем там все параметры. (не обязательно)
Основная проблема: пользователи хранят на "Рабочем столе" кучу тяжелых документов (по рукам бить - не помогает). Имеем перемещаемый профиль и много трафика сети для синхронизации.

Задача: сделать "Рабочий стол" и "Мои документы" сетевыми.
(кусок взят здесь http://www.opennet.ru/openforum/vsluhforumID14/746.html )

Настройка Linux PDC:

[profiles]
path = /home/samba/FileServer/share_2/User_profiles/%U/.winprofile
read only = No
store dos attributes = Yes
browseable = No
public = no
writable = yes
create mask = 0600
directory mask = 0700
csc policy = disable
[netlogon]
comment = Network Logon Service
path = /home/samba/FileServer/share_2/User_profiles/_netlogon
write list = root
browseable = No
[homes]
comment = Lichnaya - %S
path = /home/samba/FileServer/share_2/User_profiles/%U
read only = No
browseable = No

Таким образом каждый доменный юзер получает в свое распоряжение диск L: На L: должны быть следующие каталоги:
.winprofile/%U - здесь хранится профиль с именем пользвателя %U
Documents - "Мои документы"
Desktop - "Рабочий стол"
Названия могут быть и другие. Такая структура каталогов забивается в скелет (/usr/share/skel) и автоматически создается при заведении нового юзера.
У меня отдельный скрипт заводит юзеров. Там все и создается. Важно - права и собственник на каталог с профайлом (.winprofile/%U), иначе профиль не захочет грузиться виндой.

Настройка Windows клиентских машин:

1. Запускаем редактор реестра regedt32. Переходим в HKEY_USERS, дальше Меню/Реестр/Загрузить куст C:\Documents and Settings\Default User\ntuser.dat. Тем самым загрузим для редактирования ветвь реестра HKCU, которая создается для новых юзеров.
2. Внутри этого "куста" переходим к Software/Microsoft/Windows/CurrentVersion/Explorer/User Shell Folders. В этом разделе меняем значения параметров Desktop, Personal и My Pictures на L:\Desktop, L:\Documents и L:\Documents\Мои рисунки соответственно. (или около того)
3. Внутри этого "куста" переходим к Software/Microsoft/Windows/CurrentVersion/Explorer/User Shell Folders. В этом разделе меняем значения параметров Desktop, Personal и My Pictures на L:\Desktop, L:\Documents и L:\Documents\Мои рисунки соответственно. (или около того)

4. Еще надо исключить эти перенаправленные папки из пути синхронизации профайла
Software/Microsoft/Windows NT/CurrentVersion/Winlogon и в параметр ExcludeProfileDirs добавляем через ";" "Рабочий стол" и "Мои документы"

5. Выгружаем куст (важно! - сам не выгрузится). Всё - теперь новые пользователи получат "Рабочий стол" и "Мои документы", лежащие на сервере.
6. То же самое делаем для каждого уже существующего профиля.
7. Отредактированный файл C:\Documents and Settings\Default User\ntuser.dat сохраните где-нибудь и копируйте на все клиентские машины, чтобы не проделывать ту же работу заново. (а вот это не пробовал, могут вылезти грабли)

Еще была проблема с автономным кэшированием - отключалась так:
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\NetCache]
"GoOfflineAction"=dword:00000001
"SyncAtLogoff"=dword:00000000
"NoReminders"=dword:00000001
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\NetCache]
"Enabled"=dword:00000000

Итого с реестром (при условии, что default грузился в ветку DEF):
[HKEY_USERS\DEF\Software\Microsoft\Windows NT\CurrentVersion\Winlogon]
"ExcludeProfileDirs"="Local Settings;Temporary Internet Files;History;Temp;Рабочий стол;Мои документы"

[HKEY_USERS\DEF\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders]
"Personal"="L:\\.Documents"
"Desktop"="L:\\.Desktop"

[HKEY_USERS\DEF\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders]
"Desktop"=hex(2):4c,00,3a,00,5c,00,2e,00,44,00,65,00,73,00,6b,00,74,00,6f,00,\
70,00,00,00
"Personal"=hex(2):4c,00,3a,00,5c,00,2e,00,44,00,6f,00,63,00,75,00,6d,00,65,00,\
6e,00,74,00,73,00,00,00
"My Pictures"=hex(2):4c,00,3a,00,5c,00,2e,00,44,00,6f,00,63,00,75,00,6d,00,65,00,\
6e,00,74,00,73,00,00,00

[HKEY_USERS\DEF\Software\Microsoft\Windows\CurrentVersion\NetCache]
"GoOfflineAction"=dword:00000001
"SyncAtLogoff"=dword:00000000
"NoReminders"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\NetCache]
"SyncAtLogon"=dword:00000000
"SyncAtLogoff"=dword:00000000
"NoReminders"=dword:00000000
"Enabled"=dword:00000000

пятница, 14 августа 2009 г.

Строки и C (C++)

http://forum.vingrad.ru/articles/topic-60932.html - ссылка на статью

char* pStr = new char[255];// Берём с запасом

strcpy(pStr, "Тестовая строка");

strcat(pStr, " #1");// Добавление к строке, pStr = pStr + " #1"
strncpy(pStr, "String", 3);// Копирование n символов, pStr = "Str"
strncat(pStr, "ings", 3);// Добавление n символов, pStr = pStr + "ing"
size_t i = strlen(pStr);// Получение длины строки, i = 6
strcmp(pStr, "string");// Сравнение строк, возвратит не 0 - разные строки
stricmp(pStr, "string");// Сравнение без учёта регистра, возвратит 0
// Сравнение первых n символов, также возвратит 0
strncmp(pStr, "Strings", 6);
char* pc = strchr(pStr, 'i');// Поиск первого вхождения, pc = pStr+3 = "ing"
strcpy(pStr, "development");

// Аналогично функции:
strrchr// Поиск последнего вхождения
strstr// Поиск первого вхождения строки
strpbrk// Поиск первого вхождения одного из символов
strspn// Число символов до любого символа из строки
strcspn// Число символов до любого символа не из строки

среда, 12 августа 2009 г.

работа с программатором avreal

Для начала поменять права на параллельный порт
sudo chmod 777 /dev/parport0 (что-то вроде этого)

затем

avreal +mega32 -ab -p/dev/parport0 -ew файл_программы.hex