0

我有一台持续登录、运行脚本、然后注销并重新启动以重复该过程的 PC。

$StartTime = Get-Date
...
(other code here, including delay)
...
$LServer = $env:logonserver
$ShutTime = Get-Date

New-Object -TypeName PSCustomObject -Property @{
    StartTime = $StartTime
    ShutTime = $ShutTime
    LogonServer = $LServer 
} | Export-Csv -Path "C:\Apps\DCResults.csv" -Append

当我手动执行脚本时,文件会更新为正确的信息,即填充了 3 列数据。但是当脚本在 Windows 启动时执行时,LogonServer 不会写入 CSV 文件。该列保持空白,而其他两列是正确的。

编辑:实际上,它不必是 .CSV,只是我可以放入 Excel 中进行分析的文件。如果有更好的方法来写入文件......

4

4 回答 4

1

会像这样工作吗:

$LServer = (gwmi Win32_NtDomain | select DomainControllerName | where DomainControllerName -ne $null ).DomainControllerName[0] -replace '\\'
于 2014-07-10T05:51:38.660 回答
0

如果设置了 LOGONSERVER 环境变量,则它指的是登录当前用户的计算机(即运行脚本的用户帐户)。对于本地帐户,LOGONSERVER(同样,如果设置)将是本地计算机。

于 2014-07-21T14:29:21.497 回答
0

在用户登录之前不会定义 LogonServer 环境变量。如果您在机器启动脚本中运行脚本,则没有用户登录。也许如果您将脚本作为登录脚本运行,它会按照您的意愿执行。

于 2014-07-15T19:52:19.457 回答
0

我会配置一个自动登录用户:http: //support.microsoft.com/kb/324737

确保您的登录用户是域用户并且也是本地管理员组的成员。然后将脚本设置为在启动时从启动文件夹或以下位置运行:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

将注册表中的作业配置为通过 cmd/bat 文件启动(就像计划任务一样)。即使您破坏了自动登录用户,该脚本也会运行并为任何登录且对文件夹和文件具有权限的用户生成输出。我还将使用 shutdown 命令添加几秒钟的延迟,以便可以使用 shutdown -a 轻松破坏重启部分

于 2014-07-17T16:06:07.400 回答