我知道有GPO设置“Computer Configuration => Admin。Templates => System => Scripts =>同步运行login脚本”。 但是,这确保login脚本在Windows资源pipe理器开始加载之前运行(启用时)。 我需要相反的东西。 我想确保explorer.exe已经成功加载,然后执行PowerShelllogin脚本。 这是由于我需要触发的一些应用程序的依赖关系。 我试过禁用根据描述的设置应该允许同时运行文件资源pipe理器和脚本。 不幸的是,它不(是的,我做了重启和gpupdates …) 所以我试图在我的PowerShelllogin脚本中添加一个名为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 } […]
我有一个PowerShell脚本,我用来创build新的用户。 每年我们增加数百名实习生,所以自动化是至关重要的。 有人在HR运行脚本,所以脚本应该是万无一失的。 我遇到了两个添加了新function的竞争条件,我想用比当前方法(睡眠2分钟)更可靠的方式来解决这个问题,但这个方法仍然会间歇性地失败。 1)Office 365许可证激活。 在尝试激活许可证之前,我使用Start-OnlineCoexistenceSync命令强制Office 365与我们的本地AD同步。 据我所知,没有办法检查同步的状态。 所以我延迟2分钟。 在testing中,它已经工作,但在生产中间歇性地工作。 我认为扩大等待会解决,但2分钟已经感觉很长。 显然有时比需要的时间更长,我讨厌有不必要的延误。 2)发送欢迎电子邮件。 帐户可能需要花费不同的时间来创build(有时会完全失败),但我不想过度延迟脚本。 任何build议如何解决?
所以我一直在研究Powershell脚本,它需要检测自上次重新启动以来是否发生了交互式login。 在启动任务之前,我可以强制系统重新启动,但是我想为脚本添加一些智能。 注意事项: 必须使用Powershell。 不需要特殊的电源组件或插件。 不能使用Active Directory命令。 (没有get-qaduser) 我能够得到最后一次系统已经重新启动: $date = Get-WmiObject Win32_OperatingSystem | %{$_.LastBootUpTime} $RebootTime = [System.DateTime]::ParseExact($date.split(".")[0],'yyyyMMddHHmmss',$null) 有任何想法吗? 提前致谢
是否有可能在Windows Server 2008 R2中使用PowerShell安装SSL证书? 如果不是,可以使用cmd命令行吗? 我正在用mmc来做这件事,但是用PowerShell做这件事还是不错的。
我需要枚举Get-AdPermission的属性“ExtendedRights”中embedded的权限。 如何扩展这个多值对象中的属性并显示它们? 通常我看到这样的命令: Get-Mailbox | Get-ADPermission | where {($_.ExtendedRights -like "*Send-As*")} | Fl 但现在我处于这种情况,我只想报告授予用户的权限(可以发送,可以接收)
我无法使用Set-Location更改为数据库。 我已经加载了SQL Serverpipe理单元。 我可以使用Set-Location进入SQL\Localhost\SQLEXPRESS\ ,并且可以使用Get-ChildItem显示服务器节点下的path。 但是,如果我尝试更改到我的机器上已知的数据库, Set-Location调用将失败。 我错过了一个图书馆吗?
我正在寻找如何从registry中返回一个值。 我只需要这个命令的AGENTGUID值。 $reg=reg query "\\$computer\HKLM\SOFTWARE\Wow6432Node\Network Associates\ePolicy Orchestrator\Agent" /v Agentguid $reg将返回这一行。 我只需要{F789B761-81BE-4357-830B-368B5B3CF5E5} HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Network Associates\ePolicy Orchestrator\Agent Aentguid REG_SZ {F789B761-81BE-4357-830B-368B5B3CF5E5}
我试图编写一个脚本来审计一些HIPAA敏感的服务器上的共享文件夹。 我使用gwmi Win32_Share得到了一份股份清单,但是当我使用gwmi Win32_LogicalShareSecuritySetting去获取每个股份的权限时,隐藏的pipe理股票没有被列出。 我意识到这是显而易见的原因,这不是权限更改,但我想某种迹象表明,这实际上是一个行政份额。 目前我正在使用一个try-catch块来处理错误,并踢出'权限找不到'的消息。 有没有什么办法可以使用PowerShell列出隐藏的pipe理共享?
我试图validation每个我正在工作的服务器中的文件系统分区是否正确alignment。 我已经得到了下面的脚本,当我尝试运行时,要么声称所有的虚拟服务器alignment或不alignment的基础上,如果我使用的语句(一个被注释掉): $myArr = @() $vms = get-vm | where {$_.PowerState -eq "PoweredOn" -and $_.Guest.OSFullName -match "Microsoft Windows*" } | sort name foreach($vm in $vms){ $wmi = get-wmiobject -class "win32_DiskPartition" -namespace "root\CIMV2" -ComputerName $vm foreach ($partition in $wmi){ $Details = "" | Select-Object VMName, Partition, Status #if (($partition.startingoffset % 65536) -isnot [decimal]){ if ($partition.startingoffSet -eq […]
我需要更改TCP InitialCongestionWindow的默认值 我读了这个文件: https : //www.iispeed.com/blog/windows-server-2012-and-tcp-slow-start 我在我们的hyper-v托pipe的虚拟服务器2012 R2上试用了它。 PS C:\>Set-NetTCPSetting -SettingName Custom -InitialCongestionWindow 10 -CongestionProvider CTCP 我得到错误: Set-NetTCPSetting : No MSFT_NetTCPSetting objects found with property 'SettingName' equal to 'Custom'. Verify the valu e of the property and retry. At line:1 char:1 + Set-NetTCPSetting -SettingName Custom -InitialCongestionWindow 10 -CongestionPro … + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: […]