James Marsh |
05-02-2019 21:33 2856421 |
IP-адрес на обоях, которые приезжают по ГП
Всем доброго времени суток.
Может кто заморачивался?
Есть обои, которые приезжают по групповым политикам (через политку, а не скриптом).
Надо вывести ip-адрес поверх обоев. BgInfo поверх таких обоев не рисует.
Кто-то на такие грабли наступал? Best Practice мож быть?
Заранее спасибо.
|
James Marsh, а как именно они у Вас «приезжают по групповым политикам»?
|
James Marsh |
06-02-2019 20:39 2856584 |
Цитата Iska:
а как именно они у Вас «приезжают по групповым политикам»? »
Цитата James Marsh:
через политку »
Цитата Vadikan:
есть такой вариант »
Ну Вы правы - костыль еще тот. =))
|
James Marsh, спасибо, ясно. Полагаю, дело тут не в том, что BGInfo якобы не умеет рисовать поверх таких обоев. Полагаю, оно рисует. Полагаю, что и назначает. Но сие не может перекрыть настройки, заданные групповой политикой.
А вариант с треем:
Код:
Bginfo.exe /taskbar /nolicprompt /silent
Вас не устроит?
|
James Marsh |
06-02-2019 21:54 2856595 |
А так можно? Я честно говоря никогда в дебри bginfo не лазил. Ща скрипт подмхну, а завтра гляну шо оно и где там вылезет.
|
Ну, значок BGInfo будет «висеть» в трее, по щелчку открывать заполненное окошко на основе умолчальной конфигурации (дополнительно параметром можно указать, какой файл конфигурации использовать). Можно вообще в базу данных зараз собирать данные посредством BGInfo со всех потребных машин.
Вам IP-адрес ведь нужен, полагаю, для того, чтобы пользовать его в стиле «позвонили-посмотрели-назвали свой IP»?
|
James Marsh |
06-02-2019 22:03 2856598 |
Ёперный театр... оно висит в трее, а щелкнешь мышкой - вылазиет... Надо будет коллективом обдумать.
Та просто у нас была/есть самописная конструкция из cmd- и vbs-скриптов с файлами обоев, которые меряли разрешение экрана и ставили обоями файлик нужного размера. И потом поверх на обоях bginfo айпишник рисовало. А начиная с вин 10 1803 защитник скрипт считает вирусом и удаляет. И получается, что на стандартных обоях 10ки красовались заветные циферки. А тут нас взяли за зябры, мол чего обои не по фен-шую? Ну нарисовал я политику и теперь пытаюсь костыль придумать.
Цитата:
Цитата Iska
Вам IP-адрес ведь нужен, полагаю, для того, чтобы пользовать его в стиле «позвонили-посмотрели-назвали свой IP»? »
|
Да, только за 5 лет народ привык где его смотреть. :(
|
Цитата:
Цитата James Marsh
А начиная с вин 10 1803 защитник скрипт считает вирусом и удаляет. »
|
А какой код?
|
James Marsh, а если не через встроенный GPO (там разве не написано, что применимо только к 2k3 и XP), а создать свою, которая завязана только на соответствующий ключ реестра
я согласен с Iska - встроенная политика не просто "засылает" новые обои, а и запрещает их менять
|
Цитата:
Цитата James Marsh
А начиная с вин 10 1803 защитник скрипт считает вирусом и удаляет »
|
А добавить его Защитнику в непроверяемые?
|
James Marsh |
08-02-2019 21:17 2856911 |
cmd-конструкция
Код:
@echo off
setlocal enableextensions enabledelayedexpansion
mshta "javascript: var o = new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1); o.Write(screen.width); o.Write('_' + screen.height); close()" 1 >> z:\scr_resolution.txt
CScript \\10.17.11.21\scripts\wallpaper_srv.vbs //NoLogo
\\10.17.11.21\scripts\bginfo\bginfo.exe \\10.17.11.21\scripts\bginfo\init.bgi /timer:0 /SILENT /NOLICPROMPT
del z:\scr_resolution.txt
endlocal
exit /b 0
wallpaper_srv.vbs
Код:
Dim fso, ts, scrres
Set fso = CreateObject("Scripting.FileSystemObject")
Set ts = fso.OpenTextFile("z:\scr_resolution.txt", 1)
scrres = ts.ReadLine
filename = "\\10.17.11.21\scripts\wlp\" & scrres & ".bmp"
'msgbox (filename)
Set wshShell = WScript.CreateObject("WScript.Shell")
Set oShell = CreateObject("WScript.Shell")
Set oFSO = CreateObject("Scripting.FileSystemObject")
sWinDir = oFSO.GetSpecialFolder(0)
If oFSO.FileExists(filename) Then
oShell.RegWrite "HKCU\Control Panel\Desktop\Wallpaper", filename
oShell.RegWrite "HKCU\Control Panel\Desktop\TileWallpaper", 0
oShell.RegWrite "HKCU\Control Panel\Desktop\WallpaperStyle", 2
oShell.Run "%windir%\System32\RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters", 1, True
Else
msgbox ("Скажите системному администратору обои рабочего стола для разрешения экрана " & scrres & " отсутствует!")
End If
А защитник ругается на mshta
Хотя, положа руку на сердце, скажу что данный велосипед устарел. Писался он когда был зоопарк мониторов и ноутбуков различного разрешения:
И так как сейчас 95% экранов фуллхд, то здается мне, что можно этот вЭлосЫпЭд как-то переписать, что бы убрать кусок определяющий, и считывающий разрешение экрана.
|
James Marsh, а чем
Код:
wmic DESKTOPMONITOR GET ScreenHeight
не устроил?
|
James Marsh |
08-02-2019 22:34 2856925 |
Цитата:
Цитата Busla
wmic DESKTOPMONITOR GET ScreenHeight
не устроил? »
|
А я про него в первый раз слышу. Поцацкаемся...
Тьфу, блин. А шо я мучаюсь? Экраны то все фуллхд... накой мне проверка разрешения? Я же могу в вбс-скрипте прямо файл обоев прописать и морочить себе голову.
|
James Marsh, нет никакой нужды в mshta.exe:
Код:
Option Explicit
' Раз:
With WScript.CreateObject("htmlfile")
.open
.close
With .parentWindow.screen
WScript.Echo .width & "x" & .height
End With
End With
' Два (вариант коллеги Busla):
Dim objSWbemObjectEx
For Each objSWbemObjectEx In WScript.CreateObject("WbemScripting.SWbemLocator").ConnectServer(".", "root\cimv2").ExecQuery("SELECT * FROM Win32_DesktopMonitor")
With objSWbemObjectEx
WScript.Echo .ScreenWidth & "x" & .ScreenHeight
End With
Next
WScript.Quit 0
Примерно так:
Код:
Option Explicit
Const strRegistryPath = "HKCU\Control Panel\Desktop"
Const strPath2Wallpapers = "\\10.17.11.21\scripts\wlp"
Dim strWallpaperFile
With WScript.CreateObject("htmlfile")
.open
.close
With .parentWindow.screen
strWallpaperFile = strPath2Wallpapers & "\" & CStr(.width) & "x" & CStr(.height) & ".bmp"
End With
End With
If Not WScript.CreateObject("Scripting.FileSystemObject").FileExists(strPath2Wallpapers) Then
With WScript.CreateObject("WScript.Shell")
.RegWrite strRegistryPath & "\Wallpaper", strWallpaperFile
.RegWrite strRegistryPath & "\TileWallpaper", 0
.RegWrite strRegistryPath & "\WallpaperStyle", 2
.Run """rundll32.exe"" user32.dll,UpdatePerUserSystemParameters", 0, True
End With
Else
WScript.Echo "Can't find valid wallpaper's file [" & strWallpaperFile & "]."
WScript.Quit 1
End If
WScript.Quit 0
А ежели ещё предварительно подготовить где-нибудь там же, в strPath2Wallpapers, одиннадцать графических файлов, десять с цифирью и один с точкой, то можно будет тем же скриптом посредством библиотеки WIA 2.0 самостоятельно лепить IP-адрес поверх обоев, без участия BGInfo (можно, конечно, и прямо рисовать на векторе картинки поточечно, но уж больно много возни выйдет).
|
James Marsh |
09-02-2019 16:52 2857013 |
Спасибо, по свободе на буднях попробую ваши конструкции. Отпишусь по результату.
|
James Marsh |
11-02-2019 21:23 2857379 |
В обчем, так как парк экранов на 99% - фуллхд, то я просто урезал vbs
Код:
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
Set wshShell = WScript.CreateObject("WScript.Shell")
Set oShell = CreateObject("WScript.Shell")
Set oFSO = CreateObject("Scripting.FileSystemObject")
sWinDir = oFSO.GetSpecialFolder(0)
filename = "\\10.19.11.21\_scripts\wlp\1920_1080.bmp"
oShell.RegWrite "HKCU\Control Panel\Desktop\Wallpaper", filename
oShell.RegWrite "HKCU\Control Panel\Desktop\TileWallpaper", 0
oShell.RegWrite "HKCU\Control Panel\Desktop\WallpaperStyle", 2
oShell.Run "%windir%\System32\RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters", 1, True
и запихнул его в логон-скрипт групповой политикой. Ну и рядом cmd для bginfo.
Код:
\\10.19.11.21\scripts\bginfo\bginfo.exe \\10.19.11.21\scripts\bginfo\init.bgi /timer:0 /SILENT /NOLICPROMPT
В опчем с пивом покатит. Все равно это не самая глобальная проблема, которая на повестке дня. Фсем спасибо.
|
Время: 21:42.
© OSzone.net 2001-