Tuesday 22 October 2013


Давно не писал ничего. Из последнего что сделал. Установил Sharepoint Foundation  к нему прикрутил скрипт выгрузки active directory пользователей в файл, и загрузки их в sharepoint портал, для адресной телефонной книги на основе active directory.
Готового ничего не нашел, поэтому пришлось крутить самому. Может быть можно было гораздо элегантней но за недостатком времени пока так. Изначально настроил чере BDC connection в SP, но не смог дать ума и у пользователей не отображалось связка AD+MSSQL+SP. В итоге забил и сделал через списки.

If ("C:\temp\list_user.csv"){
    Remove-Item "C:\temp\list_user.csv"
}

$objSearcher = New-Object System.DirectoryServices.DirectorySearcher
$objSearcher.SearchRoot = "LDAP://ou=xxx ,dc=yyy,dc=ru"
$objSearcher.Filter = "(&(objectCategory=person)(!userAccountControl:1.2.840.113556.1.4.803:=2))"
$users = $objSearcher.FindAll()
$users.Count
$users | ForEach-Object {
   $user = $_.Properties

   New-Object PsObject -Property @{

   fam = [string]$user.sn
   name = [string]$user.givenname
   jobtitle = [string]$user.title
   office = [string]$user.physicaldeliveryofficename
   department = [string]$user.department
   mobile = [string]$user.mobile
   phone = [string]$user.telephonenumber
   mail = [string]$user.mail
    }
} | Export-Csv  -Encoding utf8 -NoClobber -Path  C:\temp\list_user.csv

$web = Get-SPWeb -Identity "http://portal"
$list = $web.Lists["ListName"]
do {$list.items.delete(0)}
until ($list.items.Count -eq 0)

$contents = Import-Csv "C:\temp\list_user.csv"
$web = Get-SPWeb -Identity "http://
portal"
$list = $web.Lists["lista_name"]
foreach ($row in $contents) {
    $item = $list.Items.Add();
    $item["Имя"] = $row.name;
    $item["Фамилия"] = $row.fam;
    $item["Должность"] = $row.jobtitle;
    $item["Офис"] = $row.office;
    $item["Отдел"] = $row.department;
    $item["Почта"] = $row.mail;
    $item["Телефон"] = $row.phone;
    $item["Мобильный"] = $row.mobile;
    $item.Update();
}


Friday 11 October 2013

как сжать журнал транзакции через t-sql / how i can shrink log file using t-sql

периодически все сталкиваются с вопросом:
как сжать журнал транзакций?
как уменьшить лог файл транзакций?

автоматизировать можно через планировщик с помощью t-sql:

USE base;
GO
ALTER DATABASE base
SET RECOVERY SIMPLE;
GO
DBCC SHRINKFILE (base, 1024);
GO
ALTER DATABASE base
SET RECOVERY FULL;
GO

Если у Вас имя базы не соответствует логическому имени базы будьте внимательны, указывайте не алиас, а именно логическое имя.

=====================================================
Some times many people ask: How i can cut my lgf file because it so big.
You can actomaticaly do this using t-sql script

be careful if you base name did't matches logical name. use only logical name in script.

База данных диспетчера учетных записей на сервере не содержит записи для регистрации компьютера через доверительные отношения с этой рабочей станцией

Ошибка "База данных диспетчера учетных записей на сервере не содержит записи для регистрации компьютера через доверительные отношения с этой рабочей станцией"

 Решение:
  • Можем вывести компьютер из домена и ввести заново. На Windows 7 профили доменных пользователей подхватываются и переносить ручками ничего не надо.
 Так же доступны утилиты из командной строки:
  • nltest/SC_QUERY:имя домена (test до домена)
  • netdom reset /d:имя_домена имя_ПК (сохранение профилей пользователей на машине)
  • netdom reset /d:имя_домена имя_ПК /server:имя_контроллера_домена /uo:имя_пользователя /po:пароль (явно указывает DC)
 Есть патч который лечит эту ошибку после смены пароля на машине:
 http://support.microsoft.com/kb/979495

Thursday 10 October 2013

Ошибка Excel: ошибка при направлении команды приложению

Ошибка:

Ошибка Excel: ошибка при направлении команды приложению
  
Решение:
Microsoft Excel 2010 и Microsoft Excel 2013
  1. Откройте вкладку Файл и выберите элемент Параметры.
  2. Выберите пункт Дополнительно, прокрутите страницу вниз до раздела Общие и в нем снимите флажок Игнорировать DDE-запросы от других приложений.
  3. Нажмите кнопку ОК.

Microsoft Excel 2007

  1. Нажмите кнопку Microsoft Office, а затем — Параметры Excel.
  2. Выберите пункт Дополнительно и в разделе Общие снимите флажок Игнорировать DDE-запросы от других приложений.
  3. Нажмите кнопку ОК.