Показать полную графическую версию : [решено] IP-адрес на обоях, которые приезжают по ГП
James Marsh
05-02-2019, 21:33
Всем доброго времени суток.
Может кто заморачивался?
Есть обои, которые приезжают по групповым политикам (через политку, а не скриптом).
Надо вывести ip-адрес поверх обоев. BgInfo поверх таких обоев не рисует.
Кто-то на такие грабли наступал? Best Practice мож быть?
Заранее спасибо.
James Marsh, а как именно они у Вас «приезжают по групповым политикам»?
James Marsh, есть такой вариант
https://i.imgur.com/OsDQGKW.png
https://t.me/sterkin_ru/706 | https://vk.com/wall-81672804_6227
P.S. Сорри, это не IP, но ладно, не буду удалять - вдруг кому пригодится :)
James Marsh
06-02-2019, 20:39
Цитата Iska:
а как именно они у Вас «приезжают по групповым политикам»? »
Цитата James Marsh:
через политку »
http://funkyimg.com/i/2R3BJ.png
Цитата Vadikan:
есть такой вариант »
Ну Вы правы - костыль еще тот. =))
James Marsh, спасибо, ясно. Полагаю, дело тут не в том, что BGInfo якобы не умеет рисовать поверх таких обоев. Полагаю, оно рисует. Полагаю, что и назначает. Но сие не может перекрыть настройки, заданные групповой политикой.
А вариант с треем:
Bginfo.exe /taskbar /nolicprompt /silent
Вас не устроит?
James Marsh
06-02-2019, 21:54
Вас не устроит? »
А так можно? Я честно говоря никогда в дебри bginfo не лазил. Ща скрипт подмхну, а завтра гляну шо оно и где там вылезет.
А так можно? »
Ну, значок BGInfo будет «висеть» в трее, по щелчку открывать заполненное окошко на основе умолчальной конфигурации (дополнительно параметром можно указать, какой файл конфигурации использовать). Можно вообще в базу данных зараз собирать данные посредством BGInfo со всех потребных машин.
Вам IP-адрес ведь нужен, полагаю, для того, чтобы пользовать его в стиле «позвонили-посмотрели-назвали свой IP»?
James Marsh
06-02-2019, 22:03
Ёперный театр... оно висит в трее, а щелкнешь мышкой - вылазиет... Надо будет коллективом обдумать.
Та просто у нас была/есть самописная конструкция из cmd- и vbs-скриптов с файлами обоев, которые меряли разрешение экрана и ставили обоями файлик нужного размера. И потом поверх на обоях bginfo айпишник рисовало. А начиная с вин 10 1803 защитник скрипт считает вирусом и удаляет. И получается, что на стандартных обоях 10ки красовались заветные циферки. А тут нас взяли за зябры, мол чего обои не по фен-шую? Ну нарисовал я политику и теперь пытаюсь костыль придумать.
Вам IP-адрес ведь нужен, полагаю, для того, чтобы пользовать его в стиле «позвонили-посмотрели-назвали свой IP»? »
Да, только за 5 лет народ привык где его смотреть. :(
А начиная с вин 10 1803 защитник скрипт считает вирусом и удаляет. »
А какой код?
James Marsh, а если не через встроенный GPO (там разве не написано, что применимо только к 2k3 и XP), а создать свою, которая завязана только на соответствующий ключ реестра
я согласен с Iska - встроенная политика не просто "засылает" новые обои, а и запрещает их менять
А начиная с вин 10 1803 защитник скрипт считает вирусом и удаляет »
А добавить его Защитнику в непроверяемые?
James Marsh
08-02-2019, 21:17
А какой код? »
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
Хотя, положа руку на сердце, скажу что данный велосипед устарел. Писался он когда был зоопарк мониторов и ноутбуков различного разрешения:
http://funkyimg.com/i/2R7sT.png
И так как сейчас 95% экранов фуллхд, то здается мне, что можно этот вЭлосЫпЭд как-то переписать, что бы убрать кусок определяющий, и считывающий разрешение экрана.
http://funkyimg.com/i/2R7tE.png
James Marsh, а чем
wmic DESKTOPMONITOR GET ScreenHeight
не устроил?
А защитник ругается на mshta »
Так как насчёт добавления его в исключения?
Как раз сегодня, даже для использования GPO годится: http://forum.oszone.net/thread-339118.html
James Marsh
08-02-2019, 22:34
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
wallpaper_srv.vbs »
Примерно так:
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
Спасибо, по свободе на буднях попробую ваши конструкции. Отпишусь по результату.
James Marsh
11-02-2019, 21:23
В обчем, так как парк экранов на 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
http://funkyimg.com/i/2Rdja.png
В опчем с пивом покатит. Все равно это не самая глобальная проблема, которая на повестке дня. Фсем спасибо.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.