我有 4 个程序,我想只使用 1 个脚本或快捷方式来启动它们。我怎样才能做到这一点?Powershell 能做到吗?我尝试使用 .bat 文件执行此操作,但脚本会暂停,直到程序停止...
我在 Windows Active Directory 域中有每台机器的文本文件,我想确定当前登录的用户(如果有)和使用 WMIC 的每台机器的操作系统:
WMIC /NODE:<machine_name> COMPUTERSYSTEM GET USERNAME
WMIC /NODE:<machine_name> OS GET caption
Run Code Online (Sandbox Code Playgroud)
有谁知道如何编写脚本以从文本文件中读取我的计算机列表并为每个计算机执行两个 WMIC 命令并以以下格式输出结果:
ComputerName, OperatingSystem, CurrentUserName
Run Code Online (Sandbox Code Playgroud) 我找到了一种将 exchange 2010 powershell 加载到在 windows xp 工作站上运行的 powershell 的方法,但是有一些命令需要运行。我想知道如何以某种方式将它们加载到配置文件中。这些是我在执行任何交换操作(例如 Get-Mailbox)之前需要运行的命令。
COMMAND 1 $session = New-PSSession -Configurationname Microsoft.Exchange –ConnectionUri http://servername/powershell -Credential $user
(它会提示您输入用户名和 p/word,然后是下一个命令)
命令 2 导入 PSSession $session
然后我就可以运行 Exchange 2010 命令,例如 Get-Mailbox。无论如何,我可以加载这些,以便当我单击 powershell 快捷方式时,它们会预加载交换命令的导入。
谢谢
我找到了指向
ocsetup MicrosoftWindowsPowerShell
Run Code Online (Sandbox Code Playgroud)
或者
start ocsetup MicrosoftWindowsPowerShell
Run Code Online (Sandbox Code Playgroud)
但它们没有效果。
我对这个完全不知所措。最近我的一些 powershell 脚本开始失败,因为它们无法找到命令 dnscmd.exe。
让我不知所措的是可执行文件存在并且可以工作,我可以在命令提示符下很好地运行它。我在 powershell 中尝试了以下操作来运行命令:
全部返回“术语 dnscmd 未被识别为 cmdlet、函数、脚本文件或可运行程序的名称....”
任何人都可以启发我为什么powershell完全无法看到命令,正常的命令提示符/ Windows资源管理器等可以吗?使用 PowerShell 2。
我正在编写一个登录脚本,它取消映射并重新映射一些驱动器。
powershell 调用一个小的批处理文件来进行实际的取消映射,因为 Powershell 在可靠地映射驱动器方面似乎有点不稳定。
我正在使用的代码是:
$arrDrives = "m:","n:","o:","p:","q:","r:","s:","u:","v:","x:","y:"
foreach ($drive in $arrDrives) {
if (test-path $drive) {
UpdateSubHeading ("Removing drive " + $drive)
c:\bin\removeDrive.bat $drive }
}
Run Code Online (Sandbox Code Playgroud)
它调用的批处理文件只是:
if exist %1 net use %1 /del
Run Code Online (Sandbox Code Playgroud)
这一切正常,除非有一个到它试图取消映射的驱动器的开放连接。如果用户打开了一个文件,它就会挂起。
在我尝试取消映射之前,有没有办法检查是否有任何连接打开到映射驱动器,如果有则跳过取消映射?
谢谢,
本
所以,我正在深入研究 PowerShell。我的任务是重做域中每个主文件夹的权限(它们并不都属于同一个子目录 - 这太容易了)。我编写了一个批处理脚本,它采用两个参数:用户名和主文件夹路径,并通过 SetACL 将它们泵送。
我想使用 PowerShell 获取 OU 中每个用户的用户名和主文件夹。到目前为止,我可以获取用户名,但我不知道如何获取主目录。
到目前为止,这是我的 PowerShell(从网络上的各种来源借用):
$Dom = "LDAP://OU=Accounts,DC=myDomain,DC=local"
$Root = New-Object DirectoryServices.DirectoryEntry $Dom
# Create a selector and start searching from the Root of AD
$selector = New-Object DirectoryServices.DirectorySearcher
$selector.SearchRoot = $root
$Selector.pagesize = 20000
# Basically this will only grab user accounts and not computer accounts.
$adobj= $selector.findall() | where {
$_.properties.objectcategory -match "CN=Person*"
}
foreach ($person in $adobj) {
$prop=$person.properties
Write-host "$($prop.cn)"
}
Run Code Online (Sandbox Code Playgroud)
我最终会将 Write-host 行通过管道传输到 setACL 批处理文件中,但我现在只是编写输出以确保它是准确的。我试过添加$($prop.homeDirectory)到 …
是否有 PowerShell cmdlet 可以将公用文件夹的内容从 Exchange 2007 导出到网络上的 PST 中?我有大约 100 个公用文件夹需要归档到网络上的不同位置,并希望自动化该过程。
然后还需要能够删除公用文件夹。
如果不是 PowerShell,是否还有其他实用程序可以从命令行执行相同操作?
谢谢,罗伯。
我遇到了一个问题,我已经自动创建了 Excel.Application COM 对象,将一些数据添加到工作簿中,然后将文档另存为 xlsx。
这在以下情况下工作正常:
当我修改相同的计划任务时,它会失败,但将其设置为“无论用户是否登录都运行”。
这是一个示例脚本,说明了我遇到的问题:
$Excel = New-Object -Com Excel.Application
$Excelworkbook = $Excel.Workbooks.Add()
$excelworkbook.saveas("C:\temp\test.xlsx")
$excelworkbook.close()
Run Code Online (Sandbox Code Playgroud)
我有一个理论,如果我的配置文件没有加载/如果它没有在命令窗口中执行,COM 对象会以某种方式失败。
关于在创建计划任务时选择哪些选项,或者在创建 Excel 对象或使用 SaveAs() 函数时使用哪些选项的任何想法?有人可以复制这个吗?我已经能够在 Server 2008 R2 机器和 Windows 7 上看到这种行为。还没有尝试过其他平台。
powershell windows-server-2008 scheduled-task microsoft-excel
每次我尝试运行 Enter-PSSession -ComputerName 名称时,即使安装了 Tought 2.0,我也会登录到 1.0 版。
作为 powershell 新手,我查看了 HKLM\SOftWare\Microsoft\PowerShell\1\PowerShellEngine 中的注册表,我看到这些注册表
不幸的是,我无法将其更改为 syswow64 目录。也不删除1.0的兼容性
难道我做错了什么?
我只想要远程输入时是 PSH v2 (Enter-PSSession)
任何和所有帮助表示赞赏