在 Windows server 2008 r2 中,对于这个手动过程
打开运行>gpedit.msc>计算机配置>windows模板>windows更新>指定内网微软更新服务位置> https://www.10.101.10.10.com
并且还应该启用/禁用状态
我可以知道如何使用 powershell 来做到这一点,比如脚本吗?
这些设置在注册表部分,我在问:
在 GPMC 中,依次展开“计算机配置”、“策略”、“管理模板”、“Windows 组件”,然后单击“Windows 更新”。
在 Windows 更新详细信息窗格中,双击指定 Intranet Microsoft 更新服务位置。
这是否可以从 Powershell 脚本结束?
我想使用这个Powershell 脚本在 Win7 机器上自动进行一些备份。当从 Powershell 终端手动运行时,脚本按广告运行并在几秒钟后结束(这是一个小备份)。
问题是当我尝试使用任务计划程序自动化该过程时。时机成熟时(或当我手动运行任务时),脚本会运行并正确执行备份。但它并没有回到“就绪”状态,即使我知道它已经结束了。我每次都必须手动停止任务。
现在,我还没有等到任务再次运行时会发生什么,但我认为它不会第二次启动,因为它没有“准备好”。
我该怎么办?
更新1:
我选择的操作是“启动程序”。在“程序/脚本”框中,我有“powershell.exe”,作为参数,我有脚本“*.ps1”文件的路径。
更新1:
我注意到虽然任务没有返回“就绪”,但如果我手动启动它,它会再次运行。
我正在尝试将主目录路径更改为一堆用户。
我在 Ppowershell 中编写了一个脚本,它应该像这样更改用户名的路径:
\\serverName\shareName\$_.SamAccountName
Run Code Online (Sandbox Code Playgroud)
问题是我得到了 DistinguishedName 而不是 SamAccountName,如下所示:
\\serverName\shareName\CN=UserName,OU=OuName,DC=domainName,dc=local
Run Code Online (Sandbox Code Playgroud)
这是我写的脚本:
Get-ADUser -Filter * -SearchBase 'ou=XX,dc=domainName,dc=local' | ForEach-Object {
Set-ADUser $_.SamAccountName -HomeDrive "Z:" -HomeDirectory "\\serverName\shareName\$_.SamAccountName"
}
Run Code Online (Sandbox Code Playgroud)
谁能看出为什么这不起作用?
我是 PowerShell 的新手。
我正在尝试创建一个报告,显示即将到期的 AD 帐户。
该报告应包括用户名、AccountExpirationDate 和经理。
到目前为止,我有以下几点:
$users = Search-ADAccount -AccountExpiring -TimeSpan "7" | Select-Object Name,AccountExpirationDate | Sort-Object AccountExpirationDate
$manager = Search-ADAccount -AccountExpiring -TimeSpan "7" | Get-aduser -Properties Manager | Select-Object @{n="ManagerName";e={(Get-ADUser -Identity $_.Manager -Properties displayName).DisplayName}}
Run Code Online (Sandbox Code Playgroud)
无论如何我可以将结果合并到一张表中吗?
我一直在思考自动化执行此任务的方法:
我们为客户部署 Windows Server 2008 R2 映像。我们使用 PowerShell(第 2 版)来部署我们的专有软件,并在发货前对系统进行各种其他更改。此 PowerShell 进程在本地管理员帐户下运行,直到它完成并禁用本地管理员帐户。
现在,对于这个问题 - 我正在尝试将 .PFX 客户端证书安装到 SEPARATE 用户的 CurrentUser\My 证书存储中。我们称该用户为“SQL”。
现在证书正在安装在 LocalMachine\My 证书存储下,但我们的一个开发团队担心该位置并希望复制原始设置。
现在,我知道如何通过在我们的部署脚本中添加重新启动步骤并在“SQL”用户下执行此操作来完成这项工作,但我想避免这种情况,因为似乎必须有一种方法可以这是在另一个帐户下完成的。这是我们现在用来将证书安装到 LocalMachine\My 商店的基本代码。假设 $certPath 是 .pfx 的路径,$pfxPass 是 .pfx 的密码。
function Import-PfxCertificate {
param([string] $certPath, [string]$pfxPass)
$pfx = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2
$pfx.Import([string]$certPath, [string]$pfxPass, "Exportable,PersistKeySet")
$store = New-Object System.Security.Cryptography.X509Certificates.X509Store("My", "LocalMachine")
$store.open("MaxAllowed")
$store.add($pfx)
$store.close()
}
Run Code Online (Sandbox Code Playgroud) 我正在寻找一个管理脚本,它将:
我可以通过 vSphere 的 PowerCLI 完成第一项,我可以通过 PowerShell“ Cmdlets”完成最后两项。此外,我可以将这些Cmdlets放在一个*.ps1文件中并从 shell 执行该文件。
初步研究表明,PowerCLI 只是包装/扩展了 PowerShell,并且基本上只是由它自己的以 vSphere 为中心的Cmdlets. 所以我想知道:我可以将 PowerCLI“代码”(Cmdlets等)与其他 PowerShell 代码一起放在 PS1 文件中,并像普通 PS1 一样执行它吗?
domain-name-system dhcp virtualization powershell vmware-esxi
我想通过powershell连接Office 365,参考教程一个很简单的任务。但显然不适合我。
我想我错过了一个简单但重要的琐事。
一些信息:
我尝试了以下
PS C:\>Import-Module MSOnline
PS C:\>$msolcred = get-credential
PS C:\>connect-msolservice -credential $msolcred
connect-msolservice : The user name or password is incorrect. Verify your user name, and then type your password again.
Run Code Online (Sandbox Code Playgroud)
和
PS C:\> $O365Session = New-PSSession -ConfigurationName Microsoft.Exchange
-ConnectionUri https://ps.outlook.com/powershell
-Credential $msolcred -Authentication Basic
-AllowRedirection
New-PSSession : [ps.outlook.com] Connecting to remote server ps.outlook.com failed with the following error …Run Code Online (Sandbox Code Playgroud) 在创建一些基于 powershell 的部署脚本的过程中,我非常想念一种通过 Powershell Remoting 将文件快速传输到另一台服务器(通过 Internet)的简单方法,例如 scp for linux。幸运的是,可以通过 Powershell Remoting 激活的东西。我忽略了什么吗?
设想:
在 Azure VM 本地执行时,成功将机器添加到 AD,然后重新启动。
$DomainName = "test.local"
$AdminUserName = "sysadmin"
$Password = <mypass>
$SecurePassword = ConvertTo-SecureString $Password -asplaintext -force
$Credential = New-Object -Typename System.Management.Automation.PSCredential -Argumentlist $AdminUserName, $SecurePassword
$Credential
Add-Computer -DomainName $DomainName -Credential $Credential -Restart -Passthru -Verbose
Run Code Online (Sandbox Code Playgroud)
题:
使用相同的变量,但现在在我的机器上运行脚本,以另一个 Azure VM 作为目标,通过远程 Powershell:
$ScriptBlockContent = {
Param ($Arg1,$Arg2)
Add-Computer -DomainName $Arg1 -Credential $Arg2 -Restart -Passthru -Verbose}
$Session = New-PSSession -ConnectionUri $Uri -Credential $Credential
Invoke-Command -Session $Session -ScriptBlock $ScriptBlockContent -ArgumentList ($DomainName,$Credential)
Run Code Online (Sandbox Code Playgroud)
这在远程执行时失败。为什么 ?
PS C:\> Invoke-Command -Session $Session -ScriptBlock $ScriptBlockContent …Run Code Online (Sandbox Code Playgroud) 我想过滤某个用户的事件日志,但我认为没有按 SAMID 搜索的选项。UserId根据这里,有一个过滤器。在下面的屏幕截图中搜索用户时,以下正确的语法是否正确?
$events = get-winevent -filterhashtable
@{ logname='security'; path="Archive-Security-2015-04-14-02-13-02-299.evtx";
UserId='S-1-5-21-220523388-838170752-839522115-yyyy' }
Run Code Online (Sandbox Code Playgroud)

我收到“未找到符合指定选择标准的事件”。用上面的命令。但是,如果我删除UserId密钥,则会返回一长串列表,因此lognameor应该没有问题path。
powershell ×10
scripting ×2
azure ×1
certificate ×1
dhcp ×1
group-policy ×1
remote ×1
vmware-esxi ×1
windows-7 ×1