1) Как получить номер недели в месяце (1-5)?
Function Get-WeekOfMonth { param ([datetime]$date = (Get-Date)) $beginningOfMonth = New-Object DateTime($date.Year,$date.Month,1) while ($date.Date.AddDays(1).DayOfWeek -ne (Get-Culture).DateTimeFormat.FirstDayOfWeek) { $date = $date.AddDays(1) } [int]([Math]::Truncate($date.Subtract($beginningOfMonth).TotalDays / 7) + 1) }
2) Как отключить «X» в консоли PowerShell?
$code = @" [DllImport("user32.dll")] public static extern int DeleteMenu(IntPtr hMenu, int nPosition, int wFlags); [DllImport("User32")] public static extern IntPtr GetSystemMenu(IntPtr hWnd, bool bRevert); "@ Add-Type -MemberDefinition $code -Name HideClose -Namespace System $hMenu = [HideClose]::GetSystemMenu((gps -id $pid).MainWindowHandle, $false) [HideClose]::DeleteMenu($hMenu,0xF060, 0)
3) Как используя метод XMLDocument.Save() сохранить данные в переменную?
$mem = New-Object IO.MemoryStream $writer = New-Object IO.StreamWriter($mem) $xml.Save($writer) $var = [System.Text.Encoding]::Default.GetString($mem.toarray()) $var Или $xml.Save(($mem=New-Object IO.MemoryStream)) $var=[System.Text.Encoding]::Default.GetString($mem.toarray())
4) Какой метод класса System.Net.DNS лучше использовать?
Для разрешение имен в прямом и обратном направлении,лучше всего использовать статический метод GetHostEntry(IPAddress) и GetHostEntry(String).
5) Как отключить positional parameters?
V2:
param ($badparam,$i1,$i2)
if ($badparam) {«Вы не ввели обязательные параметры»}
V3: [CmdletBinding(PositionalBinding=$false)]
Как изменить значение поля «руководитель» для нескольких юзеров с petrov на sidorov ????
$managerOld = «CN=sidorov,OU=Human,DC=contoso,DC=com»
$managerNew = «CN=petrov,OU=Human,DC=contoso,DC=com»
([adsisearcher]»(manager=$managerOld)»).FindAll() | Foreach {
$user = $_.GetDirectoryEntry()
$user.manager = $managerNew
$user.SetInfo()
}
Произошла ошибка при перечислении элементов коллекции: Фильтр поиска (manager=) недопустим..
3 знак:2
трабла была в кавычках. заменил на »
теперь ошибок нет но и поле Руководитель не меняется ((
Посмотреть правильность distinguishedName.([adsisearcher]«(manager=$managerOld)»).FindAll() — возращает результат?
Имя «distinguishedName.» не распознано как имя командлета, функции, файла скрипта или выполняемой программы. Проверьте
правильность написания имени, а также наличие и правильность пути, после чего повторите попытку.
строка:1 знак:19
+ distinguishedName. <<<< ([adsisearcher]"(manager=$managerOld)").FindAll()
+ CategoryInfo : ObjectNotFound: (distinguishedName.:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
Для начала разберитесь ,что такое distinguishedName,без этого просто бессмысленно продолжать работать со скриптом.Если вы этого не знаете,значит $managerOld и $managerNew указаны не правильно.
я разобрался с этим изначально
значение DistinguishedName взял из запроса Get-ADUser sidorov
DistinguishedName : CN=Петя Сидоров,OU=Disabled users,OU=company,DC=group,DC=domain,DC=local
аналогично для Петрова