标签: logon-scripts

查找用户上次登录的计算机的最佳方法?

我希望在 Active Directory 的某个地方写入/存储“最后一次从 [计算机] 登录”,或者有一个我可以解析的日志?

想知道最后登录的 PC 的目的是通过网络提供远程支持 - 我们的用户很少四处走动,但我想知道我正在咨询的任何内容都在那天早上更新(当他们登录时) ,大概)至少。

我也在考虑将用户名和计算机名写入我可以参考的已知位置的登录脚本,但我们的一些用户不喜欢一次注销 15 天。

如果有一个使用登录脚本的优雅解决方案,一定要提到它——但如果它恰好适用于解锁站,那就更好了!

security remote-access logon-scripts active-directory user-management

26
推荐指数
4
解决办法
31万
查看次数

在没有用户登录的情况下运行程序

我正在运行Windows 7安装,我希望能够在没有用户登录的情况下运行应用程序。 原因是我的应用程序是一个监控工具,我们希望能够24/7全天候监控即使计算机重新启动。根据我在网上收集的信息,有两种方法可以做到这一点:

  1. 创建一个服务并在管理员帐户下运行它

  2. 使用Windows组策略设置登录脚本:这就是事情变得有点不清楚,因为人们似乎混淆在没有用户的后台运行的程序在登录时运行的程序只是在用户登录后,如果我的设置。我的程序在这种模式下运行,如果没有人登录它会运行吗?

你能评论#1、#2,你会推荐哪一个,为什么?也许还有另一种我不知道的方式?

感谢您的帮助,

logon-scripts windows-7 autorun service

10
推荐指数
1
解决办法
8万
查看次数

GPO:加载 explorer.exe 后运行 PowerShell 登录脚本

我知道有GPO设置“计算机配置 => 管理。模板 => 系统 => 脚本 => 同步运行登录脚本”。但是,这可确保登录脚本在 Windows 资源管理器开始加载(启用时)之前运行。

我需要相反的东西。我想确保 explorer.exe 已成功加载并随后执行 PowerShell 登录脚本。这是由于我需要触发的应用程序的一些奇怪的依赖关系。

我尝试禁用根据描述应该允许同时运行文件资源管理器和脚本的设置。不幸的是,它没有(是的,我重新启动和 gpupdates ......)

所以我尝试在我的 PowerShell 登录脚本中添加一个名为 wait-for-explorer() 的函数。它会while循环休眠,直到 explorer.exe 运行。但是,这似乎不起作用。

解决这个问题的最好和最干净的方法是什么?是否有我忽略的 GPO 设置?

这是代码的样子:

