|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Имя залогиненного пользователя на ПК |
|
|
PowerShell - [решено] Имя залогиненного пользователя на ПК
|
Пользователь Сообщения: 80 |
Профиль | Отправить PM | Цитировать Добрый день!
Требуется узнать имя пользователя, залогиненного на ПК (домен), пробовала узнать через запрос к WMI например так: Get-WmiObject Win32_ComputerSystem –Computer $computer -Credential $creds .... Имя получаю, но не со всех ПК, предполагаю, что wmi не везде корректно работает или другие причины. Ни как не могу сообразить альтернативный способ как можно узнать имя пользователя который вошел на ПК, предположение есть, что можно через реестр. но как? Еще было хорошо все реализовать через Powershell. |
|
Отправлено: 15:56, 07-03-2016 |
Забанен Сообщения: 793
|
Глянул в WMIExplorer, который писал пару лет назад...
Скрытый текст
#requires -version 2.0 { Add-Type -AssemblyName System.Windows.Forms if (!(New-Object Security.Principal.WindowsPrincipal ( [Security.Principal.WindowsIdentity]::GetCurrent() )).IsInRole( [Security.Principal.WindowsBuiltInRole]::Administrator )) { [void][Windows.Forms.MessageBox]::Show( "WMIExplorer requires administrator privileges.", "WMIExplorer", [Windows.Forms.MessageBoxButtons]::OK, [Windows.Forms.MessageBoxIcon]::Information ) return } [Windows.Forms.Application]::EnableVisualStyles() #region resources $ico = [Drawing.Icon]::ExtractAssociatedIcon(($PSHome + '\powershell.exe')) $f_1 = New-Object Drawing.Font("Tahoma", 9, [Drawing.FontStyle]::Bold) $f_2 = New-Object Drawing.Font("Tahoma", 8, [Drawing.FontStyle]::Bold) $i_1 = "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAA" + ` "AgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAEJJREFUOE9j/P//PwNJAKiBJMCArBpuE0QQjQsVhGuASGPahiaOUDG0NWANDVyhN1w8jRbZ8PgmkD" + ` "SITIJYEg9+nQBeQy7v217GjAAAAABJRU5ErkJggg==" $i_2 = "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAA" + ` "AgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAwBQTFRF////9u7YW5vY4+74rbfE4aoU/ez99u/a0mXT9+/bb4CXADOZgWIMjC2NnngO/fD9mc3//e" + ` "39+q3623DcyJgX89Zs+pj79eGF8ctQ8stQ78A04t73fLTpNWO17fT67bUc2GzZ9Ndr7rUd8MA17bUdsjyz9eCF9OGG5/D56vL68ctP7rYc9NZrQ" + ` "3PJ9eGG774v8MA06fH5////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + ` "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + ` "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + ` "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + ` "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + ` "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + ` "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + ` "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABrgGBQAAAJJJREFUKFNVjtcSgzAMBM/ggh1KGqGl917+/" + ` "+ciGwJEL5pdnWYOoNGC2dWOFtm0b7Q43XNnEpfR4pgW5T5kSAJrmHimxW5FLINxIAGRbfL3tubZJBqBxdfyFRpj1jUDKr7FChzyULM1CiQgo6pp" + ` "QmwFKu/SlSPhe8PHuTXc8twb+D/DzT+TXy56d5f7dPnmz/1/Ab2bB7l4ZZdYAAAAAElFTkSuQmCC" $i_3 = "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAA" + ` "AgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAwBQTFRF475Q7NKHZ3qVrpuB69GF5cNZ69Fz58hk8uGPeoym6tFy4sRx5cVc7dZ89OaZ4r1P58x8hm" + ` "xH9+2m3Lxk7th/8d6J6s9v4LdE9OeZ8uORy8Cz9eug69J19uufnYhu6ctpb4Gc9+3P5cNa4tGp6cpn79yFtKSKpZF39OaYzKIxeouneFw6boGb7" + ` "9uDgWZD8eCOn4he2b9plX5kmYRqel48d1o569CEfWJA7NR5vKyS37hJoo5079uFnolw////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + ` "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + ` "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + ` "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + ` "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + ` "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + ` "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + ` "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK4belAAAAHtJREFUKFNjsEMDDEQLKDIwsghwC2sqw7QwC" + ` "ElLSIqKyAjCBWT5tBSY2OT1YAKMGhyqvFwqPOYMdjDdhpw6TEoMJgx2cN1i7Kz84qYMdoxQ3dZqzOpy2lJAAahuW4gTGezM9G3Auo1hAla6FmDd" + ` "RjABZQNLiG6YACHfAgASrCzzMRTKjwAAAABJRU5ErkJggg==" #endregion resources #region functions function Get-Resource([String]$s) { [Drawing.Image]::FromStream( (New-Object IO.MemoryStream(($$ = [Convert]::FromBase64String($s)), 0, $$.Length)) ) } function Get-NameSpaces([String]$root) { (New-Object Management.ManagementClass( $root, [Management.ManagementPath]'__NAMESPACE', $null ) ).PSBase.GetInstances() | % { return (New-Object Windows.Forms.TreeNode).Nodes.Add($_.Name) } } function Get-SubNameSpace([Windows.Forms.TreeNode[]]$nodes) { foreach ($nod in $nodes) { $nod.Nodes.Clear() Get-NameSpaces ('root\' + $nod.FullPath) | % { $nod.Nodes.Add($_) } } } function Get-ClassesNumber { $sbLbl_1.Text = "Classes: " + $lvList1.Items.Count.ToString() } function Reset-AllMessages { $lvList2.Items.Clear() $rtbDesc, $sbLbl_2, $sbLbl_3 | % { $_.Text = [String]::Empty } } function Get-Description([Object]$o, [Boolean]$b) { try { $$ = switch ($b) { $true { [Management.MethodData]$o } $false { [Management.PropertyData]$o } } $$ = $$.PSBase.Qualifiers['Description'].Value $$ = $(if (![String]::IsNullOrEmpty($$)) { $$ } else { "n\a" }) + "`n`n" } catch {} return $$ } #endregion functions $frmMain = New-Object Windows.Forms.Form $mnuMain = New-Object Windows.Forms.MenuStrip $mnuFile = New-Object Windows.Forms.ToolStripMenuItem $mnuExit = New-Object Windows.Forms.ToolStripMenuItem $mnuView = New-Object Windows.Forms.ToolStripMenuItem $mnuSStr = New-Object Windows.Forms.ToolStripMenuItem $mnuHelp = New-Object Windows.Forms.ToolStripMenuItem $mnuInfo = New-Object Windows.Forms.ToolStripMenuItem $scSplt1 = New-Object Windows.Forms.SplitContainer $scSplt2 = New-Object Windows.Forms.SplitContainer $tvRoots = New-Object Windows.Forms.TreeView $lvList1 = New-Object Windows.Forms.ListView $lvList2 = New-Object Windows.Forms.ListView $chCol_1 = New-Object Windows.Forms.ColumnHeader $chCol_2 = New-Object Windows.Forms.ColumnHeader $chCol_3 = New-Object Windows.Forms.ColumnHeader $chCol_4 = New-Object Windows.Forms.ColumnHeader $chCol_5 = New-Object Windows.Forms.ColumnHeader $chCol_6 = New-Object Windows.Forms.ColumnHeader $chCol_7 = New-Object Windows.Forms.ColumnHeader $tabCtrl = New-Object Windows.Forms.TabControl $tpPage1 = New-Object Windows.Forms.TabPage $tpPage2 = New-Object Windows.Forms.TabPage $rtbDesc = New-Object Windows.Forms.RichTextBox $imgList = New-Object Windows.Forms.ImageList $sbStrip = New-Object Windows.Forms.StatusStrip $sbLbl_1 = New-Object Windows.Forms.ToolStripStatusLabel $sbLbl_2 = New-Object Windows.Forms.ToolStripStatusLabel $sbLbl_3 = New-Object Windows.Forms.ToolStripStatusLabel # #common # $mnuMain.Items.AddRange(@($mnuFile, $mnuView, $mnuHelp)) $scSplt1, $scSplt2, $tvRoots, $lvList1, $lvList2, $tabCtrl, $rtbDesc | % { $_.Dock = [Windows.Forms.DockStyle]::Fill } $scSplt1, $scSplt2 | % { $_.SplitterWidth = 1 } $lvList1, $lvList2 | % { $_.FullRowSelect = $true $_.MultiSelect = $false $_.ShowItemToolTips = $true $_.Sorting = [Windows.Forms.SortOrder]::Ascending } $chCol_1.Text = "Name" $chCol_2.Text = "Desciption" $chCol_3.Text = "Amended" $chCol_4.Text = "Local" $chCol_5.Text = "Overridable" $chCol_6.Text = "PropagatesToInstance" $chCol_7.Text = "PropagatesToSubclass" $chCol_1, $chCol_2, $chCol_6, $chCol_7 | % { $_.Width = 130 } $chCol_3, $chCol_4, $chCol_5 | % { $_.Width = 70 } $tabCtrl.Controls.AddRange(@($tpPage1, $tpPage2)) $tpPage1, $tpPage2 | % { $_.UseVisualStyleBackColor = $true } $rtbDesc.ReadOnly = $true $i_1, $i_2, $i_3 | % { $imgList.Images.Add((Get-Resource $_)) } $sbStrip.Items.AddRange(@($sbLbl_1, $sbLbl_2, $sbLbl_3)) $sbLbl_1, $sbLbl_2, $sbLbl_3 | % { $_.AutoSize = $true } $sbLbl_2.ForeColor = [Drawing.Color]::DarkMagenta $sbLbl_3.ForeColor = [Drawing.Color]::DarkGreen # #mnuFile # $mnuFile.DropDownItems.AddRange(@($mnuExit)) $mnuFile.Text = "&File" # #mnuExit # $mnuExit.ShortcutKeys = [Windows.Forms.Keys]::Control, [Windows.Forms.Keys]::X $mnuExit.Text = "E&xit" $mnuExit.Add_Click({$frmMain.Close()}) # #mnuView # $mnuView.DropDownItems.AddRange(@($mnuSStr)) $mnuView.Text = "&View" # #mnuSStr # $mnuSStr.Checked = $true $mnuSStr.Text = "&Status Bar" $mnuSStr.Add_Click({ $toggle =! $mnuSStr.Checked $mnuSStr.Checked = $toggle $sbStrip.Visible = $toggle }) # #mnuHelp # $mnuHelp.DropDownItems.AddRange(@($mnuInfo)) $mnuHelp.Text = "&Help" # #mnuInfo # $mnuInfo.Text = "About..." $mnuInfo.Add_Click({ $frmInfo = New-Object Windows.Forms.Form $pbImage = New-Object Windows.Forms.PictureBox $lblName = New-Object Windows.Forms.Label $lblCopy = New-Object Windows.Forms.Label $btnExit = New-Object Windows.Forms.Button # #pbImage # $pbImage.Image = $ico.ToBitmap() $pbImage.Location = New-Object Drawing.Point(16, 16) $pbImage.Size = New-Object Drawing.Size(32, 32) $pbImage.SizeMode = [Windows.Forms.PictureBoxSizeMode]::StretchImage # #lblName # $lblName.Font = $f_2 $lblName.Location = New-Object Drawing.Point(53, 19) $lblName.Size = New-Object Drawing.Size(360, 18) $lblName.Text = "WMIExplorer v1.01" # #lblCopy # $lblCopy.Location = New-Object Drawing.Point(67, 37) $lblCopy.Size = New-Object Drawing.Size(360, 23) $lblCopy.Text = "Copyright (C) 2011-2014 greg zakharov" # #btnExit # $btnExit.Location = New-Object Drawing.Point(135, 67) $btnExit.Text = "OK" # #frmInfo # $frmInfo.AcceptButton = $btnExit $frmInfo.CancelButton = $btnExit $frmInfo.ClientSize = New-Object Drawing.Size(350, 110) $frmInfo.ControlBox = $false $frmInfo.Controls.AddRange(@($pbImage, $lblName, $lblCopy, $btnExit)) $frmInfo.FormBorderStyle = [Windows.Forms.FormBorderStyle]::FixedSingle $frmInfo.ShowInTaskbar = $false $frmInfo.StartPosition = [Windows.Forms.FormStartPosition]::CenterParent $frmInfo.Text = "About..." [void]$frmInfo.ShowDialog() }) # #scSplt1 # $scSplt1.Orientation = [Windows.Forms.Orientation]::Horizontal $scSplt1.Panel1.Controls.Add($scSplt2) $scSplt1.Panel2.Controls.Add($tabCtrl) $scSplt1.SplitterDistance = 60 # #scSplt2 # $scSplt2.Panel1.Controls.Add($tvRoots) $scSplt2.Panel2.Controls.Add($lvList1) $scSplt2.Panel1MinSize = 17 $scSplt2.SplitterDistance = 30 # #tvRoots # $tvRoots.ImageList = $imgList $tvRoots.Select() $tvRoots.Sorted = $true $tvRoots.Add_AfterExpand({Get-SubNameSpace $_.Node.Nodes}) $tvRoots.Add_AfterSelect({ $lvList1.Items.Clear() Reset-AllMessages if ($tvRoots.SelectedNode) { $cur = 'root\' + $tvRoots.SelectedNode.FullPath (New-Object Management.ManagementClass($cur, $obj) ).PSBase.GetSubclasses($enm) | % { $lvList1.Items.Add($_.Name, 1) } $frmMain.Text = $cur + ' - WMIExplorer' Get-ClassesNumber } #if }) # #lvList1 # $lvList1.LargeImageList = $imgList $lvList1.TileSize = New-Object Drawing.Size(270, 19) $lvList1.View = [Windows.Forms.View]::Tile $lvList1.Add_Click({ Reset-AllMessages for ($i = 0; $i -lt $lvList1.Items.Count; $i++) { if ($lvList1.Items[$i].Selected) { $path = $cur + ':' + $lvList1.Items[$i].Text $frmMain.Text = $path + ' - WMIExplorer' #caption $rtbDesc.SelectionFont = $f_1 $rtbDesc.AppendText("$($lvList1.Items[$i].Text)`n$(('-' * 100))`n") #getting class data $wmi = (New-Object Management.ManagementClass($path, $obj)).PSBase #extract class description and fill qualifiers table $wmi.Qualifiers | % { $itm = $lvList2.Items.Add($_.Name, 2) if ($_.Name -match 'Description') { $rtbDesc.AppendText("$($_.Value)`n`n") $itm.SubItems.Add("See specification") } else { $itm.SubItems.Add($_.Value.ToString()) } $itm.SubItems.Add($_.IsAmended.ToString()) $itm.SubItems.Add($_.IsLocal.ToString()) $itm.SubItems.Add($_.IsOverridable.ToString()) $itm.SubItems.Add($_.PropagatesToInstance.ToString()) $itm.SubItems.Add($_.PropagatesToSubclass.ToString()) } #extract method(s) data $wmi.Methods | % { $rtbDesc.SelectionColor = [Drawing.Color]::DarkMagenta $rtbDesc.SelectionFont = $f_2 $rtbDesc.AppendText("$($_.Name)`n") $rtbDesc.AppendText((Get-Description $_ $true)) } #extract property(ies) data $wmi.Properties | % { $rtbDesc.SelectionColor = [Drawing.Color]::DarkGreen $rtbDesc.SelectionFont = $f_2 $rtbDesc.AppendText("$($_.Name + '(Type: ' + $_.Type + ', Local: ' + $_.IsLocal + ', Array: ' + $_.IsArray + ')')`n") $rtbDesc.AppendText((Get-Description $_ $false)) } #derivation if ($wmi.Derivation.Count -ne 0) { $rtbDesc.SelectionColor = [Drawing.Color]::DarkBlue $rtbDesc.SelectionFont = $f_2 $rtbDesc.AppendText("Derivation`n") $wmi.Derivation | % { $rtbDesc.AppendText("$($_)`n") } } #count methods and properties $sbLbl_2.Text = "Methods: " + $wmi.Methods.Count.ToString() $sbLbl_3.Text = "Properties: " + $wmi.Properties.Count.ToString() } #if } #for }) # #lvList2 # $lvList2.Columns.AddRange(@($chCol_1, $chCol_2, $chCol_3, $chCol_4, $chCol_5, $chCol_6, $chCol_7)) $lvList2.SmallImageList = $imgList $lvList2.View = [Windows.Forms.View]::Details # #tpPage1 # $tpPage1.Controls.AddRange(@($rtbDesc)) $tpPage1.Text = "Specification" # #tpPage2 # $tpPage2.Controls.AddRange(@($lvList2)) $tpPage2.Text = "Qualifiers" # #frmMain # $frmMain.ClientSize = New-Object Drawing.Size(800, 557) $frmMain.Controls.AddRange(@($scSplt1, $sbStrip, $mnuMain)) $frmMain.Icon = $ico $frmMain.MainMenuStrip = $mnuMain $frmMain.StartPosition = [Windows.Forms.FormStartPosition]::CenterScreen $frmMain.Text = "WMIExplorer" $frmMain.Add_Load({ Get-NameSpaces 'root' | % { $tvRoots.Nodes.Add($_) } Get-SubNameSpace $tvRoots.Nodes $obj = New-Object Management.ObjectGetOptions $enm = New-Object Management.EnumerationOptions $obj.UseAmendedQualifiers = $enm.EnumerateDeep = $true $sbLbl_1.Text = "Ready" }) [void]$frmMain.ShowDialog() }.Invoke() ..скорее всего цель задачи сводится к использованию Win32_LogonSession или Win32_LoggedOnUser. |
Отправлено: 19:07, 07-03-2016 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
fascinating rhythm Сообщения: 6619
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 19:52, 07-03-2016 | #3 |
Старожил Сообщения: 498
|
Профиль | Сайт | Отправить PM | Цитировать Про пош не скажу, но вот удобный метод http://sysrtfm.ru/windows-sever-2008...jn-vbs-skript/.
Потом уже можно вытащить пошем (get-aduser/get-adcomputer) кто где сидит, чтобы не искать в dsa.msc. |
Отправлено: 14:06, 09-03-2016 | #4 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата nokogerra:
|
||
Отправлено: 16:05, 09-03-2016 | #5 |
Старожил Сообщения: 498
|
Профиль | Сайт | Отправить PM | Цитировать И чем он неудобный? И почему же не гарантирует корректность результатов? У меня все корректно показывает и на удобство не жалуюсь - можно увидеть общую картину в dsa или быстро получить залогиненного пользователя на определенной машине или наоборот - машину, на которую выполнил вход пользователь просто запросив значение атрибута description (или какой там есть желание использовать).
|
Отправлено: 17:05, 09-03-2016 | #6 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата nokogerra:
2. По какой-либо причине при выходе не произошла запись в Description — до очередного выхода пользователя из системы он останется «в сети», вплоть до вечности. nokogerra, главная беда этого подхода, что подобные случаи в нём совершенно не учитываются, нет никаких дополнительных периодических «проходов»-опросов, как, например, это сделано хотя бы в том же механизме «Сетевого окружения» (Browsing), где рано или поздно, но картина начинает соответствовать реальности. Насчёт возможных претензий «такого не может быть»/«это бывает раз в сто лет» — не принимается: не просто «бывает», но и бывает стабильно и регулярно. |
|
Отправлено: 17:50, 09-03-2016 | #7 |
Старожил Сообщения: 498
|
Профиль | Сайт | Отправить PM | Цитировать Хм, такое, конечно, может случиться, но когда групповые политики не отрабатывают "стабильно и регулярно", то не ладно что-то в датском королевстве.
|
Отправлено: 20:22, 09-03-2016 | #8 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата nokogerra:
Вы не поняли суть моих претензий к данному подходу: подобные ошибки в его рамках не обрабатываются в принципе. Никак. Совсем. И это очень плохо. |
|
Отправлено: 21:45, 09-03-2016 | #9 |
Ветеран Сообщения: 1496
|
Профиль | Отправить PM | Цитировать Если вдруг это как-то поможет, я для себя делаю так:
1. Создана структура вида \\FileServer\Data\Computer_Reports\OS_Versions, Everyone: Modify 2. Скриптом на файл-сервере создаётся файл \\FileServer\Data\Computer_Reports\Empty.txt Скрипт зашедулен на запуск от лица SYSTEM раз в пять минут. Это нужно для свежих атрибутов файла (время создания) Цитата:
Цитата:
Папка OS_Versions наполняется пустыми файлами вида "Windows 8.1_COMPUTERNAME_USERNAME.txt" с более-менее корректными метками времени. Ссылка на папку ставится сотрудникам IT на рабочий стол. Поиск в ней осуществляется прямо в Windows Explorer. Знаешь имя пользователя - получи компьютер, и наоборот. Чтобы эти файлы не копились бесконечно, на файл-сервере зашедулен ещё один скрипт: (Можете их объединить, для меня они разные, так как иногда играют разные роли.) Цитата:
|
|||
------- Последний раз редактировалось WindowsNT, 11-03-2016 в 11:39. Отправлено: 11:31, 11-03-2016 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[решено] Вставить в пустое поле в программу имя пользователя ПК | andry692 | AutoIt | 12 | 28-05-2014 12:17 | |
2008 R2 - Имя пользователя и полное имя пользователя при организации общего доступа к файлам | Kniaz | Windows Server 2008/2008 R2 | 0 | 12-06-2013 13:19 | |
Любой язык - удалённое выполнение скрипта, с правами залогиненного пользователя | vich68rus | Скриптовые языки администрирования Windows | 4 | 06-09-2011 18:11 | |
CMD/BAT - [решено] Как узнать название группы залогиненного пользователя? | avolkov2009 | Скриптовые языки администрирования Windows | 3 | 06-06-2011 11:59 | |
Изменение "Мой компьютер" на "Имя текущего пользователя на имя компьютера" | shcval | Microsoft Windows 2000/XP | 1 | 15-12-2006 21:01 |
|