Войти

Показать полную графическую версию : [решено] IP-адрес на обоях, которые приезжают по ГП


James Marsh
05-02-2019, 21:33
Всем доброго времени суток.

Может кто заморачивался?
Есть обои, которые приезжают по групповым политикам (через политку, а не скриптом).
Надо вывести ip-адрес поверх обоев. BgInfo поверх таких обоев не рисует.
Кто-то на такие грабли наступал? Best Practice мож быть?

Заранее спасибо.

Iska
05-02-2019, 22:02
James Marsh, а как именно они у Вас «приезжают по групповым политикам»?

Vadikan
06-02-2019, 01:12
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:
есть такой вариант »
Ну Вы правы - костыль еще тот. =))

Iska
06-02-2019, 21:10
James Marsh, спасибо, ясно. Полагаю, дело тут не в том, что BGInfo якобы не умеет рисовать поверх таких обоев. Полагаю, оно рисует. Полагаю, что и назначает. Но сие не может перекрыть настройки, заданные групповой политикой.

А вариант с треем:
Bginfo.exe /taskbar /nolicprompt /silent
Вас не устроит?

James Marsh
06-02-2019, 21:54
Вас не устроит? »
А так можно? Я честно говоря никогда в дебри bginfo не лазил. Ща скрипт подмхну, а завтра гляну шо оно и где там вылезет.

Iska
06-02-2019, 22:03
А так можно? »
Ну, значок BGInfo будет «висеть» в трее, по щелчку открывать заполненное окошко на основе умолчальной конфигурации (дополнительно параметром можно указать, какой файл конфигурации использовать). Можно вообще в базу данных зараз собирать данные посредством BGInfo со всех потребных машин.

Вам IP-адрес ведь нужен, полагаю, для того, чтобы пользовать его в стиле «позвонили-посмотрели-назвали свой IP»?

James Marsh
06-02-2019, 22:03
Ёперный театр... оно висит в трее, а щелкнешь мышкой - вылазиет... Надо будет коллективом обдумать.

Та просто у нас была/есть самописная конструкция из cmd- и vbs-скриптов с файлами обоев, которые меряли разрешение экрана и ставили обоями файлик нужного размера. И потом поверх на обоях bginfo айпишник рисовало. А начиная с вин 10 1803 защитник скрипт считает вирусом и удаляет. И получается, что на стандартных обоях 10ки красовались заветные циферки. А тут нас взяли за зябры, мол чего обои не по фен-шую? Ну нарисовал я политику и теперь пытаюсь костыль придумать.

Вам IP-адрес ведь нужен, полагаю, для того, чтобы пользовать его в стиле «позвонили-посмотрели-назвали свой IP»? »

Да, только за 5 лет народ привык где его смотреть. :(

Iska
06-02-2019, 22:34
А начиная с вин 10 1803 защитник скрипт считает вирусом и удаляет. »
А какой код?

Busla
06-02-2019, 22:42
James Marsh, а если не через встроенный GPO (там разве не написано, что применимо только к 2k3 и XP), а создать свою, которая завязана только на соответствующий ключ реестра

я согласен с Iska - встроенная политика не просто "засылает" новые обои, а и запрещает их менять

mwz
07-02-2019, 00:38
А начиная с вин 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

Busla
08-02-2019, 22:05
James Marsh, а чем
wmic DESKTOPMONITOR GET ScreenHeight
не устроил?

mwz
08-02-2019, 22:22
А защитник ругается на mshta »

Так как насчёт добавления его в исключения?
Как раз сегодня, даже для использования GPO годится: http://forum.oszone.net/thread-339118.html

James Marsh
08-02-2019, 22:34
wmic DESKTOPMONITOR GET ScreenHeight
не устроил? »

А я про него в первый раз слышу. Поцацкаемся...

Тьфу, блин. А шо я мучаюсь? Экраны то все фуллхд... накой мне проверка разрешения? Я же могу в вбс-скрипте прямо файл обоев прописать и морочить себе голову.

Iska
09-02-2019, 02:03
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