Function Wait-For-Explorer
{   
    $process = 'explorer.exe'
    $waitTime = 1

    While ($owner.User -ne $env:USERNAME) 
    {   
        try 
        {     
            $owner = (Get-WmiObject -class win32_process | where { $_.ProcessName -eq $process }).GetOwner() | Select -Property User
        }
        catch
        {
            Write-Host "Zzzzz...."
            Start-Sleep -Seconds $waitTime
        }
    }

    Write-Host "Process ${process} is …
Run Code Online (Sandbox Code Playgroud)

powershell logon-scripts group-policy

7
推荐指数
1
解决办法
1万
查看次数

您在 Windows 环境中为登录脚本使用什么脚本语言?

我想知道现在最常使用哪种脚本语言作为登录脚本。人们是否仍在使用批处理文件或 vbscripts 进行黑客攻击,或者您是否使用 PowerShell 或完全不同的东西?

就我个人而言,我对vbscript很好的经验,它几乎适用于所有 Windows 版本,但 PowerShell 看起来不错,可能是未来的一个选择。

那么,您首选的登录脚本脚本语言是什么,为什么?如果可以,请分享您在登录脚本中所做的一些出色的事情。

问候,埃吉尔。

windows powershell logon-scripts batch-file vbscript

5
推荐指数
1
解决办法
3682
查看次数

映射共享和打印机时——GPO 还是登录脚本?

我想请大家谈谈在映射共享和打印机时使用 GPO 还是登录脚本更好。

根据我的理解,如果我错了,请告诉我,GPO 似乎是一个更简洁的解决方案。

  1. GPO 允许您通过安全组管理打印机和共享
  2. GPO 有更好的故障排除工具。
  3. 您可以通过运行 GPUPDATE /Force 更新用户设置 - 不再需要注销/登录。

logon-scripts group-policy

5
推荐指数
1
解决办法
933
查看次数

有用的登录脚本命令

请张贴您在登录脚本中使用的有用命令。

以下是我使用的一些:

映射网络驱动器:
net use v:\fileserver\apps
映射网络打印机:
RunDll32.EXE printui.dll,PrintUIEntry /in /n "\\printserver\Xerox DC1100 PCL"
删除网络打印机:
RunDll32.EXE printui.dll ,PrintUIEntry /dn /q /n "\\printserver\HP LaserJet 2300"
disable windows firewall:
netsh firewall set opmode disable
install a new program:
if not exist "C:\Program Files\Antivirus\" "V:\Antivirus\ install.msi”
在用户桌面上创建快捷方式:
复制“V:\shortcuts\dictionary.lnk”“%USERPROFILE%\Desktop”

logon-scripts active-directory

4
推荐指数
1
解决办法
3万
查看次数

在登录时使用 VBScript 确定是否安装了 powershell

我的网络上混合了 Win7 和 XP 计算机。每个用户都使用基于 VBS 的登录脚本登录,对于支持它的客户端,我想显示一个信息弹出窗口,如下所示

如何检测是否使用 VBScript 安装了 Powershell?

powershell logon-scripts vbscript

4
推荐指数
1
解决办法
1714
查看次数

用户登录脚本何时运行?

我在活动目录中定义了几个用户登录脚本。这些是批处理脚本以及 powershell 脚本。

这些实际上什么时候运行?用户在登录时看到“黑色终端框”,还是在看到登录屏幕时运行脚本?

编辑澄清:我说的是在 GPO 中定义的登录脚本,我正在运行 Windows Server 2008 R2。

powershell logon-scripts windows-server-2008-r2

3
推荐指数
1
解决办法
2391
查看次数

如何将命令行输出提取到变量中?

作为我为客户处理的任务的一部分,我需要对企业登录脚本进行一些修改。Windows 命令行绝对不是我的专业领域,但我对大多数它都做得很好。但是,我有一个问题,我不知道该怎么做。

基本上,我需要将机器默认网关的 IP 地址获取到环境变量中(供以后在脚本中使用)。我知道它存在于ipconfig和 of的输出中tracert,并且我知道如何在他们的输出中找到我需要的确切行,但我不知道如何超越它。

例如,以下命令会产生如下输出:

>ipconfig|Find "Default Gateway"|Findstr/N "."|Findstr/B "1:"

 1:   Default Gateway . . . . . . . . . : 199.99.9.1
Run Code Online (Sandbox Code Playgroud)

但是现在我需要以某种方式仅从该文本行中提取 IP 地址,然后将其分配给环境变量。那么,如何从 Windows 命令行执行此操作?(Windows XP 及更高版本)。

scripting windows logon-scripts command-line-interface environment-variables

3
推荐指数
1
解决办法
1万
查看次数

用户登录或注销时运行脚本

我正在寻找一种方式来运行的脚本1,当用户登录2 ,当他们注销3他们对4级的Windows 5机。

笔记:

  1. 完美世界脚本意味着 Powershell 脚本,但任何脚本或应用程序都是可以接受的。
  2. 登录也可以意味着在机器启动时,但用户登录将是理想的。
  3. 注销也可能意味着机器关闭,但用户注销将是理想的。
  4. 这台机器不在域中。
  5. Windows 版本是 Windows Vista。

scripting windows powershell logon-scripts login

2
推荐指数
1
解决办法
4344
查看次数

GPO 登录脚本需要管理员权限

我正在使用登录批处理脚本将一些 dll 文件复制到 c:\windows\system32 文件夹中,并使用 regsrv32 命令注册它们。

但是,这两个操作都失败了。

我在这里应用脚本: user configuration\policies\scripts (logon/logoff)/logon

脚本本身确实会被执行。但是,它只是不执行任何需要管理员凭据的操作。

我怎样才能解决这个问题?

windows-server-2008 logon-scripts group-policy

2
推荐指数
1
解决办法
3万
查看次数

为什么我的登录脚本没有映射任何驱动器?

我在 PowerShell 中编写了一个登录脚本。该脚本嵌入在 GPO 中,并在用户登录域时运行。

我的问题是,我在脚本中部署的驱动器没有被部署。我确信登录脚本会运行,因为在脚本结束时我会向自己发送一封电子邮件,但我总是会收到它。所以运行脚本应该不是问题。$Error每次脚本运行时,我都会记录整个变量,但没有说明为什么会发生此错误。

我几乎可以肯定错误不在脚本本身中 - 我认为它必须是权限错误。

我认为当我-NoProfile在运行脚本时指定参数时可以解决这个问题,但我不知道将它放在 GPO 的哪个位置。由于美观原因,我不希望批处理文件调用脚本:-)。

编辑:指定-noprofile没有解决问题

编辑:由于有评论说没有足够的关于驱动器如何映射的信息,我将整个映射部分粘贴在下面:

# UserOU as a parameter, value set in GPO
Param([string]$UserOU)

# preparing some stuff...
Import-Module .\SecureStringFunctions.psm1
[Byte[]]$key = (1..16)
$pw = Get-Content .\LocalAdminCred.txt | ConvertTo-SecureString -key $key

# Tried this to elevate the Script IF it's needed. Didn't solve my problem. works only on PS 4.0 but didn't solve the issue on my 5.0 machine
if (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) 
{ Start-Process …
Run Code Online (Sandbox Code Playgroud)

windows powershell logon-scripts group-policy

2
推荐指数
1
解决办法
2万
查看次数

VBS 登录脚本

有人可以提供一些有关 VBS 脚本的帮助吗?

这是我到目前为止修改的内容;

Const GROUP1 = "cn=GROUP1"
Const GROUP2 = "cn=GROUP2"
Const GROUP3 = "cn=GROUP3"

Set wshNetwork = CreateObject("WScript.Network")

Set ObjectUser = CreateObject("ADSystemInfo")
Set CurrentUser = GetObject("LDAP://" & ObjectUser.UserName)
strGroups = LCase(Join(CurrentUser.MemberOf))

If InStr(strGroups, LCase("GROUP1")) Then   
  wshNetwork.MapNetworkDrive "L:", "\\servername\\volume1\"
End If

If InStr(strGroups, LCase("GROUP2")) Then
  wshNetwork.MapNetworkDrive "M:", "\\servername\volume2\"
End If

If InStr(strGroups, LCase("GROUP3")) Then
  wshNetwork.MapNetworkDrive "N:", "\\servername\volume3\"
End If
Run Code Online (Sandbox Code Playgroud)

我不确定检索 LDAP 字符串的最佳和最简单的方法是什么?我也不断收到错误Set CurrentUser = GetObject("LDAP://" & ObjectUser.UserName)

任何帮助将非常感激。

logon-scripts netlogon vbscript

0
推荐指数
1
解决办法
650
查看次数